Search in sources :

Example 86 with Player

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);
            }
        }
    }
}
Also used : PrimedTnt(net.minecraft.world.entity.item.PrimedTnt) FallingBlockEntity(net.minecraft.world.entity.item.FallingBlockEntity) Player(net.minecraft.world.entity.player.Player) ServerPlayer(net.minecraft.server.level.ServerPlayer) WorldConfig(org.spongepowered.common.config.inheritable.WorldConfig) EntityTypeBridge(org.spongepowered.common.bridge.world.entity.EntityTypeBridge) EndCrystal(net.minecraft.world.entity.boss.enderdragon.EndCrystal) FireworkRocketEntity(net.minecraft.world.entity.projectile.FireworkRocketEntity) Painting(net.minecraft.world.entity.decoration.Painting) LightningBolt(net.minecraft.world.entity.LightningBolt) EnderDragon(net.minecraft.world.entity.boss.enderdragon.EnderDragon) ActivationCapabilityBridge(org.spongepowered.common.bridge.activation.ActivationCapabilityBridge) WitherBoss(net.minecraft.world.entity.boss.wither.WitherBoss) EnderDragonPart(net.minecraft.world.entity.boss.EnderDragonPart) AbstractHurtingProjectile(net.minecraft.world.entity.projectile.AbstractHurtingProjectile) ResourceLocation(net.minecraft.resources.ResourceLocation) ThrowableProjectile(net.minecraft.world.entity.projectile.ThrowableProjectile) EntityActivationRangeCategory(org.spongepowered.common.config.inheritable.EntityActivationRangeCategory)

Example 87 with Player

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);
            });
        }
    }
}
Also used : TextComponent(net.minecraft.network.chat.TextComponent) ServerPlayer(net.minecraft.server.level.ServerPlayer) Player(net.minecraft.world.entity.player.Player) AbstractContainerMenu(net.minecraft.world.inventory.AbstractContainerMenu) SimpleContainer(net.minecraft.world.SimpleContainer) ItemStack(net.minecraft.world.item.ItemStack) Component(net.minecraft.network.chat.Component) TextComponent(net.minecraft.network.chat.TextComponent) MenuProvider(net.minecraft.world.MenuProvider) Inventory(net.minecraft.world.entity.player.Inventory)

Example 88 with Player

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;
    }
}
Also used : BeachFloatEntity(net.tropicraft.core.common.entity.placeable.BeachFloatEntity) Entity(net.minecraft.world.entity.Entity) FurnitureEntity(net.tropicraft.core.common.entity.placeable.FurnitureEntity) SeaTurtleEntity(net.tropicraft.core.common.entity.SeaTurtleEntity) Player(net.minecraft.world.entity.player.Player) PoseStack(com.mojang.blaze3d.vertex.PoseStack) FurnitureEntity(net.tropicraft.core.common.entity.placeable.FurnitureEntity) Vec3(net.minecraft.world.phys.Vec3) MultiBufferSource(net.minecraft.client.renderer.MultiBufferSource) BeachFloatEntity(net.tropicraft.core.common.entity.placeable.BeachFloatEntity) SeaTurtleEntity(net.tropicraft.core.common.entity.SeaTurtleEntity) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 89 with Player

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();
}
Also used : Entity(net.minecraft.world.entity.Entity) Player(net.minecraft.world.entity.player.Player) Camera(net.minecraft.client.Camera) ScubaArmorItem(net.tropicraft.core.common.item.scuba.ScubaArmorItem) Minecraft(net.minecraft.client.Minecraft) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 90 with Player

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;
        }
    }
}
Also used : AgeableMob(net.minecraft.world.entity.AgeableMob) Mob(net.minecraft.world.entity.Mob) Player(net.minecraft.world.entity.player.Player) ServerPlayer(net.minecraft.server.level.ServerPlayer)

Aggregations

Player (net.minecraft.world.entity.player.Player)97 ItemStack (net.minecraft.world.item.ItemStack)65 Level (net.minecraft.world.level.Level)56 InteractionHand (net.minecraft.world.InteractionHand)55 InteractionResult (net.minecraft.world.InteractionResult)52 ItemEntity (net.minecraft.world.entity.item.ItemEntity)51 Items (net.minecraft.world.item.Items)51 EntitySize (de.Keyle.MyPet.api.entity.EntitySize)50 MyPet (de.Keyle.MyPet.api.entity.MyPet)50 InvocationTargetException (java.lang.reflect.InvocationTargetException)50 EntityDataAccessor (net.minecraft.network.syncher.EntityDataAccessor)42 EntityDataSerializers (net.minecraft.network.syncher.EntityDataSerializers)42 SynchedEntityData (net.minecraft.network.syncher.SynchedEntityData)42 ServerLevel (net.minecraft.server.level.ServerLevel)40 Bukkit (org.bukkit.Bukkit)39 MyPetApi (de.Keyle.MyPet.MyPetApi)38 Util (de.Keyle.MyPet.api.Util)38 Pair (com.mojang.datafixers.util.Pair)36 EquipmentSlot (de.Keyle.MyPet.api.entity.EquipmentSlot)36 Arrays (java.util.Arrays)36