use of net.minecraft.world.entity.player.Player in project SpongeCommon by SpongePowered.
the class EntityActivationRange method initializeEntityActivationState.
/**
* Initialize entity activation state.
*
* @param entity Entity to check
*/
public static void initializeEntityActivationState(final Entity entity) {
final ActivationCapabilityBridge spongeEntity = (ActivationCapabilityBridge) entity;
if (entity.level.isClientSide()) {
return;
}
// types that should always be active
if (entity instanceof Player && !((PlatformEntityBridge) entity).bridge$isFakePlayer() || entity instanceof ThrowableProjectile || entity instanceof EnderDragon || entity instanceof EnderDragonPart || entity instanceof WitherBoss || entity instanceof AbstractHurtingProjectile || entity instanceof LightningBolt || entity instanceof PrimedTnt || entity instanceof Painting || entity instanceof EndCrystal || entity instanceof FireworkRocketEntity || // Always tick falling blocks
entity instanceof FallingBlockEntity) {
return;
}
final InheritableConfigHandle<WorldConfig> configAdapter = SpongeGameConfigs.getForWorld(entity.level);
final EntityActivationRangeCategory config = configAdapter.get().entityActivationRange;
final EntityTypeBridge type = (EntityTypeBridge) entity.getType();
final ResourceLocation key = EntityType.getKey(entity.getType());
final byte activationType = spongeEntity.activation$getActivationType();
final String activationTypeName = EntityActivationRange.activationTypeMappings.getOrDefault(activationType, "misc");
if (!type.bridge$isActivationRangeInitialized()) {
EntityActivationRange.addEntityToConfig(config.autoPopulate, key, activationType, activationTypeName);
type.bridge$setActivationRangeInitialized(true);
}
final EntityActivationRangeCategory.ModSubCategory entityMod = config.mods.get(key.getNamespace());
final int defaultActivationRange = config.globalRanges.get(activationTypeName);
if (entityMod == null) {
// use default activation range
spongeEntity.activation$setActivationRange(defaultActivationRange);
if (defaultActivationRange > 0) {
spongeEntity.activation$setDefaultActivationState(false);
}
} else {
if (!entityMod.enabled) {
spongeEntity.activation$setDefaultActivationState(true);
return;
}
final Integer defaultModActivationRange = entityMod.defaultRanges.get(activationTypeName);
final Integer entityActivationRange = entityMod.entities.get(key.getPath());
if (defaultModActivationRange != null && entityActivationRange == null) {
spongeEntity.activation$setActivationRange(defaultModActivationRange);
if (defaultModActivationRange > 0) {
spongeEntity.activation$setDefaultActivationState(false);
}
} else if (entityActivationRange != null) {
spongeEntity.activation$setActivationRange(entityActivationRange);
if (entityActivationRange > 0) {
spongeEntity.activation$setDefaultActivationState(false);
}
}
}
}
use of net.minecraft.world.entity.player.Player in project MinecraftForge by MinecraftForge.
the class ContainerTypeTest method onRightClick.
private void onRightClick(PlayerInteractEvent.RightClickBlock event) {
if (!event.getWorld().isClientSide && event.getHand() == InteractionHand.MAIN_HAND) {
if (event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.SPONGE) {
String text = "Hello World!";
NetworkHooks.openGui((ServerPlayer) event.getPlayer(), new MenuProvider() {
@Override
public AbstractContainerMenu createMenu(int p_createMenu_1_, Inventory p_createMenu_2_, Player p_createMenu_3_) {
SimpleContainer inv = new SimpleContainer(9);
for (int i = 0; i < inv.getContainerSize(); i++) {
inv.setItem(i, new ItemStack(Items.DIAMOND));
}
return new TestContainer(p_createMenu_1_, inv, text);
}
@Override
public Component getDisplayName() {
return new TextComponent("Test");
}
}, extraData -> {
extraData.writeUtf(text);
});
}
}
}
use of net.minecraft.world.entity.player.Player in project Tropicraft by Tropicraft.
the class PlayerRotationHandler method onRenderPlayer.
@SubscribeEvent
public static void onRenderPlayer(RenderPlayerEvent.Pre event) {
PoseStack stack = event.getMatrixStack();
MultiBufferSource buffers = event.getBuffers();
Player p = event.getPlayer();
Entity riding = p.getVehicle();
if (riding instanceof BeachFloatEntity) {
FurnitureEntity floaty = (FurnitureEntity) riding;
stack.pushPose();
stack.mulPose(Vector3f.YP.rotationDegrees(-(floaty.yRotO + (event.getPartialRenderTick() * (floaty.getYRot() - floaty.yRotO)))));
stack.translate(0, 1.55, 1.55);
stack.mulPose(Vector3f.XN.rotationDegrees(90));
// Cancel out player camera rotation
float f = interpolateAndWrap(p.yBodyRot, p.yBodyRotO, event.getPartialRenderTick());
stack.mulPose(Vector3f.YP.rotationDegrees(f));
// Lock in head
rotationYawHead = p.yHeadRot;
prevRotationYawHead = p.yHeadRotO;
p.yHeadRot = p.yBodyRot;
p.yHeadRotO = p.yBodyRotO;
rotationPitch = p.getXRot();
prevRotationPitch = p.xRotO;
p.setXRot(10f);
p.xRotO = 10f;
// Cancel limb swing
p.animationPosition = 0;
p.animationSpeed = 0;
p.animationSpeedOld = 0;
}
if (riding instanceof SeaTurtleEntity) {
SeaTurtleEntity turtle = (SeaTurtleEntity) riding;
stack.pushPose();
// Cancel out player camera rotation
float pitch = interpolateAndWrap(turtle.getXRot(), turtle.xRotO, event.getPartialRenderTick());
float yaw = interpolateAndWrap(turtle.yHeadRot, turtle.yHeadRotO, event.getPartialRenderTick());
stack.translate(0, turtle.getPassengersRidingOffset() - p.getMyRidingOffset(), 0);
stack.mulPose(Vector3f.YN.rotationDegrees(yaw));
// TODO figure out why this budging is needed
stack.translate(0, -0.1, 0);
stack.mulPose(Vector3f.XP.rotationDegrees(pitch));
stack.translate(0, 0.1, 0);
stack.mulPose(Vector3f.YP.rotationDegrees(yaw));
stack.translate(0, -turtle.getPassengersRidingOffset() + p.getMyRidingOffset(), 0);
Vec3 passengerOffset = (new Vec3(-0.25f, 0.0D, 0.0D)).yRot((float) (-Math.toRadians(yaw) - (Math.PI / 2)));
stack.translate(passengerOffset.x(), 0, passengerOffset.z());
// Lock in head
rotationPitch = p.getXRot();
prevRotationPitch = p.xRotO;
p.setXRot(10f);
p.xRotO = 10f;
}
}
use of net.minecraft.world.entity.player.Player in project Tropicraft by Tropicraft.
the class ScubaAmbienceTicker method onClientTick.
@SubscribeEvent
public static void onClientTick(ClientTickEvent event) {
if (event.phase != Phase.START)
return;
Minecraft mc = Minecraft.getInstance();
if (mc.level != null && mc.player != null) {
Camera renderInfo = mc.getEntityRenderDispatcher().camera;
Entity renderViewEntity = mc.getCameraEntity();
if (renderInfo != null && renderViewEntity instanceof Player) {
Player player = (Player) renderViewEntity;
if (renderInfo.getFluidInCamera() == FogType.WATER && player.getItemBySlot(EquipmentSlot.CHEST).getItem() instanceof ScubaArmorItem) {
if (ScubaData.getDepth(player) < 60) {
play(SHALLOW_SCUBA);
return;
} else {
play(DEEP_SCUBA);
return;
}
}
}
}
stop();
}
use of net.minecraft.world.entity.player.Player in project Tropicraft by Tropicraft.
the class SeaTurtleEntity method positionRider.
@Override
public void positionRider(Entity passenger) {
super.positionRider(passenger);
if (this.hasPassenger(passenger)) {
if (passenger instanceof Player) {
Player p = (Player) passenger;
if (this.isInWater()) {
if (p.zza > 0f) {
this.setXRot(this.lerp(getXRot(), -(passenger.getXRot() * 0.5f), 6f));
this.setYRot(this.lerp(getYRot(), -passenger.getYRot(), 6f));
// this.targetVector = null;
// this.targetVectorHeading = null;
this.swimSpeedCurrent += 0.05f;
if (this.swimSpeedCurrent > 4f) {
this.swimSpeedCurrent = 4f;
}
}
if (p.zza < 0f) {
this.swimSpeedCurrent *= 0.89f;
if (this.swimSpeedCurrent < 0.1f) {
this.swimSpeedCurrent = 0.1f;
}
}
if (p.zza == 0f) {
if (this.swimSpeedCurrent > 1f) {
this.swimSpeedCurrent *= 0.94f;
if (this.swimSpeedCurrent <= 1f) {
this.swimSpeedCurrent = 1f;
}
}
if (this.swimSpeedCurrent < 1f) {
this.swimSpeedCurrent *= 1.06f;
if (this.swimSpeedCurrent >= 1f) {
this.swimSpeedCurrent = 1f;
}
}
// this.swimSpeedCurrent = 1f;
}
// this.swimYaw = -passenger.rotationYaw;
}
// p.rotationYaw = this.rotationYaw;
} else if (passenger instanceof Mob) {
Mob mobentity = (Mob) passenger;
this.yBodyRot = mobentity.yBodyRot;
this.yHeadRotO = mobentity.yHeadRotO;
}
}
}
Aggregations