Search in sources :

Example 1 with IExtendedCreatureVampirism

use of de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism in project Vampirism by TeamLapen.

the class RenderHandler method onRenderLivingPost.

@SubscribeEvent
public void onRenderLivingPost(RenderLivingEvent.Post event) {
    if (!isInsideBloodVisionRendering && shouldRenderBloodVision() && !reducedBloodVision) {
        Entity entity = event.getEntity();
        boolean flag = !(entity instanceof PlayerEntity) || VampirismPlayerAttributes.get((PlayerEntity) entity).getHuntSpecial().fullHunterCoat == null;
        double dist = mc.player.distanceToSqr(entity);
        if (dist > VampirismConfig.BALANCE.vsBloodVisionDistanceSq.get()) {
            flag = false;
        }
        if (flag) {
            int color;
            LazyOptional<IExtendedCreatureVampirism> opt = entity instanceof CreatureEntity && entity.isAlive() ? ExtendedCreature.getSafe(entity) : LazyOptional.empty();
            if (opt.map(creature -> creature.getBlood() > 0 && !creature.hasPoisonousBlood()).orElse(false)) {
                color = 0xFF0000;
            } else if (VampirismPlayerAttributes.get(mc.player).getVampSpecial().blood_vision_garlic && ((opt.map(IExtendedCreatureVampirism::hasPoisonousBlood).orElse(false)) || entity instanceof IHunterMob)) {
                color = 0x07FF07;
            } else {
                color = 0xA0A0A0;
            }
            EntityRendererManager renderManager = mc.getEntityRenderDispatcher();
            if (bloodVisionBuffer == null) {
                bloodVisionBuffer = new OutlineLayerBuffer(mc.renderBuffers().bufferSource());
            }
            int r = color >> 16 & 255;
            int g = color >> 8 & 255;
            int b = color & 255;
            int alpha = (int) ((dist > ENTITY_NEAR_SQ_DISTANCE ? 50 : (dist / (double) ENTITY_NEAR_SQ_DISTANCE * 50d)) * getBloodVisionProgress(event.getPartialRenderTick()));
            bloodVisionBuffer.setColor(r, g, b, alpha);
            float f = MathHelper.lerp(event.getPartialRenderTick(), entity.yRotO, entity.yRot);
            isInsideBloodVisionRendering = true;
            EntityRenderer<? super Entity> entityrenderer = renderManager.getRenderer(entity);
            entityrenderer.render(entity, f, event.getPartialRenderTick(), event.getMatrixStack(), bloodVisionBuffer, renderManager.getPackedLightCoords(entity, event.getPartialRenderTick()));
            mc.getMainRenderTarget().bindWrite(false);
            isInsideBloodVisionRendering = false;
        }
    }
}
Also used : EntityType(net.minecraft.entity.EntityType) ISelectiveResourceReloadListener(net.minecraftforge.resource.ISelectiveResourceReloadListener) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn) Shader(net.minecraft.client.shader.Shader) IResourceManager(net.minecraft.resources.IResourceManager) ModRefinements(de.teamlapen.vampirism.core.ModRefinements) VampirismConfig(de.teamlapen.vampirism.config.VampirismConfig) VanillaResourceType(net.minecraftforge.resource.VanillaResourceType) CreatureEntity(net.minecraft.entity.CreatureEntity) Dist(net.minecraftforge.api.distmarker.Dist) LazyOptional(net.minecraftforge.common.util.LazyOptional) IHunterMob(de.teamlapen.vampirism.api.entity.hunter.IHunterMob) Helper(de.teamlapen.vampirism.util.Helper) OptifineHandler(de.teamlapen.lib.util.OptifineHandler) IResourceType(net.minecraftforge.resource.IResourceType) Minecraft(net.minecraft.client.Minecraft) ShaderGroup(net.minecraft.client.shader.ShaderGroup) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) IExtendedCreatureVampirism(de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism) EntityRenderer(net.minecraft.client.renderer.entity.EntityRenderer) Entity(net.minecraft.entity.Entity) IItemWithTier(de.teamlapen.vampirism.api.items.IItemWithTier) BatEntity(net.minecraft.entity.passive.BatEntity) PlayerEntity(net.minecraft.entity.player.PlayerEntity) WorldEvent(net.minecraftforge.event.world.WorldEvent) VampirePlayer(de.teamlapen.vampirism.player.vampire.VampirePlayer) LivingEntity(net.minecraft.entity.LivingEntity) Predicate(java.util.function.Predicate) FogRenderer(net.minecraft.client.renderer.FogRenderer) TickEvent(net.minecraftforge.event.TickEvent) Framebuffer(net.minecraft.client.shader.Framebuffer) REFERENCE(de.teamlapen.vampirism.REFERENCE) PlayerModel(net.minecraft.client.renderer.entity.model.PlayerModel) VampirePlayerSpecialAttributes(de.teamlapen.vampirism.player.vampire.VampirePlayerSpecialAttributes) OutlineLayerBuffer(net.minecraft.client.renderer.OutlineLayerBuffer) Logger(org.apache.logging.log4j.Logger) EntityRendererManager(net.minecraft.client.renderer.entity.EntityRendererManager) ExtendedCreature(de.teamlapen.vampirism.entity.ExtendedCreature) MathHelper(net.minecraft.util.math.MathHelper) RenderSystem(com.mojang.blaze3d.systems.RenderSystem) ResourceLocation(net.minecraft.util.ResourceLocation) MixinHooks(de.teamlapen.vampirism.util.MixinHooks) LogManager(org.apache.logging.log4j.LogManager) VampirismPlayerAttributes(de.teamlapen.vampirism.player.VampirismPlayerAttributes) net.minecraftforge.client.event(net.minecraftforge.client.event) CreatureEntity(net.minecraft.entity.CreatureEntity) Entity(net.minecraft.entity.Entity) BatEntity(net.minecraft.entity.passive.BatEntity) PlayerEntity(net.minecraft.entity.player.PlayerEntity) LivingEntity(net.minecraft.entity.LivingEntity) IHunterMob(de.teamlapen.vampirism.api.entity.hunter.IHunterMob) CreatureEntity(net.minecraft.entity.CreatureEntity) EntityRendererManager(net.minecraft.client.renderer.entity.EntityRendererManager) PlayerEntity(net.minecraft.entity.player.PlayerEntity) OutlineLayerBuffer(net.minecraft.client.renderer.OutlineLayerBuffer) IExtendedCreatureVampirism(de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 2 with IExtendedCreatureVampirism

use of de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism in project Vampirism by TeamLapen.

the class VampirismHUDOverlay method onRenderCrosshair.

@SubscribeEvent
public void onRenderCrosshair(RenderGameOverlayEvent.Pre event) {
    if (event.getType() != RenderGameOverlayEvent.ElementType.CROSSHAIRS || mc.player == null || !mc.player.isAlive()) {
        return;
    }
    RayTraceResult p = Minecraft.getInstance().hitResult;
    if (p != null && p.getType() == RayTraceResult.Type.ENTITY) {
        Entity entity = ((EntityRayTraceResult) p).getEntity();
        if (!entity.isInvisible()) {
            VampirismPlayerAttributes atts = VampirismPlayerAttributes.get(mc.player);
            if (atts.vampireLevel > 0 && !mc.player.isSpectator() && !atts.getVampSpecial().bat) {
                VampirePlayer.getOpt(mc.player).ifPresent(player -> {
                    LazyOptional<? extends IBiteableEntity> biteableOpt = LazyOptional.empty();
                    if (entity instanceof IBiteableEntity) {
                        biteableOpt = LazyOptional.of(() -> (IBiteableEntity) entity);
                    } else if (entity instanceof CreatureEntity && entity.isAlive()) {
                        biteableOpt = ExtendedCreature.getSafe(entity);
                    } else if (entity instanceof PlayerEntity) {
                        biteableOpt = VampirePlayer.getOpt((PlayerEntity) entity);
                    }
                    biteableOpt.filter(iBiteableEntity -> iBiteableEntity.canBeBitten(player)).ifPresent(biteable -> {
                        int color = 0xFF0000;
                        if (entity instanceof IHunterMob || ExtendedCreature.getSafe(entity).map(IExtendedCreatureVampirism::hasPoisonousBlood).orElse(false))
                            color = 0x099022;
                        renderBloodFangs(event.getMatrixStack(), this.mc.getWindow().getGuiScaledWidth(), this.mc.getWindow().getGuiScaledHeight(), MathHelper.clamp(biteable.getBloodLevelRelative(), 0.2F, 1F), color);
                        event.setCanceled(true);
                    });
                });
            }
            if (atts.hunterLevel > 0 && !mc.player.isSpectator() && mc.player.getMainHandItem().getItem() == ModItems.stake) {
                if (entity instanceof LivingEntity && entity instanceof IVampireMob) {
                    if (StakeItem.canKillInstant((LivingEntity) entity, mc.player)) {
                        if (((LivingEntity) entity).getHealth() > 0) {
                            this.renderStakeInstantKill(event.getMatrixStack(), this.mc.getWindow().getGuiScaledWidth(), this.mc.getWindow().getGuiScaledHeight());
                            event.setCanceled(true);
                        }
                    }
                }
            }
        }
    } else if (p != null && p.getType() == RayTraceResult.Type.BLOCK) {
        BlockState block = Minecraft.getInstance().level.getBlockState(((BlockRayTraceResult) p).getBlockPos());
        if (ModBlocks.blood_container.equals(block.getBlock())) {
            if (VampirePlayer.getOpt(mc.player).map(VampirePlayer::wantsBlood).orElse(false)) {
                TileEntity tile = Minecraft.getInstance().level.getBlockEntity(((BlockRayTraceResult) p).getBlockPos());
                if (tile != null) {
                    tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY).ifPresent(handler -> {
                        if (FluidLib.getFluidAmount(handler, ModFluids.blood) > 0) {
                            renderBloodFangs(event.getMatrixStack(), this.mc.getWindow().getGuiScaledWidth(), this.mc.getWindow().getGuiScaledHeight(), 1, 0xFF0000);
                            event.setCanceled(true);
                        }
                    });
                }
            }
        }
    }
    // Render blood feed progress
    GameSettings gamesettings = this.mc.options;
    if (gamesettings.getCameraType().isFirstPerson() && this.mc.gameMode.getPlayerMode() != GameType.SPECTATOR) {
        float progress = VampirePlayer.getOpt(mc.player).map(VampirePlayer::getFeedProgress).orElse(0f);
        if (progress > 0) {
            RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.ONE_MINUS_DST_COLOR, GlStateManager.DestFactor.ONE_MINUS_SRC_COLOR, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
            if (progress <= 1.0F) {
                int x = this.mc.getWindow().getGuiScaledWidth() / 2 - 8;
                int y = this.mc.getWindow().getGuiScaledHeight() / 2 - 7 + 16;
                this.mc.getTextureManager().bind(icons);
                int l = (int) (progress * 14.0F) + 2;
                this.blit(event.getMatrixStack(), x, y, 0, 19, 16, 2);
                this.blit(event.getMatrixStack(), x, y, 16, 19, l, 2);
            }
        }
    }
}
Also used : StakeItem(de.teamlapen.vampirism.items.StakeItem) ModItems(de.teamlapen.vampirism.core.ModItems) Dist(net.minecraftforge.api.distmarker.Dist) IHunterMob(de.teamlapen.vampirism.api.entity.hunter.IHunterMob) OptifineHandler(de.teamlapen.lib.util.OptifineHandler) EntityRayTraceResult(net.minecraft.util.math.EntityRayTraceResult) EventPriority(net.minecraftforge.eventbus.api.EventPriority) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent) GL11(org.lwjgl.opengl.GL11) BlockState(net.minecraft.block.BlockState) GlStateManager(com.mojang.blaze3d.platform.GlStateManager) ModEffects(de.teamlapen.vampirism.core.ModEffects) PlayerEntity(net.minecraft.entity.player.PlayerEntity) ILastingAction(de.teamlapen.vampirism.api.entity.player.actions.ILastingAction) VampirePlayer(de.teamlapen.vampirism.player.vampire.VampirePlayer) LivingEntity(net.minecraft.entity.LivingEntity) HunterPlayer(de.teamlapen.vampirism.player.hunter.HunterPlayer) BlockRayTraceResult(net.minecraft.util.math.BlockRayTraceResult) AbstractGui(net.minecraft.client.gui.AbstractGui) Matrix4f(net.minecraft.util.math.vector.Matrix4f) GameSettings(net.minecraft.client.GameSettings) ForgeIngameGui(net.minecraftforge.client.gui.ForgeIngameGui) VampirismPlayerAttributes(de.teamlapen.vampirism.player.VampirismPlayerAttributes) IPlayableFaction(de.teamlapen.vampirism.api.entity.factions.IPlayableFaction) GameType(net.minecraft.world.GameType) ModBlocks(de.teamlapen.vampirism.core.ModBlocks) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) VampirismConfig(de.teamlapen.vampirism.config.VampirismConfig) CreatureEntity(net.minecraft.entity.CreatureEntity) LazyOptional(net.minecraftforge.common.util.LazyOptional) ModFluids(de.teamlapen.vampirism.core.ModFluids) DefaultVertexFormats(net.minecraft.client.renderer.vertex.DefaultVertexFormats) RayTraceResult(net.minecraft.util.math.RayTraceResult) Helper(de.teamlapen.vampirism.util.Helper) EffectInstance(net.minecraft.potion.EffectInstance) RenderGameOverlayEvent(net.minecraftforge.client.event.RenderGameOverlayEvent) Minecraft(net.minecraft.client.Minecraft) FactionPlayerHandler(de.teamlapen.vampirism.entity.factions.FactionPlayerHandler) MatrixStack(com.mojang.blaze3d.matrix.MatrixStack) IBiteableEntity(de.teamlapen.vampirism.api.entity.IBiteableEntity) Nullable(javax.annotation.Nullable) IExtendedCreatureVampirism(de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism) VampireActions(de.teamlapen.vampirism.player.vampire.actions.VampireActions) Entity(net.minecraft.entity.Entity) Effects(net.minecraft.potion.Effects) IMCHandler(de.teamlapen.vampirism.modcompat.IMCHandler) CapabilityFluidHandler(net.minecraftforge.fluids.capability.CapabilityFluidHandler) FluidLib(de.teamlapen.lib.lib.util.FluidLib) VampirismAPI(de.teamlapen.vampirism.api.VampirismAPI) TickEvent(net.minecraftforge.event.TickEvent) REFERENCE(de.teamlapen.vampirism.REFERENCE) IActionHandler(de.teamlapen.vampirism.api.entity.player.actions.IActionHandler) Tessellator(net.minecraft.client.renderer.Tessellator) IVampireMob(de.teamlapen.vampirism.api.entity.vampire.IVampireMob) ExtendedCreature(de.teamlapen.vampirism.entity.ExtendedCreature) MathHelper(net.minecraft.util.math.MathHelper) IFactionPlayer(de.teamlapen.vampirism.api.entity.player.IFactionPlayer) IAction(de.teamlapen.vampirism.api.entity.player.actions.IAction) RenderSystem(com.mojang.blaze3d.systems.RenderSystem) ExtendedGui(de.teamlapen.lib.lib.client.gui.ExtendedGui) ResourceLocation(net.minecraft.util.ResourceLocation) TileEntity(net.minecraft.tileentity.TileEntity) PlayerEntity(net.minecraft.entity.player.PlayerEntity) LivingEntity(net.minecraft.entity.LivingEntity) CreatureEntity(net.minecraft.entity.CreatureEntity) IBiteableEntity(de.teamlapen.vampirism.api.entity.IBiteableEntity) Entity(net.minecraft.entity.Entity) TileEntity(net.minecraft.tileentity.TileEntity) EntityRayTraceResult(net.minecraft.util.math.EntityRayTraceResult) EntityRayTraceResult(net.minecraft.util.math.EntityRayTraceResult) BlockRayTraceResult(net.minecraft.util.math.BlockRayTraceResult) RayTraceResult(net.minecraft.util.math.RayTraceResult) IHunterMob(de.teamlapen.vampirism.api.entity.hunter.IHunterMob) VampirePlayer(de.teamlapen.vampirism.player.vampire.VampirePlayer) BlockRayTraceResult(net.minecraft.util.math.BlockRayTraceResult) VampirismPlayerAttributes(de.teamlapen.vampirism.player.VampirismPlayerAttributes) CreatureEntity(net.minecraft.entity.CreatureEntity) IBiteableEntity(de.teamlapen.vampirism.api.entity.IBiteableEntity) PlayerEntity(net.minecraft.entity.player.PlayerEntity) LivingEntity(net.minecraft.entity.LivingEntity) TileEntity(net.minecraft.tileentity.TileEntity) BlockState(net.minecraft.block.BlockState) IVampireMob(de.teamlapen.vampirism.api.entity.vampire.IVampireMob) IExtendedCreatureVampirism(de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism) GameSettings(net.minecraft.client.GameSettings) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 3 with IExtendedCreatureVampirism

use of de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism in project Vampirism by TeamLapen.

the class VampirePlayer method biteFeed.

/**
 * Bite the given entity.
 * Does NOT check reach distance
 *
 * @param entity the entity to feed on
 * @return If feeding can continue
 */
private boolean biteFeed(LivingEntity entity) {
    if (isRemote())
        return true;
    if (getLevel() == 0)
        return false;
    int blood = 0;
    float saturationMod = IBloodStats.HIGH_SATURATION;
    boolean continue_feeding = true;
    if (feed_victim_bite_type == BITE_TYPE.SUCK_BLOOD_CREATURE && entity.isAlive()) {
        LazyOptional<IExtendedCreatureVampirism> opt = ExtendedCreature.getSafe(entity);
        blood = opt.map(creature -> creature.onBite(this)).orElse(0);
        saturationMod = opt.map(IBiteableEntity::getBloodSaturation).orElse(0f);
        if (isAdvancedBiter() && opt.map(IExtendedCreatureVampirism::getBlood).orElse(0) == 1) {
            continue_feeding = false;
        }
    } else if (feed_victim_bite_type == BITE_TYPE.SUCK_BLOOD_PLAYER) {
        blood = VampirePlayer.getOpt((PlayerEntity) entity).map(v -> v.onBite(this)).orElse(0);
        saturationMod = VampirePlayer.getOpt((PlayerEntity) entity).map(VampirePlayer::getBloodSaturation).orElse(0f);
    } else if (feed_victim_bite_type == BITE_TYPE.SUCK_BLOOD) {
        blood = ((IBiteableEntity) entity).onBite(this);
        saturationMod = ((IBiteableEntity) entity).getBloodSaturation();
    }
    if (blood > 0) {
        drinkBlood(blood, saturationMod);
        CompoundNBT updatePacket = bloodStats.writeUpdate(new CompoundNBT());
        updatePacket.putInt(KEY_SPAWN_BITE_PARTICLE, entity.getId());
        sync(updatePacket, true);
        if (player instanceof ServerPlayerEntity) {
            ModAdvancements.TRIGGER_VAMPIRE_ACTION.trigger((ServerPlayerEntity) player, VampireActionTrigger.Action.SUCK_BLOOD);
        }
        return continue_feeding;
    }
    return false;
}
Also used : net.minecraft.util(net.minecraft.util) FluidState(net.minecraft.fluid.FluidState) VampireActionTrigger(de.teamlapen.vampirism.advancements.VampireActionTrigger) FlyingBloodEntityParticleData(de.teamlapen.vampirism.particle.FlyingBloodEntityParticleData) GameRules(net.minecraft.world.GameRules) PermissionAPI(net.minecraftforge.server.permission.PermissionAPI) ForgeMod(net.minecraftforge.common.ForgeMod) IVampirePlayer(de.teamlapen.vampirism.api.entity.player.vampire.IVampirePlayer) CompoundNBT(net.minecraft.nbt.CompoundNBT) UtilLib(de.teamlapen.lib.lib.util.UtilLib) IVampire(de.teamlapen.vampirism.api.entity.vampire.IVampire) VampirismPlayer(de.teamlapen.vampirism.player.VampirismPlayer) ISoundReference(de.teamlapen.lib.util.ISoundReference) BlockState(net.minecraft.block.BlockState) ModifiableAttributeInstance(net.minecraft.entity.ai.attributes.ModifiableAttributeInstance) PlayerEntity(net.minecraft.entity.player.PlayerEntity) ItemParticleData(net.minecraft.particles.ItemParticleData) ISkillHandler(de.teamlapen.vampirism.api.entity.player.skills.ISkillHandler) EnumStrength(de.teamlapen.vampirism.api.EnumStrength) AttributeModifier(net.minecraft.entity.ai.attributes.AttributeModifier) Predicate(java.util.function.Predicate) UtilLib.getNull(de.teamlapen.lib.lib.util.UtilLib.getNull) VampireSkills(de.teamlapen.vampirism.player.vampire.skills.VampireSkills) HelperLib(de.teamlapen.lib.HelperLib) de.teamlapen.vampirism.core(de.teamlapen.vampirism.core) ProjectileEntity(net.minecraft.entity.projectile.ProjectileEntity) Vector3d(net.minecraft.util.math.vector.Vector3d) Logger(org.apache.logging.log4j.Logger) TargetGoal(net.minecraft.entity.ai.goal.TargetGoal) SanguinareEffect(de.teamlapen.vampirism.effects.SanguinareEffect) FluidStack(net.minecraftforge.fluids.FluidStack) ActionHandler(de.teamlapen.vampirism.player.actions.ActionHandler) SkillHandler(de.teamlapen.vampirism.player.skills.SkillHandler) PrioritizedGoal(net.minecraft.entity.ai.goal.PrioritizedGoal) VampLib(de.teamlapen.lib.VampLib) IFaction(de.teamlapen.vampirism.api.entity.factions.IFaction) VampirismPlayerAttributes(de.teamlapen.vampirism.player.VampirismPlayerAttributes) ServerPlayerEntity(net.minecraft.entity.player.ServerPlayerEntity) java.util(java.util) CSimpleInputEvent(de.teamlapen.vampirism.network.CSimpleInputEvent) AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) Permissions(de.teamlapen.vampirism.util.Permissions) IWorld(net.minecraft.world.IWorld) VampirismConfig(de.teamlapen.vampirism.config.VampirismConfig) ScoreboardUtil(de.teamlapen.vampirism.util.ScoreboardUtil) ITextComponent(net.minecraft.util.text.ITextComponent) LazyOptional(net.minecraftforge.common.util.LazyOptional) ItemStack(net.minecraft.item.ItemStack) Helper(de.teamlapen.vampirism.util.Helper) EffectInstance(net.minecraft.potion.EffectInstance) VampireNightVisionEffectInstance(de.teamlapen.vampirism.effects.VampireNightVisionEffectInstance) Attributes(net.minecraft.entity.ai.attributes.Attributes) FactionPlayerHandler(de.teamlapen.vampirism.entity.factions.FactionPlayerHandler) net.minecraft.entity(net.minecraft.entity) DamageHandler(de.teamlapen.vampirism.entity.DamageHandler) Nonnull(javax.annotation.Nonnull) IBiteableEntity(de.teamlapen.vampirism.api.entity.IBiteableEntity) INBT(net.minecraft.nbt.INBT) Nullable(javax.annotation.Nullable) IExtendedCreatureVampirism(de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism) VampireActions(de.teamlapen.vampirism.player.vampire.actions.VampireActions) Effects(net.minecraft.potion.Effects) IFluidHandler(net.minecraftforge.fluids.capability.IFluidHandler) CapabilityFluidHandler(net.minecraftforge.fluids.capability.CapabilityFluidHandler) FluidTags(net.minecraft.tags.FluidTags) World(net.minecraft.world.World) VampirismAPI(de.teamlapen.vampirism.api.VampirismAPI) BlockPos(net.minecraft.util.math.BlockPos) Items(net.minecraft.item.Items) TickEvent(net.minecraftforge.event.TickEvent) VampirismMod(de.teamlapen.vampirism.VampirismMod) IBloodStats(de.teamlapen.vampirism.api.entity.player.vampire.IBloodStats) net.minecraftforge.common.capabilities(net.minecraftforge.common.capabilities) IVampireVision(de.teamlapen.vampirism.api.entity.player.vampire.IVampireVision) REFERENCE(de.teamlapen.vampirism.REFERENCE) ParticleTypes(net.minecraft.particles.ParticleTypes) VReference(de.teamlapen.vampirism.api.VReference) IActionHandler(de.teamlapen.vampirism.api.entity.player.actions.IActionHandler) BloodHelper(de.teamlapen.vampirism.fluids.BloodHelper) EquipmentSlotType(net.minecraft.inventory.EquipmentSlotType) ExtendedCreature(de.teamlapen.vampirism.entity.ExtendedCreature) VampirismHunterArmor(de.teamlapen.vampirism.items.VampirismHunterArmor) IVampirismPlayer(de.teamlapen.vampirism.player.IVampirismPlayer) ArmorItemAccessor(de.teamlapen.vampirism.mixin.ArmorItemAccessor) TileEntity(net.minecraft.tileentity.TileEntity) LogManager(org.apache.logging.log4j.LogManager) LevelAttributeModifier(de.teamlapen.vampirism.player.LevelAttributeModifier) CompoundNBT(net.minecraft.nbt.CompoundNBT) IExtendedCreatureVampirism(de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism) ServerPlayerEntity(net.minecraft.entity.player.ServerPlayerEntity) IBiteableEntity(de.teamlapen.vampirism.api.entity.IBiteableEntity)

Aggregations

REFERENCE (de.teamlapen.vampirism.REFERENCE)3 IExtendedCreatureVampirism (de.teamlapen.vampirism.api.entity.IExtendedCreatureVampirism)3 VampirismConfig (de.teamlapen.vampirism.config.VampirismConfig)3 ExtendedCreature (de.teamlapen.vampirism.entity.ExtendedCreature)3 VampirismPlayerAttributes (de.teamlapen.vampirism.player.VampirismPlayerAttributes)3 Helper (de.teamlapen.vampirism.util.Helper)3 Nullable (javax.annotation.Nullable)3 PlayerEntity (net.minecraft.entity.player.PlayerEntity)3 LazyOptional (net.minecraftforge.common.util.LazyOptional)3 TickEvent (net.minecraftforge.event.TickEvent)3 RenderSystem (com.mojang.blaze3d.systems.RenderSystem)2 OptifineHandler (de.teamlapen.lib.util.OptifineHandler)2 VampirismAPI (de.teamlapen.vampirism.api.VampirismAPI)2 IBiteableEntity (de.teamlapen.vampirism.api.entity.IBiteableEntity)2 IHunterMob (de.teamlapen.vampirism.api.entity.hunter.IHunterMob)2 IActionHandler (de.teamlapen.vampirism.api.entity.player.actions.IActionHandler)2 FactionPlayerHandler (de.teamlapen.vampirism.entity.factions.FactionPlayerHandler)2 VampireActions (de.teamlapen.vampirism.player.vampire.actions.VampireActions)2 BlockState (net.minecraft.block.BlockState)2 EffectInstance (net.minecraft.potion.EffectInstance)2