Auto-formatting, clean up and Jens AI

This commit is contained in:
ACGaming 2020-08-23 10:30:02 +02:00
parent 5a57851970
commit 639724c474
34 changed files with 2256 additions and 2329 deletions

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs; package mod.acgaming.spackenmobs;
import mod.acgaming.spackenmobs.misc.ModEntities; import mod.acgaming.spackenmobs.misc.ModEntities;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
@ -11,8 +12,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@Mod(modid = "spackenmobs", version = "1.0", acceptedMinecraftVersions = "[1.12.2]") @Mod(modid = "spackenmobs", version = "1.0", acceptedMinecraftVersions = "[1.12.2]")
public class Spackenmobs public class Spackenmobs {
{
public static final String MODID = "spackenmobs"; public static final String MODID = "spackenmobs";
public static final String VERSION = "1.0"; public static final String VERSION = "1.0";
@ -23,26 +23,22 @@ public class Spackenmobs
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@EventHandler @EventHandler
public void preInitClient(FMLPreInitializationEvent event) public void preInitClient(FMLPreInitializationEvent event) {
{
ModEntities.initModels(); ModEntities.initModels();
} }
@EventHandler @EventHandler
public void preInit(FMLPreInitializationEvent event) public void preInit(FMLPreInitializationEvent event) {
{
} }
@EventHandler @EventHandler
public void init(FMLInitializationEvent event) public void init(FMLInitializationEvent event) {
{
} }
@EventHandler @EventHandler
public void postInit(FMLPostInitializationEvent event) public void postInit(FMLPostInitializationEvent event) {
{
} }
} }

View file

@ -1,21 +1,19 @@
package mod.acgaming.spackenmobs; package mod.acgaming.spackenmobs;
import mod.acgaming.spackenmobs.misc.ModItems; import mod.acgaming.spackenmobs.misc.ModItems;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
public class SpackenmobsTab extends CreativeTabs public class SpackenmobsTab extends CreativeTabs {
{ public SpackenmobsTab() {
public SpackenmobsTab()
{
super(Spackenmobs.MODID); super(Spackenmobs.MODID);
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@Override @Override
public ItemStack getTabIconItem() public ItemStack getTabIconItem() {
{
return new ItemStack(ModItems.RAM); return new ItemStack(ModItems.RAM);
} }
} }

View file

@ -0,0 +1,68 @@
package mod.acgaming.spackenmobs.entities;
import java.util.List;
import java.util.Random;
import net.minecraft.entity.ai.EntityAIBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.world.World;
public class EntityAIEatDroppedFish extends EntityAIBase {
private EntityJens jens;
private Random rand = new Random();
private World world = null;
double searchDistance = 10.0D;
public EntityAIEatDroppedFish(EntityJens jens) {
this.jens = jens;
this.world = jens.world;
}
public EntityItem getNearbyFood() {
List<EntityItem> items = getItems();
for (EntityItem item : items) {
EntityItem stack = item;
if (items != null) {
return stack;
}
}
return null;
}
List<EntityItem> getItems() {
return this.world.getEntitiesWithinAABB(EntityItem.class,
new AxisAlignedBB(this.jens.posX - this.searchDistance, this.jens.posY - this.searchDistance,
this.jens.posZ - this.searchDistance, this.jens.posX + this.searchDistance,
this.jens.posY + this.searchDistance, this.jens.posZ + this.searchDistance));
}
@Override
public boolean shouldExecute() {
EntityItem getNearbyFood = getNearbyFood();
if (getNearbyFood != null && !this.jens.isChild() && this.jens.yummy_in_tummy == false
&& this.jens.isFishItem(getNearbyFood.getItem())) {
execute(this.jens, getNearbyFood);
}
return false;
}
public boolean execute(EntityJens jens, EntityItem item) {
if (jens.getNavigator().tryMoveToXYZ(item.posX, item.posY, item.posZ, 1.25D)) {
if (jens.getDistance(item) < 1.0F) {
eatItem(item);
jens.digestFish();
}
}
return true;
}
public void eatItem(EntityItem item) {
ItemStack stack = item.getItem();
stack.setCount(stack.getCount() - 1);
if (stack.getCount() == 0) {
item.setDead();
}
}
}

View file

@ -1,29 +1,28 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityApoRed extends EntitySkeleton public class EntityApoRed extends EntitySkeleton {
{ public EntityApoRed(World worldIn) {
public EntityApoRed(World worldIn)
{
super(worldIn); super(worldIn);
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_APORED_AMBIENT; return ModSoundEvents.ENTITY_APORED_AMBIENT;
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return ModSoundEvents.ENTITY_APORED_HURT; return ModSoundEvents.ENTITY_APORED_HURT;
} }
protected SoundEvent getDeathSound() @Override
{ protected SoundEvent getDeathSound() {
return ModSoundEvents.ENTITY_APORED_DEATH; return ModSoundEvents.ENTITY_APORED_DEATH;
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import java.util.UUID; import java.util.UUID;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -29,69 +30,62 @@ import net.minecraft.world.EnumDifficulty;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.storage.loot.LootTableList; import net.minecraft.world.storage.loot.LootTableList;
public class EntityDrachenlord extends EntityZombie public class EntityDrachenlord extends EntityZombie {
{ private static final UUID ATTACK_SPEED_BOOST_MODIFIER_UUID = UUID
private static final UUID ATTACK_SPEED_BOOST_MODIFIER_UUID = UUID.fromString("49455A49-7EC5-45BA-B886-3B90B23A1718"); .fromString("49455A49-7EC5-45BA-B886-3B90B23A1718");
private static final AttributeModifier ATTACK_SPEED_BOOST_MODIFIER = (new AttributeModifier(ATTACK_SPEED_BOOST_MODIFIER_UUID, "Attacking speed boost", 0.05D, 0)).setSaved(false); private static final AttributeModifier ATTACK_SPEED_BOOST_MODIFIER = (new AttributeModifier(
ATTACK_SPEED_BOOST_MODIFIER_UUID, "Attacking speed boost", 0.05D, 0)).setSaved(false);
private int angerLevel; private int angerLevel;
private int randomSoundDelay; private int randomSoundDelay;
private UUID angerTargetUUID; private UUID angerTargetUUID;
public EntityDrachenlord(World worldIn) public EntityDrachenlord(World worldIn) {
{
super(worldIn); super(worldIn);
this.isImmuneToFire = true; this.isImmuneToFire = true;
} }
public void setRevengeTarget(@Nullable EntityLivingBase livingBase) @Override
{ public void setRevengeTarget(@Nullable EntityLivingBase livingBase) {
super.setRevengeTarget(livingBase); super.setRevengeTarget(livingBase);
if (livingBase != null) if (livingBase != null) {
{
this.angerTargetUUID = livingBase.getUniqueID(); this.angerTargetUUID = livingBase.getUniqueID();
} }
} }
protected void applyEntityAI() @Override
{ protected void applyEntityAI() {
this.targetTasks.addTask(1, new EntityDrachenlord.AIHurtByAggressor(this)); this.targetTasks.addTask(1, new EntityDrachenlord.AIHurtByAggressor(this));
this.targetTasks.addTask(2, new EntityDrachenlord.AITargetAggressor(this)); this.targetTasks.addTask(2, new EntityDrachenlord.AITargetAggressor(this));
} }
protected void applyEntityAttributes() @Override
{ protected void applyEntityAttributes() {
super.applyEntityAttributes(); super.applyEntityAttributes();
this.getEntityAttribute(SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(0.0D); this.getEntityAttribute(SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(0.0D);
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.23000000417232513D); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.23000000417232513D);
this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(5.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(5.0D);
} }
protected void updateAITasks() @Override
{ protected void updateAITasks() {
IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED);
if (this.isAngry()) if (this.isAngry()) {
{ if (!this.isChild() && !iattributeinstance.hasModifier(ATTACK_SPEED_BOOST_MODIFIER)) {
if (!this.isChild() && !iattributeinstance.hasModifier(ATTACK_SPEED_BOOST_MODIFIER))
{
iattributeinstance.applyModifier(ATTACK_SPEED_BOOST_MODIFIER); iattributeinstance.applyModifier(ATTACK_SPEED_BOOST_MODIFIER);
} }
--this.angerLevel; --this.angerLevel;
} } else if (iattributeinstance.hasModifier(ATTACK_SPEED_BOOST_MODIFIER)) {
else if (iattributeinstance.hasModifier(ATTACK_SPEED_BOOST_MODIFIER))
{
iattributeinstance.removeModifier(ATTACK_SPEED_BOOST_MODIFIER); iattributeinstance.removeModifier(ATTACK_SPEED_BOOST_MODIFIER);
} }
if (this.randomSoundDelay > 0 && --this.randomSoundDelay == 0) if (this.randomSoundDelay > 0 && --this.randomSoundDelay == 0) {
{
this.playSound(ModSoundEvents.ENTITY_DRACHENLORD_ANGRY, this.getSoundVolume() * 2.0F, 1.0F); this.playSound(ModSoundEvents.ENTITY_DRACHENLORD_ANGRY, this.getSoundVolume() * 2.0F, 1.0F);
} }
if (this.angerLevel > 0 && this.angerTargetUUID != null && this.getRevengeTarget() == null) if (this.angerLevel > 0 && this.angerTargetUUID != null && this.getRevengeTarget() == null) {
{
EntityPlayer entityplayer = this.world.getPlayerEntityByUUID(this.angerTargetUUID); EntityPlayer entityplayer = this.world.getPlayerEntityByUUID(this.angerTargetUUID);
this.setRevengeTarget(entityplayer); this.setRevengeTarget(entityplayer);
this.attackingPlayer = entityplayer; this.attackingPlayer = entityplayer;
@ -101,68 +95,60 @@ public class EntityDrachenlord extends EntityZombie
super.updateAITasks(); super.updateAITasks();
} }
public boolean getCanSpawnHere() @Override
{ public boolean getCanSpawnHere() {
return this.world.getDifficulty() != EnumDifficulty.PEACEFUL; return this.world.getDifficulty() != EnumDifficulty.PEACEFUL;
} }
public boolean isNotColliding() @Override
{ public boolean isNotColliding() {
return this.world.checkNoEntityCollision(this.getEntityBoundingBox(), this) && this.world.getCollisionBoxes(this, this.getEntityBoundingBox()).isEmpty() && !this.world.containsAnyLiquid(this.getEntityBoundingBox()); return this.world.checkNoEntityCollision(this.getEntityBoundingBox(), this)
&& this.world.getCollisionBoxes(this, this.getEntityBoundingBox()).isEmpty()
&& !this.world.containsAnyLiquid(this.getEntityBoundingBox());
} }
public static void registerFixesPigZombie(DataFixer fixer) public static void registerFixesPigZombie(DataFixer fixer) {
{
EntityLiving.registerFixesMob(fixer, EntityDrachenlord.class); EntityLiving.registerFixesMob(fixer, EntityDrachenlord.class);
} }
public void writeEntityToNBT(NBTTagCompound compound) @Override
{ public void writeEntityToNBT(NBTTagCompound compound) {
super.writeEntityToNBT(compound); super.writeEntityToNBT(compound);
compound.setShort("Anger", (short) this.angerLevel); compound.setShort("Anger", (short) this.angerLevel);
if (this.angerTargetUUID != null) if (this.angerTargetUUID != null) {
{
compound.setString("HurtBy", this.angerTargetUUID.toString()); compound.setString("HurtBy", this.angerTargetUUID.toString());
} } else {
else
{
compound.setString("HurtBy", ""); compound.setString("HurtBy", "");
} }
} }
public void readEntityFromNBT(NBTTagCompound compound) @Override
{ public void readEntityFromNBT(NBTTagCompound compound) {
super.readEntityFromNBT(compound); super.readEntityFromNBT(compound);
this.angerLevel = compound.getShort("Anger"); this.angerLevel = compound.getShort("Anger");
String s = compound.getString("HurtBy"); String s = compound.getString("HurtBy");
if (!s.isEmpty()) if (!s.isEmpty()) {
{
this.angerTargetUUID = UUID.fromString(s); this.angerTargetUUID = UUID.fromString(s);
EntityPlayer entityplayer = this.world.getPlayerEntityByUUID(this.angerTargetUUID); EntityPlayer entityplayer = this.world.getPlayerEntityByUUID(this.angerTargetUUID);
this.setRevengeTarget(entityplayer); this.setRevengeTarget(entityplayer);
if (entityplayer != null) if (entityplayer != null) {
{
this.attackingPlayer = entityplayer; this.attackingPlayer = entityplayer;
this.recentlyHit = this.getRevengeTimer(); this.recentlyHit = this.getRevengeTimer();
} }
} }
} }
public boolean attackEntityFrom(DamageSource source, float amount) @Override
{ public boolean attackEntityFrom(DamageSource source, float amount) {
if (this.isEntityInvulnerable(source)) if (this.isEntityInvulnerable(source)) {
{
return false; return false;
} } else {
else
{
Entity entity = source.getTrueSource(); Entity entity = source.getTrueSource();
if (entity instanceof EntityPlayer) if (entity instanceof EntityPlayer) {
{
this.becomeAngryAt(entity); this.becomeAngryAt(entity);
} }
@ -170,90 +156,82 @@ public class EntityDrachenlord extends EntityZombie
} }
} }
private void becomeAngryAt(Entity p_70835_1_) private void becomeAngryAt(Entity p_70835_1_) {
{
this.angerLevel = 400 + this.rand.nextInt(400); this.angerLevel = 400 + this.rand.nextInt(400);
this.randomSoundDelay = this.rand.nextInt(40); this.randomSoundDelay = this.rand.nextInt(40);
if (p_70835_1_ instanceof EntityLivingBase) if (p_70835_1_ instanceof EntityLivingBase) {
{
this.setRevengeTarget((EntityLivingBase) p_70835_1_); this.setRevengeTarget((EntityLivingBase) p_70835_1_);
} }
} }
public boolean isAngry() public boolean isAngry() {
{
return this.angerLevel > 0; return this.angerLevel > 0;
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_DRACHENLORD_AMBIENT; return ModSoundEvents.ENTITY_DRACHENLORD_AMBIENT;
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return ModSoundEvents.ENTITY_DRACHENLORD_HURT; return ModSoundEvents.ENTITY_DRACHENLORD_HURT;
} }
protected SoundEvent getDeathSound() @Override
{ protected SoundEvent getDeathSound() {
return ModSoundEvents.ENTITY_DRACHENLORD_DEATH; return ModSoundEvents.ENTITY_DRACHENLORD_DEATH;
} }
@Override
@Nullable @Nullable
protected ResourceLocation getLootTable() protected ResourceLocation getLootTable() {
{
return LootTableList.ENTITIES_ZOMBIE_PIGMAN; return LootTableList.ENTITIES_ZOMBIE_PIGMAN;
} }
public boolean processInteract(EntityPlayer player, EnumHand hand) @Override
{ public boolean processInteract(EntityPlayer player, EnumHand hand) {
return false; return false;
} }
protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty) @Override
{ protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty) {
this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(Items.GOLDEN_AXE)); this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(Items.GOLDEN_AXE));
} }
protected ItemStack getSkullDrop() @Override
{ protected ItemStack getSkullDrop() {
return ItemStack.EMPTY; return ItemStack.EMPTY;
} }
public boolean isPreventingPlayerRest(EntityPlayer playerIn) @Override
{ public boolean isPreventingPlayerRest(EntityPlayer playerIn) {
return this.isAngry(); return this.isAngry();
} }
static class AIHurtByAggressor extends EntityAIHurtByTarget static class AIHurtByAggressor extends EntityAIHurtByTarget {
{ public AIHurtByAggressor(EntityDrachenlord p_i45828_1_) {
public AIHurtByAggressor(EntityDrachenlord p_i45828_1_)
{
super(p_i45828_1_, true); super(p_i45828_1_, true);
} }
protected void setEntityAttackTarget(EntityCreature creatureIn, EntityLivingBase entityLivingBaseIn) @Override
{ protected void setEntityAttackTarget(EntityCreature creatureIn, EntityLivingBase entityLivingBaseIn) {
super.setEntityAttackTarget(creatureIn, entityLivingBaseIn); super.setEntityAttackTarget(creatureIn, entityLivingBaseIn);
if (creatureIn instanceof EntityDrachenlord) if (creatureIn instanceof EntityDrachenlord) {
{
((EntityDrachenlord) creatureIn).becomeAngryAt(entityLivingBaseIn); ((EntityDrachenlord) creatureIn).becomeAngryAt(entityLivingBaseIn);
} }
} }
} }
static class AITargetAggressor extends EntityAINearestAttackableTarget<EntityPlayer> static class AITargetAggressor extends EntityAINearestAttackableTarget<EntityPlayer> {
{ public AITargetAggressor(EntityDrachenlord p_i45829_1_) {
public AITargetAggressor(EntityDrachenlord p_i45829_1_)
{
super(p_i45829_1_, EntityPlayer.class, true); super(p_i45829_1_, EntityPlayer.class, true);
} }
public boolean shouldExecute() @Override
{ public boolean shouldExecute() {
return ((EntityDrachenlord) this.taskOwner).isAngry() && super.shouldExecute(); return ((EntityDrachenlord) this.taskOwner).isAngry() && super.shouldExecute();
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import java.util.Set; import java.util.Set;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
@ -25,20 +26,18 @@ import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityHolzstammhuhn extends EntityChicken public class EntityHolzstammhuhn extends EntityChicken {
{
private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(Items.STICK); private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(Items.STICK);
public EntityHolzstammhuhn(World worldIn) public EntityHolzstammhuhn(World worldIn) {
{
super(worldIn); super(worldIn);
this.setSize(0.4F, 0.7F); this.setSize(0.4F, 0.7F);
this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000; this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000;
this.setPathPriority(PathNodeType.WATER, 0.0F); this.setPathPriority(PathNodeType.WATER, 0.0F);
} }
protected void initEntityAI() @Override
{ protected void initEntityAI() {
this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(0, new EntityAISwimming(this));
this.tasks.addTask(1, new EntityAIPanic(this, 1.4D)); this.tasks.addTask(1, new EntityAIPanic(this, 1.4D));
this.tasks.addTask(2, new EntityAIMate(this, 1.0D)); this.tasks.addTask(2, new EntityAIMate(this, 1.0D));
@ -49,33 +48,33 @@ public class EntityHolzstammhuhn extends EntityChicken
this.tasks.addTask(7, new EntityAILookIdle(this)); this.tasks.addTask(7, new EntityAILookIdle(this));
} }
public boolean isBreedingItem(ItemStack stack) @Override
{ public boolean isBreedingItem(ItemStack stack) {
return TEMPTATION_ITEMS.contains(stack.getItem()); return TEMPTATION_ITEMS.contains(stack.getItem());
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return SoundEvents.BLOCK_WOOD_PLACE; return SoundEvents.BLOCK_WOOD_PLACE;
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return SoundEvents.BLOCK_WOOD_HIT; return SoundEvents.BLOCK_WOOD_HIT;
} }
protected SoundEvent getDeathSound() @Override
{ protected SoundEvent getDeathSound() {
return SoundEvents.BLOCK_WOOD_BREAK; return SoundEvents.BLOCK_WOOD_BREAK;
} }
protected void playStepSound(BlockPos pos, Block blockIn) @Override
{ protected void playStepSound(BlockPos pos, Block blockIn) {
this.playSound(SoundEvents.BLOCK_WOOD_STEP, 0.15F, 1.0F); this.playSound(SoundEvents.BLOCK_WOOD_STEP, 0.15F, 1.0F);
} }
public EntityHolzstammhuhn createChild(EntityAgeable ageable) @Override
{ public EntityHolzstammhuhn createChild(EntityAgeable ageable) {
return new EntityHolzstammhuhn(this.world); return new EntityHolzstammhuhn(this.world);
} }
} }

View file

@ -1,50 +1,44 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityIslamist extends EntityCreeper public class EntityIslamist extends EntityCreeper {
{
private int lastActiveTime; private int lastActiveTime;
private int timeSinceIgnited; private int timeSinceIgnited;
private int fuseTime = 30; private int fuseTime = 30;
private int explosionRadius = 3; private int explosionRadius = 6;
public EntityIslamist(World worldIn) public EntityIslamist(World worldIn) {
{
super(worldIn); super(worldIn);
this.setSize(0.6F, 1.7F); this.setSize(0.6F, 1.7F);
} }
public void onUpdate() @Override
{ public void onUpdate() {
if (this.isEntityAlive()) if (this.isEntityAlive()) {
{
this.lastActiveTime = this.timeSinceIgnited; this.lastActiveTime = this.timeSinceIgnited;
if (this.hasIgnited()) if (this.hasIgnited()) {
{
this.setCreeperState(1); this.setCreeperState(1);
} }
int i = this.getCreeperState(); int i = this.getCreeperState();
if (i > 0 && this.timeSinceIgnited == 0) if (i > 0 && this.timeSinceIgnited == 0) {
{
this.playSound(ModSoundEvents.ENTITY_ISLAMIST_FUSE, 1.0F, 0.5F); this.playSound(ModSoundEvents.ENTITY_ISLAMIST_FUSE, 1.0F, 0.5F);
} }
this.timeSinceIgnited += i; this.timeSinceIgnited += i;
if (this.timeSinceIgnited < 0) if (this.timeSinceIgnited < 0) {
{
this.timeSinceIgnited = 0; this.timeSinceIgnited = 0;
} }
if (this.timeSinceIgnited >= this.fuseTime) if (this.timeSinceIgnited >= this.fuseTime) {
{
this.timeSinceIgnited = this.fuseTime; this.timeSinceIgnited = this.fuseTime;
this.explode(); this.explode();
} }
@ -53,26 +47,25 @@ public class EntityIslamist extends EntityCreeper
super.onUpdate(); super.onUpdate();
} }
private void explode() private void explode() {
{ if (!this.world.isRemote) {
if (!this.world.isRemote)
{
boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this); boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this);
float f = this.getPowered() ? 2.0F : 1.0F; float f = this.getPowered() ? 2.0F : 1.0F;
this.dead = true; this.dead = true;
this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_ISLAMIST_BLOW, getSoundCategory(), 1.0F, 1.0F); this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_ISLAMIST_BLOW, getSoundCategory(), 1.0F,
this.world.createExplosion(this, this.posX, this.posY, this.posZ, (float)this.explosionRadius * f, flag); 1.0F);
this.world.createExplosion(this, this.posX, this.posY, this.posZ, this.explosionRadius * f, flag);
this.setDead(); this.setDead();
} }
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return ModSoundEvents.ENTITY_ISLAMIST_HURT; return ModSoundEvents.ENTITY_ISLAMIST_HURT;
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_ISLAMIST_AMBIENT; return ModSoundEvents.ENTITY_ISLAMIST_AMBIENT;
} }
} }

View file

@ -1,12 +1,15 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import java.util.Set; import java.util.Set;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import mod.acgaming.spackenmobs.misc.ModItems; import mod.acgaming.spackenmobs.misc.ModItems;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIFollowParent; import net.minecraft.entity.ai.EntityAIFollowParent;
import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAIMate; import net.minecraft.entity.ai.EntityAIMate;
@ -26,114 +29,137 @@ import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityJens extends EntityAnimal public class EntityJens extends EntityAnimal {
{
private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ModItems.RAM); private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ModItems.RAM);
private static final Set<Item> FISH_ITEMS = Sets.newHashSet(Items.FISH);
public boolean yummy_in_tummy = false; public boolean yummy_in_tummy = false;
public int time_until_surstroemming = 0; public int time_until_surstroemming = 0;
public EntityJens(World worldIn) Minecraft MINECRAFT = Minecraft.getMinecraft();
{
public EntityJens(World worldIn) {
super(worldIn); super(worldIn);
setSize(0.6F, 2.2F); setSize(0.6F, 2.2F);
} }
protected void initEntityAI() @Override
{ protected void initEntityAI() {
this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(0, new EntityAISwimming(this));
this.tasks.addTask(1, new EntityAIPanic(this, 1.25D)); this.tasks.addTask(1, new EntityAIPanic(this, 1.25D));
this.tasks.addTask(2, new EntityAIEatDroppedFish(this));
this.tasks.addTask(3, new EntityAIMate(this, 1.0D)); this.tasks.addTask(3, new EntityAIMate(this, 1.0D));
this.tasks.addTask(4, new EntityAITempt(this, 1.2D, ModItems.RAM_ON_A_STICK, false));
this.tasks.addTask(4, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS)); this.tasks.addTask(4, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS));
this.tasks.addTask(4, new EntityAITempt(this, 1.2D, ModItems.RAM_ON_A_STICK, false));
this.tasks.addTask(5, new EntityAIFollowParent(this, 1.1D)); this.tasks.addTask(5, new EntityAIFollowParent(this, 1.1D));
this.tasks.addTask(6, new EntityAIWanderAvoidWater(this, 1.0D)); this.tasks.addTask(6, new EntityAIWanderAvoidWater(this, 1.0D));
this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
this.tasks.addTask(8, new EntityAILookIdle(this)); this.tasks.addTask(8, new EntityAILookIdle(this));
} }
public boolean isBreedingItem(ItemStack stack) @Override
{ protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D);
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.25D);
}
@Override
public boolean isBreedingItem(ItemStack stack) {
return TEMPTATION_ITEMS.contains(stack.getItem()); return TEMPTATION_ITEMS.contains(stack.getItem());
} }
public boolean canBeSteered() public boolean isFishItem(ItemStack stack) {
{ return FISH_ITEMS.contains(stack.getItem());
}
@Override
public boolean canBeSteered() {
Entity entity = this.getControllingPassenger(); Entity entity = this.getControllingPassenger();
if (!(entity instanceof EntityPlayer)) if (!(entity instanceof EntityPlayer)) {
{
return false; return false;
} } else {
else
{
EntityPlayer entityplayer = (EntityPlayer) entity; EntityPlayer entityplayer = (EntityPlayer) entity;
return entityplayer.getHeldItemMainhand().getItem() == ModItems.RAM_ON_A_STICK || entityplayer.getHeldItemOffhand().getItem() == ModItems.RAM_ON_A_STICK; return entityplayer.getHeldItemMainhand().getItem() == ModItems.RAM_ON_A_STICK
|| entityplayer.getHeldItemOffhand().getItem() == ModItems.RAM_ON_A_STICK;
} }
} }
public EntityJens createChild(EntityAgeable ageable) @Override
{ public EntityJens createChild(EntityAgeable ageable) {
return new EntityJens(this.world); return new EntityJens(this.world);
} }
@Override @Override
public boolean processInteract(EntityPlayer player, EnumHand hand) public boolean processInteract(EntityPlayer player, EnumHand hand) {
{
ItemStack itemstack = player.getHeldItem(hand); ItemStack itemstack = player.getHeldItem(hand);
EnumParticleTypes enumparticletypes = EnumParticleTypes.HEART;
if (itemstack.getItem() == Items.FISH && !player.capabilities.isCreativeMode && !this.isChild() && this.yummy_in_tummy == false) if (itemstack.getItem() == Items.FISH && !player.capabilities.isCreativeMode && !this.isChild()
{ && this.yummy_in_tummy == false) {
player.playSound(ModSoundEvents.ENTITY_JENS_EAT, 1.0F, 1.0F);
itemstack.shrink(1); itemstack.shrink(1);
this.yummy_in_tummy = true; digestFish();
this.time_until_surstroemming = 100;
for (int i = 0; i < 7; ++i)
{
double d0 = this.rand.nextGaussian() * 0.02D;
double d1 = this.rand.nextGaussian() * 0.02D;
double d2 = this.rand.nextGaussian() * 0.02D;
this.world.spawnParticle(enumparticletypes, this.posX + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, this.posY + 0.5D + (double)(this.rand.nextFloat() * this.height), this.posZ + (double)(this.rand.nextFloat() * this.width * 2.0F) - (double)this.width, d0, d1, d2);
}
return true; return true;
} } else {
else
{
return super.processInteract(player, hand); return super.processInteract(player, hand);
} }
} }
public void onLivingUpdate() @Override
{ public void onLivingUpdate() {
super.onLivingUpdate(); super.onLivingUpdate();
if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming > 0) if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming > 0) {
{
this.time_until_surstroemming--; this.time_until_surstroemming--;
} }
if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming <= 0) if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming <= 0) {
{ for (int i = 0; i < 7; ++i) {
this.playSound(ModSoundEvents.ENTITY_JENS_POOP, 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); double d0 = this.rand.nextGaussian() * 0.02D;
double d1 = this.rand.nextGaussian() * 0.02D;
double d2 = this.rand.nextGaussian() * 0.02D;
MINECRAFT.world.spawnParticle(EnumParticleTypes.SMOKE_LARGE,
this.posX + this.rand.nextFloat() * this.width * 2.0F - this.width,
this.posY + 0.5D + this.rand.nextFloat() * this.height,
this.posZ + this.rand.nextFloat() * this.width * 2.0F - this.width, d0, d1, d2);
}
this.playSound(ModSoundEvents.ENTITY_JENS_POOP, 1.0F,
(this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F);
this.dropItem(ModItems.SURSTROEMMING, 1); this.dropItem(ModItems.SURSTROEMMING, 1);
this.yummy_in_tummy = false; this.yummy_in_tummy = false;
this.time_until_surstroemming = 0; this.time_until_surstroemming = 0;
} }
} }
protected SoundEvent getAmbientSound() public void digestFish() {
{ this.playSound(ModSoundEvents.ENTITY_JENS_EAT, 1.0F, 1.0F);
this.yummy_in_tummy = true;
this.time_until_surstroemming = 200;
for (int i = 0; i < 7; ++i) {
double d0 = this.rand.nextGaussian() * 0.02D;
double d1 = this.rand.nextGaussian() * 0.02D;
double d2 = this.rand.nextGaussian() * 0.02D;
MINECRAFT.world.spawnParticle(EnumParticleTypes.HEART,
this.posX + this.rand.nextFloat() * this.width * 2.0F - this.width,
this.posY + 0.5D + this.rand.nextFloat() * this.height,
this.posZ + this.rand.nextFloat() * this.width * 2.0F - this.width, d0, d1, d2);
}
}
@Override
protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_JENS_AMBIENT; return ModSoundEvents.ENTITY_JENS_AMBIENT;
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return ModSoundEvents.ENTITY_JENS_HURT; return ModSoundEvents.ENTITY_JENS_HURT;
} }
protected SoundEvent getDeathSound() @Override
{ protected SoundEvent getDeathSound() {
return ModSoundEvents.ENTITY_JENS_DEATH; return ModSoundEvents.ENTITY_JENS_DEATH;
} }
} }

View file

@ -1,30 +1,29 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityMarcellDAvis extends EntityZombie public class EntityMarcellDAvis extends EntityZombie {
{ public EntityMarcellDAvis(World worldIn) {
public EntityMarcellDAvis(World worldIn)
{
super(worldIn); super(worldIn);
this.setSize(0.6F, 1.95F); this.setSize(0.6F, 1.95F);
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT; return ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT;
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return ModSoundEvents.ENTITY_MARCELLDAVIS_HURT; return ModSoundEvents.ENTITY_MARCELLDAVIS_HURT;
} }
protected SoundEvent getDeathSound() @Override
{ protected SoundEvent getDeathSound() {
return ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH; return ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH;
} }
} }

View file

@ -1,30 +1,29 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityMrBean extends EntityZombie public class EntityMrBean extends EntityZombie {
{ public EntityMrBean(World worldIn) {
public EntityMrBean(World worldIn)
{
super(worldIn); super(worldIn);
this.setSize(0.6F, 1.95F); this.setSize(0.6F, 1.95F);
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_MRBEAN_AMBIENT; return ModSoundEvents.ENTITY_MRBEAN_AMBIENT;
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return ModSoundEvents.ENTITY_MRBEAN_HURT; return ModSoundEvents.ENTITY_MRBEAN_HURT;
} }
protected SoundEvent getDeathSound() @Override
{ protected SoundEvent getDeathSound() {
return ModSoundEvents.ENTITY_MRBEAN_DEATH; return ModSoundEvents.ENTITY_MRBEAN_DEATH;
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -8,8 +9,7 @@ import com.google.common.base.Optional;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.block.BlockPistonBase; import net.minecraft.block.BlockDirectional;
import net.minecraft.block.BlockPistonExtension;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -52,22 +52,25 @@ import net.minecraft.world.storage.loot.LootTableList;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
public class EntitySchalker extends EntityGolem implements IMob public class EntitySchalker extends EntityGolem implements IMob {
{
private static final UUID COVERED_ARMOR_BONUS_ID = UUID.fromString("7E0292F2-9434-48D5-A29F-9583AF7DF27F"); private static final UUID COVERED_ARMOR_BONUS_ID = UUID.fromString("7E0292F2-9434-48D5-A29F-9583AF7DF27F");
private static final AttributeModifier COVERED_ARMOR_BONUS_MODIFIER = (new AttributeModifier(COVERED_ARMOR_BONUS_ID, "Covered armor bonus", 20.0D, 0)).setSaved(false); private static final AttributeModifier COVERED_ARMOR_BONUS_MODIFIER = (new AttributeModifier(COVERED_ARMOR_BONUS_ID,
protected static final DataParameter<EnumFacing> ATTACHED_FACE = EntityDataManager.<EnumFacing>createKey(EntitySchalker.class, DataSerializers.FACING); "Covered armor bonus", 20.0D, 0)).setSaved(false);
protected static final DataParameter<Optional<BlockPos>> ATTACHED_BLOCK_POS = EntityDataManager.<Optional<BlockPos>>createKey(EntitySchalker.class, DataSerializers.OPTIONAL_BLOCK_POS); protected static final DataParameter<EnumFacing> ATTACHED_FACE = EntityDataManager
protected static final DataParameter<Byte> PEEK_TICK = EntityDataManager.<Byte>createKey(EntitySchalker.class, DataSerializers.BYTE); .<EnumFacing>createKey(EntitySchalker.class, DataSerializers.FACING);
protected static final DataParameter<Byte> COLOR = EntityDataManager.<Byte>createKey(EntitySchalker.class, DataSerializers.BYTE); protected static final DataParameter<Optional<BlockPos>> ATTACHED_BLOCK_POS = EntityDataManager
.<Optional<BlockPos>>createKey(EntitySchalker.class, DataSerializers.OPTIONAL_BLOCK_POS);
protected static final DataParameter<Byte> PEEK_TICK = EntityDataManager.<Byte>createKey(EntitySchalker.class,
DataSerializers.BYTE);
protected static final DataParameter<Byte> COLOR = EntityDataManager.<Byte>createKey(EntitySchalker.class,
DataSerializers.BYTE);
public static final EnumDyeColor DEFAULT_COLOR = EnumDyeColor.PURPLE; public static final EnumDyeColor DEFAULT_COLOR = EnumDyeColor.PURPLE;
private float prevPeekAmount; private float prevPeekAmount;
private float peekAmount; private float peekAmount;
private BlockPos currentAttachmentPosition; private BlockPos currentAttachmentPosition;
private int clientSideTeleportInterpolation; private int clientSideTeleportInterpolation;
public EntitySchalker(World worldIn) public EntitySchalker(World worldIn) {
{
super(worldIn); super(worldIn);
this.setSize(1.0F, 1.0F); this.setSize(1.0F, 1.0F);
this.prevRenderYawOffset = 180.0F; this.prevRenderYawOffset = 180.0F;
@ -77,9 +80,9 @@ public class EntitySchalker extends EntityGolem implements IMob
this.experienceValue = 5; this.experienceValue = 5;
} }
@Override
@Nullable @Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
{
this.renderYawOffset = 180.0F; this.renderYawOffset = 180.0F;
this.prevRenderYawOffset = 180.0F; this.prevRenderYawOffset = 180.0F;
this.rotationYaw = 180.0F; this.rotationYaw = 180.0F;
@ -89,8 +92,8 @@ public class EntitySchalker extends EntityGolem implements IMob
return super.onInitialSpawn(difficulty, livingdata); return super.onInitialSpawn(difficulty, livingdata);
} }
protected void initEntityAI() @Override
{ protected void initEntityAI() {
this.tasks.addTask(1, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(1, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
this.tasks.addTask(4, new EntitySchalker.AIAttack()); this.tasks.addTask(4, new EntitySchalker.AIAttack());
this.tasks.addTask(7, new EntitySchalker.AIPeek()); this.tasks.addTask(7, new EntitySchalker.AIPeek());
@ -100,41 +103,40 @@ public class EntitySchalker extends EntityGolem implements IMob
this.targetTasks.addTask(3, new EntitySchalker.AIDefenseAttack(this)); this.targetTasks.addTask(3, new EntitySchalker.AIDefenseAttack(this));
} }
protected boolean canTriggerWalking() @Override
{ protected boolean canTriggerWalking() {
return false; return false;
} }
public SoundCategory getSoundCategory() @Override
{ public SoundCategory getSoundCategory() {
return SoundCategory.HOSTILE; return SoundCategory.HOSTILE;
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_SCHALKER_AMBIENT; return ModSoundEvents.ENTITY_SCHALKER_AMBIENT;
} }
public void playLivingSound() @Override
{ public void playLivingSound() {
if (!this.isClosed()) if (!this.isClosed()) {
{
super.playLivingSound(); super.playLivingSound();
} }
} }
protected SoundEvent getDeathSound() @Override
{ protected SoundEvent getDeathSound() {
return ModSoundEvents.ENTITY_SCHALKER_DEATH; return ModSoundEvents.ENTITY_SCHALKER_DEATH;
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return this.isClosed() ? SoundEvents.ENTITY_SHULKER_HURT_CLOSED : SoundEvents.ENTITY_SHULKER_HURT; return this.isClosed() ? SoundEvents.ENTITY_SHULKER_HURT_CLOSED : SoundEvents.ENTITY_SHULKER_HURT;
} }
protected void entityInit() @Override
{ protected void entityInit() {
super.entityInit(); super.entityInit();
this.dataManager.register(ATTACHED_FACE, EnumFacing.DOWN); this.dataManager.register(ATTACHED_FACE, EnumFacing.DOWN);
this.dataManager.register(ATTACHED_BLOCK_POS, Optional.absent()); this.dataManager.register(ATTACHED_BLOCK_POS, Optional.absent());
@ -142,231 +144,205 @@ public class EntitySchalker extends EntityGolem implements IMob
this.dataManager.register(COLOR, Byte.valueOf((byte) DEFAULT_COLOR.getMetadata())); this.dataManager.register(COLOR, Byte.valueOf((byte) DEFAULT_COLOR.getMetadata()));
} }
protected void applyEntityAttributes() @Override
{ protected void applyEntityAttributes() {
super.applyEntityAttributes(); super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(30.0D); this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(30.0D);
} }
protected EntityBodyHelper createBodyHelper() @Override
{ protected EntityBodyHelper createBodyHelper() {
return new EntitySchalker.BodyHelper(this); return new EntitySchalker.BodyHelper(this);
} }
public static void registerFixesSchalker(DataFixer fixer) public static void registerFixesSchalker(DataFixer fixer) {
{
EntityLiving.registerFixesMob(fixer, EntitySchalker.class); EntityLiving.registerFixesMob(fixer, EntitySchalker.class);
} }
public void readEntityFromNBT(NBTTagCompound compound) @Override
{ public void readEntityFromNBT(NBTTagCompound compound) {
super.readEntityFromNBT(compound); super.readEntityFromNBT(compound);
this.dataManager.set(ATTACHED_FACE, EnumFacing.getFront(compound.getByte("AttachFace"))); this.dataManager.set(ATTACHED_FACE, EnumFacing.getFront(compound.getByte("AttachFace")));
this.dataManager.set(PEEK_TICK, Byte.valueOf(compound.getByte("Peek"))); this.dataManager.set(PEEK_TICK, Byte.valueOf(compound.getByte("Peek")));
this.dataManager.set(COLOR, Byte.valueOf(compound.getByte("Color"))); this.dataManager.set(COLOR, Byte.valueOf(compound.getByte("Color")));
if (compound.hasKey("APX")) if (compound.hasKey("APX")) {
{
int i = compound.getInteger("APX"); int i = compound.getInteger("APX");
int j = compound.getInteger("APY"); int j = compound.getInteger("APY");
int k = compound.getInteger("APZ"); int k = compound.getInteger("APZ");
this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(new BlockPos(i, j, k))); this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(new BlockPos(i, j, k)));
} } else {
else
{
this.dataManager.set(ATTACHED_BLOCK_POS, Optional.absent()); this.dataManager.set(ATTACHED_BLOCK_POS, Optional.absent());
} }
} }
public void writeEntityToNBT(NBTTagCompound compound) @Override
{ public void writeEntityToNBT(NBTTagCompound compound) {
super.writeEntityToNBT(compound); super.writeEntityToNBT(compound);
compound.setByte("AttachFace", (byte)((EnumFacing)this.dataManager.get(ATTACHED_FACE)).getIndex()); compound.setByte("AttachFace", (byte) this.dataManager.get(ATTACHED_FACE).getIndex());
compound.setByte("Peek", ((Byte)this.dataManager.get(PEEK_TICK)).byteValue()); compound.setByte("Peek", this.dataManager.get(PEEK_TICK).byteValue());
compound.setByte("Color", ((Byte)this.dataManager.get(COLOR)).byteValue()); compound.setByte("Color", this.dataManager.get(COLOR).byteValue());
BlockPos blockpos = this.getAttachmentPos(); BlockPos blockpos = this.getAttachmentPos();
if (blockpos != null) if (blockpos != null) {
{
compound.setInteger("APX", blockpos.getX()); compound.setInteger("APX", blockpos.getX());
compound.setInteger("APY", blockpos.getY()); compound.setInteger("APY", blockpos.getY());
compound.setInteger("APZ", blockpos.getZ()); compound.setInteger("APZ", blockpos.getZ());
} }
} }
public void onUpdate() @Override
{ public void onUpdate() {
super.onUpdate(); super.onUpdate();
BlockPos blockpos = (BlockPos) ((Optional) this.dataManager.get(ATTACHED_BLOCK_POS)).orNull(); BlockPos blockpos = (BlockPos) ((Optional) this.dataManager.get(ATTACHED_BLOCK_POS)).orNull();
if (blockpos == null && !this.world.isRemote) if (blockpos == null && !this.world.isRemote) {
{
blockpos = new BlockPos(this); blockpos = new BlockPos(this);
this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos)); this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos));
} }
if (this.isRiding()) if (this.isRiding()) {
{
blockpos = null; blockpos = null;
float f = this.getRidingEntity().rotationYaw; float f = this.getRidingEntity().rotationYaw;
this.rotationYaw = f; this.rotationYaw = f;
this.renderYawOffset = f; this.renderYawOffset = f;
this.prevRenderYawOffset = f; this.prevRenderYawOffset = f;
this.clientSideTeleportInterpolation = 0; this.clientSideTeleportInterpolation = 0;
} } else if (!this.world.isRemote) {
else if (!this.world.isRemote)
{
IBlockState iblockstate = this.world.getBlockState(blockpos); IBlockState iblockstate = this.world.getBlockState(blockpos);
if (iblockstate.getMaterial() != Material.AIR) if (iblockstate.getMaterial() != Material.AIR) {
{ if (iblockstate.getBlock() == Blocks.PISTON_EXTENSION) {
if (iblockstate.getBlock() == Blocks.PISTON_EXTENSION) EnumFacing enumfacing = iblockstate.getValue(BlockDirectional.FACING);
{
EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(BlockPistonBase.FACING);
if (this.world.isAirBlock(blockpos.offset(enumfacing))) if (this.world.isAirBlock(blockpos.offset(enumfacing))) {
{
blockpos = blockpos.offset(enumfacing); blockpos = blockpos.offset(enumfacing);
this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos)); this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos));
} } else {
else
{
this.tryTeleportToNewPosition(); this.tryTeleportToNewPosition();
} }
} } else if (iblockstate.getBlock() == Blocks.PISTON_HEAD) {
else if (iblockstate.getBlock() == Blocks.PISTON_HEAD) EnumFacing enumfacing3 = iblockstate.getValue(BlockDirectional.FACING);
{
EnumFacing enumfacing3 = (EnumFacing)iblockstate.getValue(BlockPistonExtension.FACING);
if (this.world.isAirBlock(blockpos.offset(enumfacing3))) if (this.world.isAirBlock(blockpos.offset(enumfacing3))) {
{
blockpos = blockpos.offset(enumfacing3); blockpos = blockpos.offset(enumfacing3);
this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos)); this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos));
} } else {
else
{
this.tryTeleportToNewPosition(); this.tryTeleportToNewPosition();
} }
} } else {
else
{
this.tryTeleportToNewPosition(); this.tryTeleportToNewPosition();
} }
} }
BlockPos blockpos1 = blockpos.offset(this.getAttachmentFacing()); BlockPos blockpos1 = blockpos.offset(this.getAttachmentFacing());
if (!this.world.isBlockNormalCube(blockpos1, false)) if (!this.world.isBlockNormalCube(blockpos1, false)) {
{
boolean flag = false; boolean flag = false;
for (EnumFacing enumfacing1 : EnumFacing.values()) for (EnumFacing enumfacing1 : EnumFacing.values()) {
{
blockpos1 = blockpos.offset(enumfacing1); blockpos1 = blockpos.offset(enumfacing1);
if (this.world.isBlockNormalCube(blockpos1, false)) if (this.world.isBlockNormalCube(blockpos1, false)) {
{
this.dataManager.set(ATTACHED_FACE, enumfacing1); this.dataManager.set(ATTACHED_FACE, enumfacing1);
flag = true; flag = true;
break; break;
} }
} }
if (!flag) if (!flag) {
{
this.tryTeleportToNewPosition(); this.tryTeleportToNewPosition();
} }
} }
BlockPos blockpos2 = blockpos.offset(this.getAttachmentFacing().getOpposite()); BlockPos blockpos2 = blockpos.offset(this.getAttachmentFacing().getOpposite());
if (this.world.isBlockNormalCube(blockpos2, false)) if (this.world.isBlockNormalCube(blockpos2, false)) {
{
this.tryTeleportToNewPosition(); this.tryTeleportToNewPosition();
} }
} }
float f1 = (float)this.getPeekTick() * 0.01F; float f1 = this.getPeekTick() * 0.01F;
this.prevPeekAmount = this.peekAmount; this.prevPeekAmount = this.peekAmount;
if (this.peekAmount > f1) if (this.peekAmount > f1) {
{
this.peekAmount = MathHelper.clamp(this.peekAmount - 0.05F, f1, 1.0F); this.peekAmount = MathHelper.clamp(this.peekAmount - 0.05F, f1, 1.0F);
} } else if (this.peekAmount < f1) {
else if (this.peekAmount < f1)
{
this.peekAmount = MathHelper.clamp(this.peekAmount + 0.05F, 0.0F, f1); this.peekAmount = MathHelper.clamp(this.peekAmount + 0.05F, 0.0F, f1);
} }
if (blockpos != null) if (blockpos != null) {
{ if (this.world.isRemote) {
if (this.world.isRemote) if (this.clientSideTeleportInterpolation > 0 && this.currentAttachmentPosition != null) {
{
if (this.clientSideTeleportInterpolation > 0 && this.currentAttachmentPosition != null)
{
--this.clientSideTeleportInterpolation; --this.clientSideTeleportInterpolation;
} } else {
else
{
this.currentAttachmentPosition = blockpos; this.currentAttachmentPosition = blockpos;
} }
} }
this.posX = (double)blockpos.getX() + 0.5D; this.posX = blockpos.getX() + 0.5D;
this.posY = (double)blockpos.getY(); this.posY = blockpos.getY();
this.posZ = (double)blockpos.getZ() + 0.5D; this.posZ = blockpos.getZ() + 0.5D;
if (this.isAddedToWorld() && !this.world.isRemote) this.world.updateEntityWithOptionalForce(this, false); // Forge - Process chunk registration after moving. if (this.isAddedToWorld() && !this.world.isRemote)
this.world.updateEntityWithOptionalForce(this, false); // Forge
// -
// Process
// chunk
// registration
// after
// moving.
this.prevPosX = this.posX; this.prevPosX = this.posX;
this.prevPosY = this.posY; this.prevPosY = this.posY;
this.prevPosZ = this.posZ; this.prevPosZ = this.posZ;
this.lastTickPosX = this.posX; this.lastTickPosX = this.posX;
this.lastTickPosY = this.posY; this.lastTickPosY = this.posY;
this.lastTickPosZ = this.posZ; this.lastTickPosZ = this.posZ;
double d3 = 0.5D - (double)MathHelper.sin((0.5F + this.peekAmount) * (float)Math.PI) * 0.5D; double d3 = 0.5D - MathHelper.sin((0.5F + this.peekAmount) * (float) Math.PI) * 0.5D;
double d4 = 0.5D - (double)MathHelper.sin((0.5F + this.prevPeekAmount) * (float)Math.PI) * 0.5D; double d4 = 0.5D - MathHelper.sin((0.5F + this.prevPeekAmount) * (float) Math.PI) * 0.5D;
double d5 = d3 - d4; double d5 = d3 - d4;
double d0 = 0.0D; double d0 = 0.0D;
double d1 = 0.0D; double d1 = 0.0D;
double d2 = 0.0D; double d2 = 0.0D;
EnumFacing enumfacing2 = this.getAttachmentFacing(); EnumFacing enumfacing2 = this.getAttachmentFacing();
switch (enumfacing2) switch (enumfacing2) {
{
case DOWN: case DOWN:
this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D, this.posX + 0.5D, this.posY + 1.0D + d3, this.posZ + 0.5D)); this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D,
this.posX + 0.5D, this.posY + 1.0D + d3, this.posZ + 0.5D));
d1 = d5; d1 = d5;
break; break;
case UP: case UP:
this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY - d3, this.posZ - 0.5D, this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D)); this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY - d3, this.posZ - 0.5D,
this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D));
d1 = -d5; d1 = -d5;
break; break;
case NORTH: case NORTH:
this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D, this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D + d3)); this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D,
this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D + d3));
d2 = d5; d2 = d5;
break; break;
case SOUTH: case SOUTH:
this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D - d3, this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D)); this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D - d3,
this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D));
d2 = -d5; d2 = -d5;
break; break;
case WEST: case WEST:
this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D, this.posX + 0.5D + d3, this.posY + 1.0D, this.posZ + 0.5D)); this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D, this.posY, this.posZ - 0.5D,
this.posX + 0.5D + d3, this.posY + 1.0D, this.posZ + 0.5D));
d0 = d5; d0 = d5;
break; break;
case EAST: case EAST:
this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D - d3, this.posY, this.posZ - 0.5D, this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D)); this.setEntityBoundingBox(new AxisAlignedBB(this.posX - 0.5D - d3, this.posY, this.posZ - 0.5D,
this.posX + 0.5D, this.posY + 1.0D, this.posZ + 0.5D));
d0 = -d5; d0 = -d5;
} }
if (d5 > 0.0D) if (d5 > 0.0D) {
{
List<Entity> list = this.world.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox()); List<Entity> list = this.world.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox());
if (!list.isEmpty()) if (!list.isEmpty()) {
{ for (Entity entity : list) {
for (Entity entity : list) if (!(entity instanceof EntitySchalker) && !entity.noClip) {
{
if (!(entity instanceof EntitySchalker) && !entity.noClip)
{
entity.move(MoverType.SHULKER, d0, d1, d2); entity.move(MoverType.SHULKER, d0, d1, d2);
} }
} }
@ -375,29 +351,24 @@ public class EntitySchalker extends EntityGolem implements IMob
} }
} }
public void move(MoverType type, double x, double y, double z) @Override
{ public void move(MoverType type, double x, double y, double z) {
if (type == MoverType.SHULKER_BOX) if (type == MoverType.SHULKER_BOX) {
{
this.tryTeleportToNewPosition(); this.tryTeleportToNewPosition();
} } else {
else
{
super.move(type, x, y, z); super.move(type, x, y, z);
} }
} }
public void setPosition(double x, double y, double z) @Override
{ public void setPosition(double x, double y, double z) {
super.setPosition(x, y, z); super.setPosition(x, y, z);
if (this.dataManager != null && this.ticksExisted != 0) if (this.dataManager != null && this.ticksExisted != 0) {
{ Optional<BlockPos> optional = this.dataManager.get(ATTACHED_BLOCK_POS);
Optional<BlockPos> optional = (Optional)this.dataManager.get(ATTACHED_BLOCK_POS);
Optional<BlockPos> optional1 = Optional.<BlockPos>of(new BlockPos(x, y, z)); Optional<BlockPos> optional1 = Optional.<BlockPos>of(new BlockPos(x, y, z));
if (!optional1.equals(optional)) if (!optional1.equals(optional)) {
{
this.dataManager.set(ATTACHED_BLOCK_POS, optional1); this.dataManager.set(ATTACHED_BLOCK_POS, optional1);
this.dataManager.set(PEEK_TICK, Byte.valueOf((byte) 0)); this.dataManager.set(PEEK_TICK, Byte.valueOf((byte) 0));
this.isAirBorne = true; this.isAirBorne = true;
@ -405,39 +376,35 @@ public class EntitySchalker extends EntityGolem implements IMob
} }
} }
protected boolean tryTeleportToNewPosition() protected boolean tryTeleportToNewPosition() {
{ if (!this.isAIDisabled() && this.isEntityAlive()) {
if (!this.isAIDisabled() && this.isEntityAlive())
{
BlockPos blockpos = new BlockPos(this); BlockPos blockpos = new BlockPos(this);
for (int i = 0; i < 5; ++i) for (int i = 0; i < 5; ++i) {
{ BlockPos blockpos1 = blockpos.add(8 - this.rand.nextInt(17), 8 - this.rand.nextInt(17),
BlockPos blockpos1 = blockpos.add(8 - this.rand.nextInt(17), 8 - this.rand.nextInt(17), 8 - this.rand.nextInt(17)); 8 - this.rand.nextInt(17));
if (blockpos1.getY() > 0 && this.world.isAirBlock(blockpos1) && this.world.isInsideWorldBorder(this) && this.world.getCollisionBoxes(this, new AxisAlignedBB(blockpos1)).isEmpty()) if (blockpos1.getY() > 0 && this.world.isAirBlock(blockpos1) && this.world.isInsideWorldBorder(this)
{ && this.world.getCollisionBoxes(this, new AxisAlignedBB(blockpos1)).isEmpty()) {
boolean flag = false; boolean flag = false;
for (EnumFacing enumfacing : EnumFacing.values()) for (EnumFacing enumfacing : EnumFacing.values()) {
{ if (this.world.isBlockNormalCube(blockpos1.offset(enumfacing), false)) {
if (this.world.isBlockNormalCube(blockpos1.offset(enumfacing), false))
{
this.dataManager.set(ATTACHED_FACE, enumfacing); this.dataManager.set(ATTACHED_FACE, enumfacing);
flag = true; flag = true;
break; break;
} }
} }
if (flag) if (flag) {
{ net.minecraftforge.event.entity.living.EnderTeleportEvent event = new net.minecraftforge.event.entity.living.EnderTeleportEvent(
net.minecraftforge.event.entity.living.EnderTeleportEvent event = new net.minecraftforge.event.entity.living.EnderTeleportEvent(this, blockpos1.getX(), blockpos1.getY(), blockpos1.getZ(), 0); this, blockpos1.getX(), blockpos1.getY(), blockpos1.getZ(), 0);
if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) flag = false; if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event))
flag = false;
blockpos1 = new BlockPos(event.getTargetX(), event.getTargetY(), event.getTargetZ()); blockpos1 = new BlockPos(event.getTargetX(), event.getTargetY(), event.getTargetZ());
} }
if (flag) if (flag) {
{
this.playSound(SoundEvents.ENTITY_SHULKER_TELEPORT, 1.0F, 1.0F); this.playSound(SoundEvents.ENTITY_SHULKER_TELEPORT, 1.0F, 1.0F);
this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos1)); this.dataManager.set(ATTACHED_BLOCK_POS, Optional.of(blockpos1));
this.dataManager.set(PEEK_TICK, Byte.valueOf((byte) 0)); this.dataManager.set(PEEK_TICK, Byte.valueOf((byte) 0));
@ -448,15 +415,13 @@ public class EntitySchalker extends EntityGolem implements IMob
} }
return false; return false;
} } else {
else
{
return true; return true;
} }
} }
public void onLivingUpdate() @Override
{ public void onLivingUpdate() {
super.onLivingUpdate(); super.onLivingUpdate();
this.motionX = 0.0D; this.motionX = 0.0D;
this.motionY = 0.0D; this.motionY = 0.0D;
@ -466,26 +431,21 @@ public class EntitySchalker extends EntityGolem implements IMob
this.rotationYaw = 180.0F; this.rotationYaw = 180.0F;
} }
public void notifyDataManagerChange(DataParameter<?> key) @Override
{ public void notifyDataManagerChange(DataParameter<?> key) {
if (ATTACHED_BLOCK_POS.equals(key) && this.world.isRemote && !this.isRiding()) if (ATTACHED_BLOCK_POS.equals(key) && this.world.isRemote && !this.isRiding()) {
{
BlockPos blockpos = this.getAttachmentPos(); BlockPos blockpos = this.getAttachmentPos();
if (blockpos != null) if (blockpos != null) {
{ if (this.currentAttachmentPosition == null) {
if (this.currentAttachmentPosition == null)
{
this.currentAttachmentPosition = blockpos; this.currentAttachmentPosition = blockpos;
} } else {
else
{
this.clientSideTeleportInterpolation = 6; this.clientSideTeleportInterpolation = 6;
} }
this.posX = (double)blockpos.getX() + 0.5D; this.posX = blockpos.getX() + 0.5D;
this.posY = (double)blockpos.getY(); this.posY = blockpos.getY();
this.posZ = (double)blockpos.getZ() + 0.5D; this.posZ = blockpos.getZ() + 0.5D;
this.prevPosX = this.posX; this.prevPosX = this.posX;
this.prevPosY = this.posY; this.prevPosY = this.posY;
this.prevPosZ = this.posZ; this.prevPosZ = this.posZ;
@ -498,84 +458,69 @@ public class EntitySchalker extends EntityGolem implements IMob
super.notifyDataManagerChange(key); super.notifyDataManagerChange(key);
} }
@Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void setPositionAndRotationDirect(double x, double y, double z, float yaw, float pitch, int posRotationIncrements, boolean teleport) public void setPositionAndRotationDirect(double x, double y, double z, float yaw, float pitch,
{ int posRotationIncrements, boolean teleport) {
this.newPosRotationIncrements = 0; this.newPosRotationIncrements = 0;
} }
public boolean attackEntityFrom(DamageSource source, float amount) @Override
{ public boolean attackEntityFrom(DamageSource source, float amount) {
if (this.isClosed()) if (this.isClosed()) {
{
Entity entity = source.getImmediateSource(); Entity entity = source.getImmediateSource();
if (entity instanceof EntityArrow) if (entity instanceof EntityArrow) {
{
return false; return false;
} }
} }
if (super.attackEntityFrom(source, amount)) if (super.attackEntityFrom(source, amount)) {
{ if (this.getHealth() < this.getMaxHealth() * 0.5D && this.rand.nextInt(4) == 0) {
if ((double)this.getHealth() < (double)this.getMaxHealth() * 0.5D && this.rand.nextInt(4) == 0)
{
this.tryTeleportToNewPosition(); this.tryTeleportToNewPosition();
} }
return true; return true;
} } else {
else
{
return false; return false;
} }
} }
private boolean isClosed() private boolean isClosed() {
{
return this.getPeekTick() == 0; return this.getPeekTick() == 0;
} }
@Override
@Nullable @Nullable
public AxisAlignedBB getCollisionBoundingBox() public AxisAlignedBB getCollisionBoundingBox() {
{
return this.isEntityAlive() ? this.getEntityBoundingBox() : null; return this.isEntityAlive() ? this.getEntityBoundingBox() : null;
} }
public EnumFacing getAttachmentFacing() public EnumFacing getAttachmentFacing() {
{ return this.dataManager.get(ATTACHED_FACE);
return (EnumFacing)this.dataManager.get(ATTACHED_FACE);
} }
@Nullable @Nullable
public BlockPos getAttachmentPos() public BlockPos getAttachmentPos() {
{
return (BlockPos) ((Optional) this.dataManager.get(ATTACHED_BLOCK_POS)).orNull(); return (BlockPos) ((Optional) this.dataManager.get(ATTACHED_BLOCK_POS)).orNull();
} }
public void setAttachmentPos(@Nullable BlockPos pos) public void setAttachmentPos(@Nullable BlockPos pos) {
{
this.dataManager.set(ATTACHED_BLOCK_POS, Optional.fromNullable(pos)); this.dataManager.set(ATTACHED_BLOCK_POS, Optional.fromNullable(pos));
} }
public int getPeekTick() public int getPeekTick() {
{ return this.dataManager.get(PEEK_TICK).byteValue();
return ((Byte)this.dataManager.get(PEEK_TICK)).byteValue();
} }
public void updateArmorModifier(int p_184691_1_) public void updateArmorModifier(int p_184691_1_) {
{ if (!this.world.isRemote) {
if (!this.world.isRemote)
{
this.getEntityAttribute(SharedMonsterAttributes.ARMOR).removeModifier(COVERED_ARMOR_BONUS_MODIFIER); this.getEntityAttribute(SharedMonsterAttributes.ARMOR).removeModifier(COVERED_ARMOR_BONUS_MODIFIER);
if (p_184691_1_ == 0) if (p_184691_1_ == 0) {
{
this.getEntityAttribute(SharedMonsterAttributes.ARMOR).applyModifier(COVERED_ARMOR_BONUS_MODIFIER); this.getEntityAttribute(SharedMonsterAttributes.ARMOR).applyModifier(COVERED_ARMOR_BONUS_MODIFIER);
this.playSound(SoundEvents.ENTITY_SHULKER_CLOSE, 1.0F, 1.0F); this.playSound(SoundEvents.ENTITY_SHULKER_CLOSE, 1.0F, 1.0F);
} } else {
else
{
this.playSound(ModSoundEvents.ENTITY_SCHALKER_OPEN, 1.0F, 1.0F); this.playSound(ModSoundEvents.ENTITY_SCHALKER_OPEN, 1.0F, 1.0F);
} }
} }
@ -584,120 +529,109 @@ public class EntitySchalker extends EntityGolem implements IMob
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public float getClientPeekAmount(float p_184688_1_) public float getClientPeekAmount(float p_184688_1_) {
{
return this.prevPeekAmount + (this.peekAmount - this.prevPeekAmount) * p_184688_1_; return this.prevPeekAmount + (this.peekAmount - this.prevPeekAmount) * p_184688_1_;
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public int getClientTeleportInterp() public int getClientTeleportInterp() {
{
return this.clientSideTeleportInterpolation; return this.clientSideTeleportInterpolation;
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public BlockPos getOldAttachPos() public BlockPos getOldAttachPos() {
{
return this.currentAttachmentPosition; return this.currentAttachmentPosition;
} }
public float getEyeHeight() @Override
{ public float getEyeHeight() {
return 0.5F; return 0.5F;
} }
public int getVerticalFaceSpeed() @Override
{ public int getVerticalFaceSpeed() {
return 180; return 180;
} }
public int getHorizontalFaceSpeed() @Override
{ public int getHorizontalFaceSpeed() {
return 180; return 180;
} }
public void applyEntityCollision(Entity entityIn) @Override
{ public void applyEntityCollision(Entity entityIn) {
} }
public float getCollisionBorderSize() @Override
{ public float getCollisionBorderSize() {
return 0.0F; return 0.0F;
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public boolean isAttachedToBlock() public boolean isAttachedToBlock() {
{
return this.currentAttachmentPosition != null && this.getAttachmentPos() != null; return this.currentAttachmentPosition != null && this.getAttachmentPos() != null;
} }
@Override
@Nullable @Nullable
protected ResourceLocation getLootTable() protected ResourceLocation getLootTable() {
{
return LootTableList.ENTITIES_SHULKER; return LootTableList.ENTITIES_SHULKER;
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public EnumDyeColor getColor() public EnumDyeColor getColor() {
{ return EnumDyeColor.byMetadata(this.dataManager.get(COLOR).byteValue());
return EnumDyeColor.byMetadata(((Byte)this.dataManager.get(COLOR)).byteValue());
} }
class AIAttack extends EntityAIBase class AIAttack extends EntityAIBase {
{
private int attackTime; private int attackTime;
public AIAttack() public AIAttack() {
{
this.setMutexBits(3); this.setMutexBits(3);
} }
public boolean shouldExecute() @Override
{ public boolean shouldExecute() {
EntityLivingBase entitylivingbase = EntitySchalker.this.getAttackTarget(); EntityLivingBase entitylivingbase = EntitySchalker.this.getAttackTarget();
if (entitylivingbase != null && entitylivingbase.isEntityAlive()) if (entitylivingbase != null && entitylivingbase.isEntityAlive()) {
{
return EntitySchalker.this.world.getDifficulty() != EnumDifficulty.PEACEFUL; return EntitySchalker.this.world.getDifficulty() != EnumDifficulty.PEACEFUL;
} } else {
else
{
return false; return false;
} }
} }
public void startExecuting() @Override
{ public void startExecuting() {
this.attackTime = 20; this.attackTime = 20;
EntitySchalker.this.updateArmorModifier(100); EntitySchalker.this.updateArmorModifier(100);
} }
public void resetTask() @Override
{ public void resetTask() {
EntitySchalker.this.updateArmorModifier(0); EntitySchalker.this.updateArmorModifier(0);
} }
public void updateTask() @Override
{ public void updateTask() {
if (EntitySchalker.this.world.getDifficulty() != EnumDifficulty.PEACEFUL) if (EntitySchalker.this.world.getDifficulty() != EnumDifficulty.PEACEFUL) {
{
--this.attackTime; --this.attackTime;
EntityLivingBase entitylivingbase = EntitySchalker.this.getAttackTarget(); EntityLivingBase entitylivingbase = EntitySchalker.this.getAttackTarget();
EntitySchalker.this.getLookHelper().setLookPositionWithEntity(entitylivingbase, 180.0F, 180.0F); EntitySchalker.this.getLookHelper().setLookPositionWithEntity(entitylivingbase, 180.0F, 180.0F);
double d0 = EntitySchalker.this.getDistanceSq(entitylivingbase); double d0 = EntitySchalker.this.getDistanceSq(entitylivingbase);
if (d0 < 400.0D) if (d0 < 400.0D) {
{ if (this.attackTime <= 0) {
if (this.attackTime <= 0)
{
this.attackTime = 20 + EntitySchalker.this.rand.nextInt(10) * 20 / 2; this.attackTime = 20 + EntitySchalker.this.rand.nextInt(10) * 20 / 2;
EntitySchalkerBullet entityschalkerbullet = new EntitySchalkerBullet(EntitySchalker.this.world, EntitySchalker.this, entitylivingbase, EntitySchalker.this.getAttachmentFacing().getAxis()); EntitySchalkerBullet entityschalkerbullet = new EntitySchalkerBullet(EntitySchalker.this.world,
EntitySchalker.this, entitylivingbase,
EntitySchalker.this.getAttachmentFacing().getAxis());
EntitySchalker.this.world.spawnEntity(entityschalkerbullet); EntitySchalker.this.world.spawnEntity(entityschalkerbullet);
EntitySchalker.this.playSound(ModSoundEvents.ENTITY_SCHALKER_SHOOT, 2.0F, (EntitySchalker.this.rand.nextFloat() - EntitySchalker.this.rand.nextFloat()) * 0.2F + 1.0F); EntitySchalker.this.playSound(ModSoundEvents.ENTITY_SCHALKER_SHOOT, 2.0F,
(EntitySchalker.this.rand.nextFloat() - EntitySchalker.this.rand.nextFloat()) * 0.2F
+ 1.0F);
} }
} } else {
else
{
EntitySchalker.this.setAttackTarget((EntityLivingBase) null); EntitySchalker.this.setAttackTarget((EntityLivingBase) null);
} }
@ -706,113 +640,101 @@ public class EntitySchalker extends EntityGolem implements IMob
} }
} }
class AIAttackNearest extends EntityAINearestAttackableTarget<EntityPlayer> class AIAttackNearest extends EntityAINearestAttackableTarget<EntityPlayer> {
{ public AIAttackNearest(EntitySchalker schalker) {
public AIAttackNearest(EntitySchalker schalker)
{
super(schalker, EntityPlayer.class, true); super(schalker, EntityPlayer.class, true);
} }
public boolean shouldExecute() @Override
{ public boolean shouldExecute() {
return EntitySchalker.this.world.getDifficulty() == EnumDifficulty.PEACEFUL ? false : super.shouldExecute(); return EntitySchalker.this.world.getDifficulty() == EnumDifficulty.PEACEFUL ? false : super.shouldExecute();
} }
protected AxisAlignedBB getTargetableArea(double targetDistance) @Override
{ protected AxisAlignedBB getTargetableArea(double targetDistance) {
EnumFacing enumfacing = ((EntitySchalker) this.taskOwner).getAttachmentFacing(); EnumFacing enumfacing = ((EntitySchalker) this.taskOwner).getAttachmentFacing();
if (enumfacing.getAxis() == EnumFacing.Axis.X) if (enumfacing.getAxis() == EnumFacing.Axis.X) {
{
return this.taskOwner.getEntityBoundingBox().grow(4.0D, targetDistance, targetDistance); return this.taskOwner.getEntityBoundingBox().grow(4.0D, targetDistance, targetDistance);
} } else {
else return enumfacing.getAxis() == EnumFacing.Axis.Z
{ ? this.taskOwner.getEntityBoundingBox().grow(targetDistance, targetDistance, 4.0D)
return enumfacing.getAxis() == EnumFacing.Axis.Z ? this.taskOwner.getEntityBoundingBox().grow(targetDistance, targetDistance, 4.0D) : this.taskOwner.getEntityBoundingBox().grow(targetDistance, 4.0D, targetDistance); : this.taskOwner.getEntityBoundingBox().grow(targetDistance, 4.0D, targetDistance);
} }
} }
} }
static class AIDefenseAttack extends EntityAINearestAttackableTarget<EntityLivingBase> static class AIDefenseAttack extends EntityAINearestAttackableTarget<EntityLivingBase> {
{ public AIDefenseAttack(EntitySchalker schalker) {
public AIDefenseAttack(EntitySchalker schalker) super(schalker, EntityLivingBase.class, 10, true, false, new Predicate<EntityLivingBase>() {
{ @Override
super(schalker, EntityLivingBase.class, 10, true, false, new Predicate<EntityLivingBase>() public boolean apply(@Nullable EntityLivingBase p_apply_1_) {
{
public boolean apply(@Nullable EntityLivingBase p_apply_1_)
{
return p_apply_1_ instanceof IMob; return p_apply_1_ instanceof IMob;
} }
}); });
} }
public boolean shouldExecute() @Override
{ public boolean shouldExecute() {
return this.taskOwner.getTeam() == null ? false : super.shouldExecute(); return this.taskOwner.getTeam() == null ? false : super.shouldExecute();
} }
protected AxisAlignedBB getTargetableArea(double targetDistance) @Override
{ protected AxisAlignedBB getTargetableArea(double targetDistance) {
EnumFacing enumfacing = ((EntitySchalker) this.taskOwner).getAttachmentFacing(); EnumFacing enumfacing = ((EntitySchalker) this.taskOwner).getAttachmentFacing();
if (enumfacing.getAxis() == EnumFacing.Axis.X) if (enumfacing.getAxis() == EnumFacing.Axis.X) {
{
return this.taskOwner.getEntityBoundingBox().grow(4.0D, targetDistance, targetDistance); return this.taskOwner.getEntityBoundingBox().grow(4.0D, targetDistance, targetDistance);
} } else {
else return enumfacing.getAxis() == EnumFacing.Axis.Z
{ ? this.taskOwner.getEntityBoundingBox().grow(targetDistance, targetDistance, 4.0D)
return enumfacing.getAxis() == EnumFacing.Axis.Z ? this.taskOwner.getEntityBoundingBox().grow(targetDistance, targetDistance, 4.0D) : this.taskOwner.getEntityBoundingBox().grow(targetDistance, 4.0D, targetDistance); : this.taskOwner.getEntityBoundingBox().grow(targetDistance, 4.0D, targetDistance);
} }
} }
} }
class AIPeek extends EntityAIBase class AIPeek extends EntityAIBase {
{
private int peekTime; private int peekTime;
private AIPeek() private AIPeek() {
{
} }
public boolean shouldExecute() @Override
{ public boolean shouldExecute() {
return EntitySchalker.this.getAttackTarget() == null && EntitySchalker.this.rand.nextInt(40) == 0; return EntitySchalker.this.getAttackTarget() == null && EntitySchalker.this.rand.nextInt(40) == 0;
} }
public boolean shouldContinueExecuting() @Override
{ public boolean shouldContinueExecuting() {
return EntitySchalker.this.getAttackTarget() == null && this.peekTime > 0; return EntitySchalker.this.getAttackTarget() == null && this.peekTime > 0;
} }
public void startExecuting() @Override
{ public void startExecuting() {
this.peekTime = 20 * (1 + EntitySchalker.this.rand.nextInt(3)); this.peekTime = 20 * (1 + EntitySchalker.this.rand.nextInt(3));
EntitySchalker.this.updateArmorModifier(30); EntitySchalker.this.updateArmorModifier(30);
} }
public void resetTask() @Override
{ public void resetTask() {
if (EntitySchalker.this.getAttackTarget() == null) if (EntitySchalker.this.getAttackTarget() == null) {
{
EntitySchalker.this.updateArmorModifier(0); EntitySchalker.this.updateArmorModifier(0);
} }
} }
public void updateTask() @Override
{ public void updateTask() {
--this.peekTime; --this.peekTime;
} }
} }
class BodyHelper extends EntityBodyHelper class BodyHelper extends EntityBodyHelper {
{ public BodyHelper(EntityLivingBase theEntity) {
public BodyHelper(EntityLivingBase theEntity)
{
super(theEntity); super(theEntity);
} }
public void updateRenderAngles() @Override
{ public void updateRenderAngles() {
} }
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -29,8 +30,7 @@ import net.minecraft.world.WorldServer;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
public class EntitySchalkerBullet extends Entity public class EntitySchalkerBullet extends Entity {
{
private EntityLivingBase owner; private EntityLivingBase owner;
private Entity target; private Entity target;
@Nullable @Nullable
@ -46,21 +46,20 @@ public class EntitySchalkerBullet extends Entity
private UUID targetUniqueId; private UUID targetUniqueId;
private BlockPos targetBlockPos; private BlockPos targetBlockPos;
public EntitySchalkerBullet(World worldIn) public EntitySchalkerBullet(World worldIn) {
{
super(worldIn); super(worldIn);
this.setSize(0.3125F, 0.3125F); this.setSize(0.3125F, 0.3125F);
this.noClip = true; this.noClip = true;
} }
public SoundCategory getSoundCategory() @Override
{ public SoundCategory getSoundCategory() {
return SoundCategory.HOSTILE; return SoundCategory.HOSTILE;
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public EntitySchalkerBullet(World worldIn, double x, double y, double z, double motionXIn, double motionYIn, double motionZIn) public EntitySchalkerBullet(World worldIn, double x, double y, double z, double motionXIn, double motionYIn,
{ double motionZIn) {
this(worldIn); this(worldIn);
this.setLocationAndAngles(x, y, z, this.rotationYaw, this.rotationPitch); this.setLocationAndAngles(x, y, z, this.rotationYaw, this.rotationPitch);
this.motionX = motionXIn; this.motionX = motionXIn;
@ -68,14 +67,13 @@ public class EntitySchalkerBullet extends Entity
this.motionZ = motionZIn; this.motionZ = motionZIn;
} }
public EntitySchalkerBullet(World worldIn, EntityLivingBase ownerIn, Entity targetIn, EnumFacing.Axis p_i46772_4_) public EntitySchalkerBullet(World worldIn, EntityLivingBase ownerIn, Entity targetIn, EnumFacing.Axis p_i46772_4_) {
{
this(worldIn); this(worldIn);
this.owner = ownerIn; this.owner = ownerIn;
BlockPos blockpos = new BlockPos(ownerIn); BlockPos blockpos = new BlockPos(ownerIn);
double d0 = (double)blockpos.getX() + 0.5D; double d0 = blockpos.getX() + 0.5D;
double d1 = (double)blockpos.getY() + 0.5D; double d1 = blockpos.getY() + 0.5D;
double d2 = (double)blockpos.getZ() + 0.5D; double d2 = blockpos.getZ() + 0.5D;
this.setLocationAndAngles(d0, d1, d2, this.rotationYaw, this.rotationPitch); this.setLocationAndAngles(d0, d1, d2, this.rotationYaw, this.rotationPitch);
this.target = targetIn; this.target = targetIn;
this.direction = EnumFacing.UP; this.direction = EnumFacing.UP;
@ -85,10 +83,9 @@ public class EntitySchalkerBullet extends Entity
/** /**
* (abstract) Protected helper method to write subclass entity data to NBT. * (abstract) Protected helper method to write subclass entity data to NBT.
*/ */
protected void writeEntityToNBT(NBTTagCompound compound) @Override
{ protected void writeEntityToNBT(NBTTagCompound compound) {
if (this.owner != null) if (this.owner != null) {
{
BlockPos blockpos = new BlockPos(this.owner); BlockPos blockpos = new BlockPos(this.owner);
NBTTagCompound nbttagcompound = NBTUtil.createUUIDTag(this.owner.getUniqueID()); NBTTagCompound nbttagcompound = NBTUtil.createUUIDTag(this.owner.getUniqueID());
nbttagcompound.setInteger("X", blockpos.getX()); nbttagcompound.setInteger("X", blockpos.getX());
@ -97,8 +94,7 @@ public class EntitySchalkerBullet extends Entity
compound.setTag("Owner", nbttagcompound); compound.setTag("Owner", nbttagcompound);
} }
if (this.target != null) if (this.target != null) {
{
BlockPos blockpos1 = new BlockPos(this.target); BlockPos blockpos1 = new BlockPos(this.target);
NBTTagCompound nbttagcompound1 = NBTUtil.createUUIDTag(this.target.getUniqueID()); NBTTagCompound nbttagcompound1 = NBTUtil.createUUIDTag(this.target.getUniqueID());
nbttagcompound1.setInteger("X", blockpos1.getX()); nbttagcompound1.setInteger("X", blockpos1.getX());
@ -107,8 +103,7 @@ public class EntitySchalkerBullet extends Entity
compound.setTag("Target", nbttagcompound1); compound.setTag("Target", nbttagcompound1);
} }
if (this.direction != null) if (this.direction != null) {
{
compound.setInteger("Dir", this.direction.getIndex()); compound.setInteger("Dir", this.direction.getIndex());
} }
@ -121,136 +116,110 @@ public class EntitySchalkerBullet extends Entity
/** /**
* (abstract) Protected helper method to read subclass entity data from NBT. * (abstract) Protected helper method to read subclass entity data from NBT.
*/ */
protected void readEntityFromNBT(NBTTagCompound compound) @Override
{ protected void readEntityFromNBT(NBTTagCompound compound) {
this.steps = compound.getInteger("Steps"); this.steps = compound.getInteger("Steps");
this.targetDeltaX = compound.getDouble("TXD"); this.targetDeltaX = compound.getDouble("TXD");
this.targetDeltaY = compound.getDouble("TYD"); this.targetDeltaY = compound.getDouble("TYD");
this.targetDeltaZ = compound.getDouble("TZD"); this.targetDeltaZ = compound.getDouble("TZD");
if (compound.hasKey("Dir", 99)) if (compound.hasKey("Dir", 99)) {
{
this.direction = EnumFacing.getFront(compound.getInteger("Dir")); this.direction = EnumFacing.getFront(compound.getInteger("Dir"));
} }
if (compound.hasKey("Owner", 10)) if (compound.hasKey("Owner", 10)) {
{
NBTTagCompound nbttagcompound = compound.getCompoundTag("Owner"); NBTTagCompound nbttagcompound = compound.getCompoundTag("Owner");
this.ownerUniqueId = NBTUtil.getUUIDFromTag(nbttagcompound); this.ownerUniqueId = NBTUtil.getUUIDFromTag(nbttagcompound);
this.ownerBlockPos = new BlockPos(nbttagcompound.getInteger("X"), nbttagcompound.getInteger("Y"), nbttagcompound.getInteger("Z")); this.ownerBlockPos = new BlockPos(nbttagcompound.getInteger("X"), nbttagcompound.getInteger("Y"),
nbttagcompound.getInteger("Z"));
} }
if (compound.hasKey("Target", 10)) if (compound.hasKey("Target", 10)) {
{
NBTTagCompound nbttagcompound1 = compound.getCompoundTag("Target"); NBTTagCompound nbttagcompound1 = compound.getCompoundTag("Target");
this.targetUniqueId = NBTUtil.getUUIDFromTag(nbttagcompound1); this.targetUniqueId = NBTUtil.getUUIDFromTag(nbttagcompound1);
this.targetBlockPos = new BlockPos(nbttagcompound1.getInteger("X"), nbttagcompound1.getInteger("Y"), nbttagcompound1.getInteger("Z")); this.targetBlockPos = new BlockPos(nbttagcompound1.getInteger("X"), nbttagcompound1.getInteger("Y"),
nbttagcompound1.getInteger("Z"));
} }
} }
protected void entityInit() @Override
{ protected void entityInit() {
} }
private void setDirection(@Nullable EnumFacing directionIn) private void setDirection(@Nullable EnumFacing directionIn) {
{
this.direction = directionIn; this.direction = directionIn;
} }
private void selectNextMoveDirection(@Nullable EnumFacing.Axis p_184569_1_) private void selectNextMoveDirection(@Nullable EnumFacing.Axis p_184569_1_) {
{
double d0 = 0.5D; double d0 = 0.5D;
BlockPos blockpos; BlockPos blockpos;
if (this.target == null) if (this.target == null) {
{
blockpos = (new BlockPos(this)).down(); blockpos = (new BlockPos(this)).down();
} } else {
else d0 = this.target.height * 0.5D;
{
d0 = (double)this.target.height * 0.5D;
blockpos = new BlockPos(this.target.posX, this.target.posY + d0, this.target.posZ); blockpos = new BlockPos(this.target.posX, this.target.posY + d0, this.target.posZ);
} }
double d1 = (double)blockpos.getX() + 0.5D; double d1 = blockpos.getX() + 0.5D;
double d2 = (double)blockpos.getY() + d0; double d2 = blockpos.getY() + d0;
double d3 = (double)blockpos.getZ() + 0.5D; double d3 = blockpos.getZ() + 0.5D;
EnumFacing enumfacing = null; EnumFacing enumfacing = null;
if (blockpos.distanceSqToCenter(this.posX, this.posY, this.posZ) >= 4.0D) if (blockpos.distanceSqToCenter(this.posX, this.posY, this.posZ) >= 4.0D) {
{
BlockPos blockpos1 = new BlockPos(this); BlockPos blockpos1 = new BlockPos(this);
List<EnumFacing> list = Lists.<EnumFacing>newArrayList(); List<EnumFacing> list = Lists.<EnumFacing>newArrayList();
if (p_184569_1_ != EnumFacing.Axis.X) if (p_184569_1_ != EnumFacing.Axis.X) {
{ if (blockpos1.getX() < blockpos.getX() && this.world.isAirBlock(blockpos1.east())) {
if (blockpos1.getX() < blockpos.getX() && this.world.isAirBlock(blockpos1.east()))
{
list.add(EnumFacing.EAST); list.add(EnumFacing.EAST);
} } else if (blockpos1.getX() > blockpos.getX() && this.world.isAirBlock(blockpos1.west())) {
else if (blockpos1.getX() > blockpos.getX() && this.world.isAirBlock(blockpos1.west()))
{
list.add(EnumFacing.WEST); list.add(EnumFacing.WEST);
} }
} }
if (p_184569_1_ != EnumFacing.Axis.Y) if (p_184569_1_ != EnumFacing.Axis.Y) {
{ if (blockpos1.getY() < blockpos.getY() && this.world.isAirBlock(blockpos1.up())) {
if (blockpos1.getY() < blockpos.getY() && this.world.isAirBlock(blockpos1.up()))
{
list.add(EnumFacing.UP); list.add(EnumFacing.UP);
} } else if (blockpos1.getY() > blockpos.getY() && this.world.isAirBlock(blockpos1.down())) {
else if (blockpos1.getY() > blockpos.getY() && this.world.isAirBlock(blockpos1.down()))
{
list.add(EnumFacing.DOWN); list.add(EnumFacing.DOWN);
} }
} }
if (p_184569_1_ != EnumFacing.Axis.Z) if (p_184569_1_ != EnumFacing.Axis.Z) {
{ if (blockpos1.getZ() < blockpos.getZ() && this.world.isAirBlock(blockpos1.south())) {
if (blockpos1.getZ() < blockpos.getZ() && this.world.isAirBlock(blockpos1.south()))
{
list.add(EnumFacing.SOUTH); list.add(EnumFacing.SOUTH);
} } else if (blockpos1.getZ() > blockpos.getZ() && this.world.isAirBlock(blockpos1.north())) {
else if (blockpos1.getZ() > blockpos.getZ() && this.world.isAirBlock(blockpos1.north()))
{
list.add(EnumFacing.NORTH); list.add(EnumFacing.NORTH);
} }
} }
enumfacing = EnumFacing.random(this.rand); enumfacing = EnumFacing.random(this.rand);
if (list.isEmpty()) if (list.isEmpty()) {
{ for (int i = 5; !this.world.isAirBlock(blockpos1.offset(enumfacing)) && i > 0; --i) {
for (int i = 5; !this.world.isAirBlock(blockpos1.offset(enumfacing)) && i > 0; --i)
{
enumfacing = EnumFacing.random(this.rand); enumfacing = EnumFacing.random(this.rand);
} }
} } else {
else
{
enumfacing = list.get(this.rand.nextInt(list.size())); enumfacing = list.get(this.rand.nextInt(list.size()));
} }
d1 = this.posX + (double)enumfacing.getFrontOffsetX(); d1 = this.posX + enumfacing.getFrontOffsetX();
d2 = this.posY + (double)enumfacing.getFrontOffsetY(); d2 = this.posY + enumfacing.getFrontOffsetY();
d3 = this.posZ + (double)enumfacing.getFrontOffsetZ(); d3 = this.posZ + enumfacing.getFrontOffsetZ();
} }
this.setDirection(enumfacing); this.setDirection(enumfacing);
double d6 = d1 - this.posX; double d6 = d1 - this.posX;
double d7 = d2 - this.posY; double d7 = d2 - this.posY;
double d4 = d3 - this.posZ; double d4 = d3 - this.posZ;
double d5 = (double)MathHelper.sqrt(d6 * d6 + d7 * d7 + d4 * d4); double d5 = MathHelper.sqrt(d6 * d6 + d7 * d7 + d4 * d4);
if (d5 == 0.0D) if (d5 == 0.0D) {
{
this.targetDeltaX = 0.0D; this.targetDeltaX = 0.0D;
this.targetDeltaY = 0.0D; this.targetDeltaY = 0.0D;
this.targetDeltaZ = 0.0D; this.targetDeltaZ = 0.0D;
} } else {
else
{
this.targetDeltaX = d6 / d5 * 0.15D; this.targetDeltaX = d6 / d5 * 0.15D;
this.targetDeltaY = d7 / d5 * 0.15D; this.targetDeltaY = d7 / d5 * 0.15D;
this.targetDeltaZ = d4 / d5 * 0.15D; this.targetDeltaZ = d4 / d5 * 0.15D;
@ -263,24 +232,18 @@ public class EntitySchalkerBullet extends Entity
/** /**
* Called to update the entity's position/logic. * Called to update the entity's position/logic.
*/ */
public void onUpdate() @Override
{ public void onUpdate() {
if (!this.world.isRemote && this.world.getDifficulty() == EnumDifficulty.PEACEFUL) if (!this.world.isRemote && this.world.getDifficulty() == EnumDifficulty.PEACEFUL) {
{
this.setDead(); this.setDead();
} } else {
else
{
super.onUpdate(); super.onUpdate();
if (!this.world.isRemote) if (!this.world.isRemote) {
{ if (this.target == null && this.targetUniqueId != null) {
if (this.target == null && this.targetUniqueId != null) for (EntityLivingBase entitylivingbase : this.world.getEntitiesWithinAABB(EntityLivingBase.class,
{ new AxisAlignedBB(this.targetBlockPos.add(-2, -2, -2), this.targetBlockPos.add(2, 2, 2)))) {
for (EntityLivingBase entitylivingbase : this.world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(this.targetBlockPos.add(-2, -2, -2), this.targetBlockPos.add(2, 2, 2)))) if (entitylivingbase.getUniqueID().equals(this.targetUniqueId)) {
{
if (entitylivingbase.getUniqueID().equals(this.targetUniqueId))
{
this.target = entitylivingbase; this.target = entitylivingbase;
break; break;
} }
@ -289,12 +252,10 @@ public class EntitySchalkerBullet extends Entity
this.targetUniqueId = null; this.targetUniqueId = null;
} }
if (this.owner == null && this.ownerUniqueId != null) if (this.owner == null && this.ownerUniqueId != null) {
{ for (EntityLivingBase entitylivingbase1 : this.world.getEntitiesWithinAABB(EntityLivingBase.class,
for (EntityLivingBase entitylivingbase1 : this.world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(this.ownerBlockPos.add(-2, -2, -2), this.ownerBlockPos.add(2, 2, 2)))) new AxisAlignedBB(this.ownerBlockPos.add(-2, -2, -2), this.ownerBlockPos.add(2, 2, 2)))) {
{ if (entitylivingbase1.getUniqueID().equals(this.ownerUniqueId)) {
if (entitylivingbase1.getUniqueID().equals(this.ownerUniqueId))
{
this.owner = entitylivingbase1; this.owner = entitylivingbase1;
break; break;
} }
@ -303,15 +264,12 @@ public class EntitySchalkerBullet extends Entity
this.ownerUniqueId = null; this.ownerUniqueId = null;
} }
if (this.target == null || !this.target.isEntityAlive() || this.target instanceof EntityPlayer && ((EntityPlayer)this.target).isSpectator()) if (this.target == null || !this.target.isEntityAlive()
{ || this.target instanceof EntityPlayer && ((EntityPlayer) this.target).isSpectator()) {
if (!this.hasNoGravity()) if (!this.hasNoGravity()) {
{
this.motionY -= 0.04D; this.motionY -= 0.04D;
} }
} } else {
else
{
this.targetDeltaX = MathHelper.clamp(this.targetDeltaX * 1.025D, -1.0D, 1.0D); this.targetDeltaX = MathHelper.clamp(this.targetDeltaX * 1.025D, -1.0D, 1.0D);
this.targetDeltaY = MathHelper.clamp(this.targetDeltaY * 1.025D, -1.0D, 1.0D); this.targetDeltaY = MathHelper.clamp(this.targetDeltaY * 1.025D, -1.0D, 1.0D);
this.targetDeltaZ = MathHelper.clamp(this.targetDeltaZ * 1.025D, -1.0D, 1.0D); this.targetDeltaZ = MathHelper.clamp(this.targetDeltaZ * 1.025D, -1.0D, 1.0D);
@ -322,8 +280,8 @@ public class EntitySchalkerBullet extends Entity
RayTraceResult raytraceresult = ProjectileHelper.forwardsRaycast(this, true, false, this.owner); RayTraceResult raytraceresult = ProjectileHelper.forwardsRaycast(this, true, false, this.owner);
if (raytraceresult != null && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, raytraceresult)) if (raytraceresult != null
{ && !net.minecraftforge.event.ForgeEventFactory.onProjectileImpact(this, raytraceresult)) {
this.bulletHit(raytraceresult); this.bulletHit(raytraceresult);
} }
} }
@ -331,37 +289,30 @@ public class EntitySchalkerBullet extends Entity
this.setPosition(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); this.setPosition(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
ProjectileHelper.rotateTowardsMovement(this, 0.5F); ProjectileHelper.rotateTowardsMovement(this, 0.5F);
if (this.world.isRemote) if (this.world.isRemote) {
{ this.world.spawnParticle(EnumParticleTypes.END_ROD, this.posX - this.motionX,
this.world.spawnParticle(EnumParticleTypes.END_ROD, this.posX - this.motionX, this.posY - this.motionY + 0.15D, this.posZ - this.motionZ, 0.0D, 0.0D, 0.0D); this.posY - this.motionY + 0.15D, this.posZ - this.motionZ, 0.0D, 0.0D, 0.0D);
} } else if (this.target != null && !this.target.isDead) {
else if (this.target != null && !this.target.isDead) if (this.steps > 0) {
{
if (this.steps > 0)
{
--this.steps; --this.steps;
if (this.steps == 0) if (this.steps == 0) {
{
this.selectNextMoveDirection(this.direction == null ? null : this.direction.getAxis()); this.selectNextMoveDirection(this.direction == null ? null : this.direction.getAxis());
} }
} }
if (this.direction != null) if (this.direction != null) {
{
BlockPos blockpos = new BlockPos(this); BlockPos blockpos = new BlockPos(this);
EnumFacing.Axis enumfacing$axis = this.direction.getAxis(); EnumFacing.Axis enumfacing$axis = this.direction.getAxis();
if (this.world.isBlockNormalCube(blockpos.offset(this.direction), false)) if (this.world.isBlockNormalCube(blockpos.offset(this.direction), false)) {
{
this.selectNextMoveDirection(enumfacing$axis); this.selectNextMoveDirection(enumfacing$axis);
} } else {
else
{
BlockPos blockpos1 = new BlockPos(this.target); BlockPos blockpos1 = new BlockPos(this.target);
if (enumfacing$axis == EnumFacing.Axis.X && blockpos.getX() == blockpos1.getX() || enumfacing$axis == EnumFacing.Axis.Z && blockpos.getZ() == blockpos1.getZ() || enumfacing$axis == EnumFacing.Axis.Y && blockpos.getY() == blockpos1.getY()) if (enumfacing$axis == EnumFacing.Axis.X && blockpos.getX() == blockpos1.getX()
{ || enumfacing$axis == EnumFacing.Axis.Z && blockpos.getZ() == blockpos1.getZ()
|| enumfacing$axis == EnumFacing.Axis.Y && blockpos.getY() == blockpos1.getY()) {
this.selectNextMoveDirection(enumfacing$axis); this.selectNextMoveDirection(enumfacing$axis);
} }
} }
@ -371,53 +322,50 @@ public class EntitySchalkerBullet extends Entity
} }
/** /**
* Returns true if the entity is on fire. Used by render to add the fire effect on rendering. * Returns true if the entity is on fire. Used by render to add the fire effect
* on rendering.
*/ */
public boolean isBurning() @Override
{ public boolean isBurning() {
return false; return false;
} }
/** /**
* Checks if the entity is in range to render. * Checks if the entity is in range to render.
*/ */
@Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public boolean isInRangeToRenderDist(double distance) public boolean isInRangeToRenderDist(double distance) {
{
return distance < 16384.0D; return distance < 16384.0D;
} }
/** /**
* Gets how bright this entity is. * Gets how bright this entity is.
*/ */
public float getBrightness() @Override
{ public float getBrightness() {
return 1.0F; return 1.0F;
} }
@Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public int getBrightnessForRender() public int getBrightnessForRender() {
{
return 15728880; return 15728880;
} }
protected void bulletHit(RayTraceResult result) protected void bulletHit(RayTraceResult result) {
{ if (result.entityHit == null) {
if (result.entityHit == null) ((WorldServer) this.world).spawnParticle(EnumParticleTypes.EXPLOSION_LARGE, this.posX, this.posY, this.posZ,
{ 2, 0.2D, 0.2D, 0.2D, 0.0D);
((WorldServer)this.world).spawnParticle(EnumParticleTypes.EXPLOSION_LARGE, this.posX, this.posY, this.posZ, 2, 0.2D, 0.2D, 0.2D, 0.0D);
this.playSound(SoundEvents.ENTITY_SHULKER_BULLET_HIT, 1.0F, 1.0F); this.playSound(SoundEvents.ENTITY_SHULKER_BULLET_HIT, 1.0F, 1.0F);
} } else {
else boolean flag = result.entityHit
{ .attackEntityFrom(DamageSource.causeIndirectDamage(this, this.owner).setProjectile(), 4.0F);
boolean flag = result.entityHit.attackEntityFrom(DamageSource.causeIndirectDamage(this, this.owner).setProjectile(), 4.0F);
if (flag) if (flag) {
{
this.applyEnchantments(this.owner, result.entityHit); this.applyEnchantments(this.owner, result.entityHit);
if (result.entityHit instanceof EntityLivingBase) if (result.entityHit instanceof EntityLivingBase) {
{
((EntityLivingBase) result.entityHit).addPotionEffect(new PotionEffect(MobEffects.LEVITATION, 200)); ((EntityLivingBase) result.entityHit).addPotionEffect(new PotionEffect(MobEffects.LEVITATION, 200));
} }
} }
@ -427,22 +375,23 @@ public class EntitySchalkerBullet extends Entity
} }
/** /**
* Returns true if other Entities should be prevented from moving through this Entity. * Returns true if other Entities should be prevented from moving through this
* Entity.
*/ */
public boolean canBeCollidedWith() @Override
{ public boolean canBeCollidedWith() {
return true; return true;
} }
/** /**
* Called when the entity is attacked. * Called when the entity is attacked.
*/ */
public boolean attackEntityFrom(DamageSource source, float amount) @Override
{ public boolean attackEntityFrom(DamageSource source, float amount) {
if (!this.world.isRemote) if (!this.world.isRemote) {
{
this.playSound(SoundEvents.ENTITY_SHULKER_BULLET_HURT, 1.0F, 1.0F); this.playSound(SoundEvents.ENTITY_SHULKER_BULLET_HURT, 1.0F, 1.0F);
((WorldServer)this.world).spawnParticle(EnumParticleTypes.CRIT, this.posX, this.posY, this.posZ, 15, 0.2D, 0.2D, 0.2D, 0.0D); ((WorldServer) this.world).spawnParticle(EnumParticleTypes.CRIT, this.posX, this.posY, this.posZ, 15, 0.2D,
0.2D, 0.2D, 0.0D);
this.setDead(); this.setDead();
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityCreeper;
@ -6,47 +7,40 @@ import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntitySmavaCreeper extends EntityCreeper public class EntitySmavaCreeper extends EntityCreeper {
{
private int lastActiveTime; private int lastActiveTime;
private int timeSinceIgnited; private int timeSinceIgnited;
private int fuseTime = 20; private int fuseTime = 20;
private int explosionRadius = 6; private int explosionRadius = 6;
public EntitySmavaCreeper(World worldIn) public EntitySmavaCreeper(World worldIn) {
{
super(worldIn); super(worldIn);
setSize(0.6F, 1.7F); setSize(0.6F, 1.7F);
getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.5D); getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.5D);
} }
public void onUpdate() @Override
{ public void onUpdate() {
if (this.isEntityAlive()) if (this.isEntityAlive()) {
{
this.lastActiveTime = this.timeSinceIgnited; this.lastActiveTime = this.timeSinceIgnited;
if (this.hasIgnited()) if (this.hasIgnited()) {
{
this.setCreeperState(1); this.setCreeperState(1);
} }
int i = this.getCreeperState(); int i = this.getCreeperState();
if (i > 0 && this.timeSinceIgnited == 0) if (i > 0 && this.timeSinceIgnited == 0) {
{
this.playSound(ModSoundEvents.ENTITY_SMAVACREEPER_FUSE, 1.0F, 1.0F); this.playSound(ModSoundEvents.ENTITY_SMAVACREEPER_FUSE, 1.0F, 1.0F);
} }
this.timeSinceIgnited += i; this.timeSinceIgnited += i;
if (this.timeSinceIgnited < 0) if (this.timeSinceIgnited < 0) {
{
this.timeSinceIgnited = 0; this.timeSinceIgnited = 0;
} }
if (this.timeSinceIgnited >= this.fuseTime) if (this.timeSinceIgnited >= this.fuseTime) {
{
this.timeSinceIgnited = this.fuseTime; this.timeSinceIgnited = this.fuseTime;
this.explode(); this.explode();
} }
@ -55,26 +49,25 @@ public class EntitySmavaCreeper extends EntityCreeper
super.onUpdate(); super.onUpdate();
} }
private void explode() private void explode() {
{ if (!this.world.isRemote) {
if (!this.world.isRemote)
{
boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this); boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this);
float f = this.getPowered() ? 2.0F : 1.0F; float f = this.getPowered() ? 2.0F : 1.0F;
this.dead = true; this.dead = true;
this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_SMAVACREEPER_BLOW, getSoundCategory(), 5.0F, 1.0F); this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_SMAVACREEPER_BLOW, getSoundCategory(), 5.0F,
this.world.createExplosion(this, this.posX, this.posY, this.posZ, (float)this.explosionRadius * f, flag); 1.0F);
this.world.createExplosion(this, this.posX, this.posY, this.posZ, this.explosionRadius * f, flag);
this.setDead(); this.setDead();
} }
} }
protected SoundEvent getHurtSound(DamageSource damageSourceIn) @Override
{ protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
return ModSoundEvents.ENTITY_SMAVACREEPER_HURT; return ModSoundEvents.ENTITY_SMAVACREEPER_HURT;
} }
protected SoundEvent getAmbientSound() @Override
{ protected SoundEvent getAmbientSound() {
return ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT; return ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT;
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import java.util.UUID; import java.util.UUID;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -17,11 +18,13 @@ import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityWolfMZTE extends EntityWolf public class EntityWolfMZTE extends EntityWolf {
{ private static final DataParameter<Float> DATA_HEALTH_ID = EntityDataManager.<Float>createKey(EntityWolf.class,
private static final DataParameter<Float> DATA_HEALTH_ID = EntityDataManager.<Float>createKey(EntityWolf.class, DataSerializers.FLOAT); DataSerializers.FLOAT);
private static final DataParameter<Boolean> BEGGING = EntityDataManager.<Boolean>createKey(EntityWolf.class, DataSerializers.BOOLEAN); private static final DataParameter<Boolean> BEGGING = EntityDataManager.<Boolean>createKey(EntityWolf.class,
private static final DataParameter<Integer> COLLAR_COLOR = EntityDataManager.<Integer>createKey(EntityWolf.class, DataSerializers.VARINT); DataSerializers.BOOLEAN);
private static final DataParameter<Integer> COLLAR_COLOR = EntityDataManager.<Integer>createKey(EntityWolf.class,
DataSerializers.VARINT);
private float headRotationCourse; private float headRotationCourse;
private float headRotationCourseOld; private float headRotationCourseOld;
private boolean isWet; private boolean isWet;
@ -29,20 +32,18 @@ public class EntityWolfMZTE extends EntityWolf
private float timeWolfIsShaking; private float timeWolfIsShaking;
private float prevTimeWolfIsShaking; private float prevTimeWolfIsShaking;
public EntityWolfMZTE(World worldIn) public EntityWolfMZTE(World worldIn) {
{
super(worldIn); super(worldIn);
this.setSize(0.6F, 0.85F); this.setSize(0.6F, 0.85F);
this.setTamed(false); this.setTamed(false);
} }
public EntityWolfMZTE createChild(EntityAgeable ageable) @Override
{ public EntityWolfMZTE createChild(EntityAgeable ageable) {
EntityWolfMZTE entitywolfmzte = new EntityWolfMZTE(this.world); EntityWolfMZTE entitywolfmzte = new EntityWolfMZTE(this.world);
UUID uuid = this.getOwnerId(); UUID uuid = this.getOwnerId();
if (uuid != null) if (uuid != null) {
{
entitywolfmzte.setOwnerId(uuid); entitywolfmzte.setOwnerId(uuid);
entitywolfmzte.setTamed(true); entitywolfmzte.setTamed(true);
} }
@ -50,74 +51,54 @@ public class EntityWolfMZTE extends EntityWolf
return entitywolfmzte; return entitywolfmzte;
} }
public boolean canMateWith(EntityAnimal otherAnimal) @Override
{ public boolean canMateWith(EntityAnimal otherAnimal) {
if (otherAnimal == this) if (otherAnimal == this) {
{
return false; return false;
} } else if (!this.isTamed()) {
else if (!this.isTamed())
{
return false; return false;
} } else if (!(otherAnimal instanceof EntityWolfMZTE)) {
else if (!(otherAnimal instanceof EntityWolfMZTE))
{
return false; return false;
} } else {
else
{
EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) otherAnimal; EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) otherAnimal;
if (!entitywolfmzte.isTamed()) if (!entitywolfmzte.isTamed()) {
{
return false; return false;
} } else if (entitywolfmzte.isSitting()) {
else if (entitywolfmzte.isSitting())
{
return false; return false;
} } else {
else
{
return this.isInLove() && entitywolfmzte.isInLove(); return this.isInLove() && entitywolfmzte.isInLove();
} }
} }
} }
public boolean shouldAttackEntity(EntityLivingBase target, EntityLivingBase owner) @Override
{ public boolean shouldAttackEntity(EntityLivingBase target, EntityLivingBase owner) {
if (!(target instanceof EntityCreeper) && !(target instanceof EntityGhast)) if (!(target instanceof EntityCreeper) && !(target instanceof EntityGhast)) {
{ if (target instanceof EntityWolfMZTE) {
if (target instanceof EntityWolfMZTE)
{
EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) target; EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) target;
if (entitywolfmzte.isTamed() && entitywolfmzte.getOwner() == owner) if (entitywolfmzte.isTamed() && entitywolfmzte.getOwner() == owner) {
{
return false; return false;
} }
} }
if (target instanceof EntityPlayer && owner instanceof EntityPlayer && !((EntityPlayer)owner).canAttackPlayer((EntityPlayer)target)) if (target instanceof EntityPlayer && owner instanceof EntityPlayer
{ && !((EntityPlayer) owner).canAttackPlayer((EntityPlayer) target)) {
return false; return false;
} } else {
else
{
return !(target instanceof AbstractHorse) || !((AbstractHorse) target).isTame(); return !(target instanceof AbstractHorse) || !((AbstractHorse) target).isTame();
} }
} } else {
else
{
return false; return false;
} }
} }
class AIAvoidEntity<T extends Entity> extends EntityAIAvoidEntity<T> class AIAvoidEntity<T extends Entity> extends EntityAIAvoidEntity<T> {
{
private final EntityWolfMZTE wolf; private final EntityWolfMZTE wolf;
public AIAvoidEntity(EntityWolfMZTE wolfIn, Class<T> p_i47251_3_, float p_i47251_4_, double p_i47251_5_, double p_i47251_7_) public AIAvoidEntity(EntityWolfMZTE wolfIn, Class<T> p_i47251_3_, float p_i47251_4_, double p_i47251_5_,
{ double p_i47251_7_) {
super(wolfIn, p_i47251_3_, p_i47251_4_, p_i47251_5_, p_i47251_7_); super(wolfIn, p_i47251_3_, p_i47251_4_, p_i47251_5_, p_i47251_7_);
this.wolf = wolfIn; this.wolf = wolfIn;
} }
@ -125,28 +106,24 @@ public class EntityWolfMZTE extends EntityWolf
/** /**
* Returns whether the EntityAIBase should begin execution. * Returns whether the EntityAIBase should begin execution.
*/ */
public boolean shouldExecute() @Override
{ public boolean shouldExecute() {
if (super.shouldExecute() && this.closestLivingEntity instanceof EntityLlama) if (super.shouldExecute() && this.closestLivingEntity instanceof EntityLlama) {
{
return !this.wolf.isTamed() && this.avoidLlama((EntityLlama) this.closestLivingEntity); return !this.wolf.isTamed() && this.avoidLlama((EntityLlama) this.closestLivingEntity);
} } else {
else
{
return false; return false;
} }
} }
private boolean avoidLlama(EntityLlama p_190854_1_) private boolean avoidLlama(EntityLlama p_190854_1_) {
{
return p_190854_1_.getStrength() >= EntityWolfMZTE.this.rand.nextInt(5); return p_190854_1_.getStrength() >= EntityWolfMZTE.this.rand.nextInt(5);
} }
/** /**
* Execute a one shot task or start executing a continuous task * Execute a one shot task or start executing a continuous task
*/ */
public void startExecuting() @Override
{ public void startExecuting() {
EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null); EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null);
super.startExecuting(); super.startExecuting();
} }
@ -154,8 +131,8 @@ public class EntityWolfMZTE extends EntityWolf
/** /**
* Keep ticking a continuous task that has already been started * Keep ticking a continuous task that has already been started
*/ */
public void updateTask() @Override
{ public void updateTask() {
EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null); EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null);
super.updateTask(); super.updateTask();
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.items; package mod.acgaming.spackenmobs.items;
import mod.acgaming.spackenmobs.Spackenmobs; import mod.acgaming.spackenmobs.Spackenmobs;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
@ -7,18 +8,15 @@ import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemBase extends Item public class ItemBase extends Item {
{ public ItemBase(String name, CreativeTabs tab) {
public ItemBase(String name, CreativeTabs tab)
{
setRegistryName(name); setRegistryName(name);
setUnlocalizedName(Spackenmobs.MODID + "." + name); setUnlocalizedName(Spackenmobs.MODID + "." + name);
setCreativeTab(tab); setCreativeTab(tab);
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void initModel() public void initModel() {
{
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory")); ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
} }
} }

View file

@ -1,10 +1,9 @@
package mod.acgaming.spackenmobs.items; package mod.acgaming.spackenmobs.items;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
public class ItemPotion extends Potion public class ItemPotion extends Potion {
{ public ItemPotion(String name, boolean isBadPotion, int color, int iconIndexX, int iconIndexY) {
public ItemPotion(String name, boolean isBadPotion, int color, int iconIndexX, int iconIndexY)
{
super(isBadPotion, color); super(isBadPotion, color);
setPotionName("effect." + name); setPotionName("effect." + name);
setIconIndex(iconIndexX, iconIndexY); setIconIndex(iconIndexX, iconIndexY);

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -8,18 +9,14 @@ import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.Biome.SpawnListEntry; import net.minecraft.world.biome.Biome.SpawnListEntry;
// Thanks to Vazkii! // Thanks to Vazkii!
public class BiomeHelper public class BiomeHelper {
{
public static Biome[] getBiomesWithMonster(Class<? extends Entity> clazz) public static Biome[] getBiomesWithMonster(Class<? extends Entity> clazz) {
{
List<Biome> biomes = new ArrayList<>(); List<Biome> biomes = new ArrayList<>();
for (Biome b : Biome.REGISTRY) for (Biome b : Biome.REGISTRY) {
{
List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.MONSTER); List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.MONSTER);
for (SpawnListEntry e : spawnList) for (SpawnListEntry e : spawnList)
if (e.entityClass == clazz) if (e.entityClass == clazz) {
{
biomes.add(b); biomes.add(b);
break; break;
} }
@ -27,15 +24,12 @@ public class BiomeHelper
return biomes.toArray(new Biome[0]); return biomes.toArray(new Biome[0]);
} }
public static Biome[] getBiomesWithCreature(Class<? extends Entity> clazz) public static Biome[] getBiomesWithCreature(Class<? extends Entity> clazz) {
{
List<Biome> biomes = new ArrayList<>(); List<Biome> biomes = new ArrayList<>();
for (Biome b : Biome.REGISTRY) for (Biome b : Biome.REGISTRY) {
{
List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.CREATURE); List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.CREATURE);
for (SpawnListEntry e : spawnList) for (SpawnListEntry e : spawnList)
if (e.entityClass == clazz) if (e.entityClass == clazz) {
{
biomes.add(b); biomes.add(b);
break; break;
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
import mod.acgaming.spackenmobs.entities.EntityApoRed; import mod.acgaming.spackenmobs.entities.EntityApoRed;
import mod.acgaming.spackenmobs.entities.EntityDrachenlord; import mod.acgaming.spackenmobs.entities.EntityDrachenlord;
import mod.acgaming.spackenmobs.entities.EntityHolzstammhuhn; import mod.acgaming.spackenmobs.entities.EntityHolzstammhuhn;
@ -21,10 +22,8 @@ import mod.acgaming.spackenmobs.render.RenderSmavaCreeper;
import mod.acgaming.spackenmobs.render.RenderWolfMZTE; import mod.acgaming.spackenmobs.render.RenderWolfMZTE;
import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.client.registry.RenderingRegistry;
public class ModEntities public class ModEntities {
{ public static void initModels() {
public static void initModels()
{
RenderingRegistry.registerEntityRenderingHandler(EntityApoRed.class, RenderApoRed.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityApoRed.class, RenderApoRed.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityDrachenlord.class, RenderDrachenlord.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityDrachenlord.class, RenderDrachenlord.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityIslamist.class, RenderIslamist.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityIslamist.class, RenderIslamist.FACTORY);

View file

@ -1,12 +1,12 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
import mod.acgaming.spackenmobs.Spackenmobs; import mod.acgaming.spackenmobs.Spackenmobs;
import mod.acgaming.spackenmobs.items.ItemBase; import mod.acgaming.spackenmobs.items.ItemBase;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder;
@ObjectHolder(Spackenmobs.MODID) @ObjectHolder(Spackenmobs.MODID)
public class ModItems public class ModItems {
{
public static final Item RAM = new ItemBase("ram", Spackenmobs.SPACKENMOBS_TAB); public static final Item RAM = new ItemBase("ram", Spackenmobs.SPACKENMOBS_TAB);
public static final Item RAM_ON_A_STICK = new ItemBase("ram_on_a_stick", Spackenmobs.SPACKENMOBS_TAB); public static final Item RAM_ON_A_STICK = new ItemBase("ram_on_a_stick", Spackenmobs.SPACKENMOBS_TAB);
public static final Item SURSTROEMMING = new ItemBase("surstroemming", Spackenmobs.SPACKENMOBS_TAB); public static final Item SURSTROEMMING = new ItemBase("surstroemming", Spackenmobs.SPACKENMOBS_TAB);

View file

@ -1,6 +1,5 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
public class ModPotions public class ModPotions {
{
} }

View file

@ -1,48 +1,79 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
import mod.acgaming.spackenmobs.Spackenmobs; import mod.acgaming.spackenmobs.Spackenmobs;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder;
@ObjectHolder(Spackenmobs.MODID) @ObjectHolder(Spackenmobs.MODID)
public class ModSoundEvents public class ModSoundEvents {
{ public static final SoundEvent ENTITY_SMAVACREEPER_FUSE = new SoundEvent(
public static final SoundEvent ENTITY_SMAVACREEPER_FUSE = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.fuse")); new ResourceLocation("spackenmobs:entities.smava_creeper.fuse"));
public static final SoundEvent ENTITY_SMAVACREEPER_BLOW = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.blow")); public static final SoundEvent ENTITY_SMAVACREEPER_BLOW = new SoundEvent(
public static final SoundEvent ENTITY_SMAVACREEPER_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.hurt")); new ResourceLocation("spackenmobs:entities.smava_creeper.blow"));
public static final SoundEvent ENTITY_SMAVACREEPER_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.ambient")); public static final SoundEvent ENTITY_SMAVACREEPER_HURT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.smava_creeper.hurt"));
public static final SoundEvent ENTITY_SMAVACREEPER_AMBIENT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.smava_creeper.ambient"));
public static final SoundEvent ENTITY_MARCELLDAVIS_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.marcell_davis.ambient")); public static final SoundEvent ENTITY_MARCELLDAVIS_AMBIENT = new SoundEvent(
public static final SoundEvent ENTITY_MARCELLDAVIS_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.marcell_davis.hurt")); new ResourceLocation("spackenmobs:entities.marcell_davis.ambient"));
public static final SoundEvent ENTITY_MARCELLDAVIS_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.marcell_davis.death")); public static final SoundEvent ENTITY_MARCELLDAVIS_HURT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.marcell_davis.hurt"));
public static final SoundEvent ENTITY_MARCELLDAVIS_DEATH = new SoundEvent(
new ResourceLocation("spackenmobs:entities.marcell_davis.death"));
public static final SoundEvent ENTITY_ISLAMIST_FUSE = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.fuse")); public static final SoundEvent ENTITY_ISLAMIST_FUSE = new SoundEvent(
public static final SoundEvent ENTITY_ISLAMIST_BLOW = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.blow")); new ResourceLocation("spackenmobs:entities.islamist.fuse"));
public static final SoundEvent ENTITY_ISLAMIST_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.hurt")); public static final SoundEvent ENTITY_ISLAMIST_BLOW = new SoundEvent(
public static final SoundEvent ENTITY_ISLAMIST_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.ambient")); new ResourceLocation("spackenmobs:entities.islamist.blow"));
public static final SoundEvent ENTITY_ISLAMIST_HURT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.islamist.hurt"));
public static final SoundEvent ENTITY_ISLAMIST_AMBIENT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.islamist.ambient"));
public static final SoundEvent ENTITY_APORED_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.apored.ambient")); public static final SoundEvent ENTITY_APORED_AMBIENT = new SoundEvent(
public static final SoundEvent ENTITY_APORED_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.apored.hurt")); new ResourceLocation("spackenmobs:entities.apored.ambient"));
public static final SoundEvent ENTITY_APORED_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.apored.death")); public static final SoundEvent ENTITY_APORED_HURT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.apored.hurt"));
public static final SoundEvent ENTITY_APORED_DEATH = new SoundEvent(
new ResourceLocation("spackenmobs:entities.apored.death"));
public static final SoundEvent ENTITY_MRBEAN_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.mr_bean.ambient")); public static final SoundEvent ENTITY_MRBEAN_AMBIENT = new SoundEvent(
public static final SoundEvent ENTITY_MRBEAN_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.mr_bean.hurt")); new ResourceLocation("spackenmobs:entities.mr_bean.ambient"));
public static final SoundEvent ENTITY_MRBEAN_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.mr_bean.death")); public static final SoundEvent ENTITY_MRBEAN_HURT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.mr_bean.hurt"));
public static final SoundEvent ENTITY_MRBEAN_DEATH = new SoundEvent(
new ResourceLocation("spackenmobs:entities.mr_bean.death"));
public static final SoundEvent ENTITY_DRACHENLORD_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.ambient")); public static final SoundEvent ENTITY_DRACHENLORD_AMBIENT = new SoundEvent(
public static final SoundEvent ENTITY_DRACHENLORD_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.hurt")); new ResourceLocation("spackenmobs:entities.drachenlord.ambient"));
public static final SoundEvent ENTITY_DRACHENLORD_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.death")); public static final SoundEvent ENTITY_DRACHENLORD_HURT = new SoundEvent(
public static final SoundEvent ENTITY_DRACHENLORD_ANGRY = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.angry")); new ResourceLocation("spackenmobs:entities.drachenlord.hurt"));
public static final SoundEvent ENTITY_DRACHENLORD_DEATH = new SoundEvent(
new ResourceLocation("spackenmobs:entities.drachenlord.death"));
public static final SoundEvent ENTITY_DRACHENLORD_ANGRY = new SoundEvent(
new ResourceLocation("spackenmobs:entities.drachenlord.angry"));
public static final SoundEvent ENTITY_SCHALKER_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.ambient")); public static final SoundEvent ENTITY_SCHALKER_AMBIENT = new SoundEvent(
public static final SoundEvent ENTITY_SCHALKER_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.hurt")); new ResourceLocation("spackenmobs:entities.schalker.ambient"));
public static final SoundEvent ENTITY_SCHALKER_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.death")); public static final SoundEvent ENTITY_SCHALKER_HURT = new SoundEvent(
public static final SoundEvent ENTITY_SCHALKER_OPEN = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.open")); new ResourceLocation("spackenmobs:entities.schalker.hurt"));
public static final SoundEvent ENTITY_SCHALKER_SHOOT = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.shoot")); public static final SoundEvent ENTITY_SCHALKER_DEATH = new SoundEvent(
new ResourceLocation("spackenmobs:entities.schalker.death"));
public static final SoundEvent ENTITY_SCHALKER_OPEN = new SoundEvent(
new ResourceLocation("spackenmobs:entities.schalker.open"));
public static final SoundEvent ENTITY_SCHALKER_SHOOT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.schalker.shoot"));
public static final SoundEvent ENTITY_JENS_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.ambient")); public static final SoundEvent ENTITY_JENS_AMBIENT = new SoundEvent(
public static final SoundEvent ENTITY_JENS_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.hurt")); new ResourceLocation("spackenmobs:entities.jens.ambient"));
public static final SoundEvent ENTITY_JENS_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.death")); public static final SoundEvent ENTITY_JENS_HURT = new SoundEvent(
public static final SoundEvent ENTITY_JENS_EAT = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.eat")); new ResourceLocation("spackenmobs:entities.jens.hurt"));
public static final SoundEvent ENTITY_JENS_POOP = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.poop")); public static final SoundEvent ENTITY_JENS_DEATH = new SoundEvent(
new ResourceLocation("spackenmobs:entities.jens.death"));
public static final SoundEvent ENTITY_JENS_EAT = new SoundEvent(
new ResourceLocation("spackenmobs:entities.jens.eat"));
public static final SoundEvent ENTITY_JENS_POOP = new SoundEvent(
new ResourceLocation("spackenmobs:entities.jens.poop"));
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
import mod.acgaming.spackenmobs.Spackenmobs; import mod.acgaming.spackenmobs.Spackenmobs;
import mod.acgaming.spackenmobs.entities.EntityApoRed; import mod.acgaming.spackenmobs.entities.EntityApoRed;
import mod.acgaming.spackenmobs.entities.EntityDrachenlord; import mod.acgaming.spackenmobs.entities.EntityDrachenlord;
@ -30,143 +31,178 @@ import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraftforge.fml.common.registry.EntityRegistry; import net.minecraftforge.fml.common.registry.EntityRegistry;
@EventBusSubscriber(modid = Spackenmobs.MODID) @EventBusSubscriber(modid = Spackenmobs.MODID)
public class RegHandler public class RegHandler {
{
@SubscribeEvent @SubscribeEvent
public static void registerItems(Register<Item> event) public static void registerItems(Register<Item> event) {
{ final Item[] items = {
final Item[] items = new Item().setRegistryName(Spackenmobs.MODID, "ram").setUnlocalizedName(Spackenmobs.MODID + "." + "ram")
{ .setCreativeTab(CreativeTabs.MISC),
new Item().setRegistryName(Spackenmobs.MODID, "ram").setUnlocalizedName(Spackenmobs.MODID + "." + "ram").setCreativeTab(CreativeTabs.MISC), new Item().setRegistryName(Spackenmobs.MODID, "ram_on_a_stick")
new Item().setRegistryName(Spackenmobs.MODID, "ram_on_a_stick").setUnlocalizedName(Spackenmobs.MODID + "." + "ram_on_a_stick").setCreativeTab(CreativeTabs.MISC), .setUnlocalizedName(Spackenmobs.MODID + "." + "ram_on_a_stick")
new Item().setRegistryName(Spackenmobs.MODID, "surstroemming").setUnlocalizedName(Spackenmobs.MODID + "." + "surstroemming").setCreativeTab(CreativeTabs.MISC) .setCreativeTab(CreativeTabs.MISC),
}; new Item().setRegistryName(Spackenmobs.MODID, "surstroemming")
.setUnlocalizedName(Spackenmobs.MODID + "." + "surstroemming")
.setCreativeTab(CreativeTabs.MISC) };
event.getRegistry().registerAll(items); event.getRegistry().registerAll(items);
} }
@SubscribeEvent @SubscribeEvent
public static void registerEntities(Register<EntityEntry> event) public static void registerEntities(Register<EntityEntry> event) {
{
int id = 1; int id = 1;
// Smava Creeper // Smava Creeper
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:smava_creeper"), EntitySmavaCreeper.class, "smava_creeper", id++, Spackenmobs.instance, 64, 1, true, 7649828, 11053224); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:smava_creeper"), EntitySmavaCreeper.class,
EntityRegistry.addSpawn(EntitySmavaCreeper.class, 25, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); "smava_creeper", id++, Spackenmobs.instance, 64, 1, true, 7649828, 11053224);
EntityRegistry.addSpawn(EntitySmavaCreeper.class, 25, 1, 4, EnumCreatureType.MONSTER,
BiomeHelper.getBiomesWithMonster(EntityCreeper.class));
// Marcell D'Avis // Marcell D'Avis
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:marcell_davis"), EntityMarcellDAvis.class, "marcell_davis", id++, Spackenmobs.instance, 64, 1, true, 15759, 16777215); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:marcell_davis"), EntityMarcellDAvis.class,
EntityRegistry.addSpawn(EntityMarcellDAvis.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityZombie.class)); "marcell_davis", id++, Spackenmobs.instance, 64, 1, true, 15759, 16777215);
EntityRegistry.addSpawn(EntityMarcellDAvis.class, 50, 1, 4, EnumCreatureType.MONSTER,
BiomeHelper.getBiomesWithMonster(EntityZombie.class));
// Islamist // Islamist
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:islamist"), EntityIslamist.class, "islamist", id++, Spackenmobs.instance, 64, 1, true, 15263976, 15211548); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:islamist"), EntityIslamist.class, "islamist",
EntityRegistry.addSpawn(EntityIslamist.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); id++, Spackenmobs.instance, 64, 1, true, 15263976, 15211548);
EntityRegistry.addSpawn(EntityIslamist.class, 50, 1, 4, EnumCreatureType.MONSTER,
BiomeHelper.getBiomesWithMonster(EntityCreeper.class));
// ApoRed // ApoRed
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:apored"), EntityApoRed.class, "apored", id++, Spackenmobs.instance, 64, 1, true, 2039583, 16711680); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:apored"), EntityApoRed.class, "apored", id++,
EntityRegistry.addSpawn(EntityApoRed.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntitySkeleton.class)); Spackenmobs.instance, 64, 1, true, 2039583, 16711680);
EntityRegistry.addSpawn(EntityApoRed.class, 50, 1, 4, EnumCreatureType.MONSTER,
BiomeHelper.getBiomesWithMonster(EntitySkeleton.class));
// Mr. Bean // Mr. Bean
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mr_bean"), EntityMrBean.class, "mr_bean", id++, Spackenmobs.instance, 64, 1, true, 4802350, 3220238); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mr_bean"), EntityMrBean.class, "mr_bean",
EntityRegistry.addSpawn(EntityMrBean.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityZombie.class)); id++, Spackenmobs.instance, 64, 1, true, 4802350, 3220238);
EntityRegistry.addSpawn(EntityMrBean.class, 50, 1, 4, EnumCreatureType.MONSTER,
BiomeHelper.getBiomesWithMonster(EntityZombie.class));
// Drachenlord // Drachenlord
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:drachenlord"), EntityDrachenlord.class, "drachenlord", id++, Spackenmobs.instance, 64, 1, true, 15256745, 8738878); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:drachenlord"), EntityDrachenlord.class,
EntityRegistry.addSpawn(EntityDrachenlord.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityPigZombie.class)); "drachenlord", id++, Spackenmobs.instance, 64, 1, true, 15256745, 8738878);
EntityRegistry.addSpawn(EntityDrachenlord.class, 50, 1, 4, EnumCreatureType.MONSTER,
BiomeHelper.getBiomesWithMonster(EntityPigZombie.class));
// Schalker // Schalker
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:schalker"), EntitySchalker.class, "schalker", id++, Spackenmobs.instance, 64, 1, true, 24745, 16777215); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:schalker"), EntitySchalker.class, "schalker",
EntityRegistry.addSpawn(EntitySchalker.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityShulker.class)); id++, Spackenmobs.instance, 64, 1, true, 24745, 16777215);
EntityRegistry.addSpawn(EntitySchalker.class, 50, 1, 4, EnumCreatureType.MONSTER,
BiomeHelper.getBiomesWithMonster(EntityShulker.class));
// Jens // Jens
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:jens"), EntityJens.class, "jens", id++, Spackenmobs.instance, 64, 1, true, 6704526, 6767911); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:jens"), EntityJens.class, "jens", id++,
EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityPig.class)); Spackenmobs.instance, 64, 1, true, 6704526, 6767911);
EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE,
BiomeHelper.getBiomesWithCreature(EntityPig.class));
// WolfMZTE // WolfMZTE
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:wolfmzte"), EntityWolfMZTE.class, "wolfmzte", id++, Spackenmobs.instance, 64, 1, true, 16711680, 0); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:wolfmzte"), EntityWolfMZTE.class, "wolfmzte",
EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityWolf.class)); id++, Spackenmobs.instance, 64, 1, true, 16711680, 0);
EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE,
BiomeHelper.getBiomesWithCreature(EntityWolf.class));
// Holzstammhuhn // Holzstammhuhn
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:holzstammhuhn"), EntityHolzstammhuhn.class, "holzstammhuhn", id++, Spackenmobs.instance, 64, 1, true, 12096347, 5295899); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:holzstammhuhn"), EntityHolzstammhuhn.class,
EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityChicken.class)); "holzstammhuhn", id++, Spackenmobs.instance, 64, 1, true, 12096347, 5295899);
EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE,
BiomeHelper.getBiomesWithCreature(EntityChicken.class));
// LootTableList.register(EntityJens.LOOT); // LootTableList.register(EntityJens.LOOT);
} }
@SubscribeEvent @SubscribeEvent
public static void registerSounds(Register<SoundEvent> event) public static void registerSounds(Register<SoundEvent> event) {
{
// Smava Creeper // Smava Creeper
ModSoundEvents.ENTITY_SMAVACREEPER_FUSE.setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.fuse")); ModSoundEvents.ENTITY_SMAVACREEPER_FUSE
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SMAVACREEPER_FUSE); .setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.fuse"));
ModSoundEvents.ENTITY_SMAVACREEPER_BLOW.setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.blow")); event.getRegistry().register(ModSoundEvents.ENTITY_SMAVACREEPER_FUSE);
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SMAVACREEPER_BLOW); ModSoundEvents.ENTITY_SMAVACREEPER_BLOW
ModSoundEvents.ENTITY_SMAVACREEPER_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.hurt")); .setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.blow"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SMAVACREEPER_HURT); event.getRegistry().register(ModSoundEvents.ENTITY_SMAVACREEPER_BLOW);
ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.ambient")); ModSoundEvents.ENTITY_SMAVACREEPER_HURT
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT); .setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.hurt"));
event.getRegistry().register(ModSoundEvents.ENTITY_SMAVACREEPER_HURT);
ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT
.setRegistryName(new ResourceLocation("spackenmobs:entities.smava_creeper.ambient"));
event.getRegistry().register(ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT);
// Islamist // Islamist
ModSoundEvents.ENTITY_ISLAMIST_FUSE.setRegistryName(new ResourceLocation("spackenmobs:entities.islamist.fuse")); ModSoundEvents.ENTITY_ISLAMIST_FUSE.setRegistryName(new ResourceLocation("spackenmobs:entities.islamist.fuse"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_ISLAMIST_FUSE); event.getRegistry().register(ModSoundEvents.ENTITY_ISLAMIST_FUSE);
ModSoundEvents.ENTITY_ISLAMIST_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.islamist.hurt")); ModSoundEvents.ENTITY_ISLAMIST_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.islamist.hurt"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_ISLAMIST_HURT); event.getRegistry().register(ModSoundEvents.ENTITY_ISLAMIST_HURT);
// Marcell D'Avis // Marcell D'Avis
ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.marcell_davis.ambient")); ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT); .setRegistryName(new ResourceLocation("spackenmobs:entities.marcell_davis.ambient"));
ModSoundEvents.ENTITY_MARCELLDAVIS_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.marcell_davis.hurt")); event.getRegistry().register(ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT);
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_MARCELLDAVIS_HURT); ModSoundEvents.ENTITY_MARCELLDAVIS_HURT
ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.marcell_davis.death")); .setRegistryName(new ResourceLocation("spackenmobs:entities.marcell_davis.hurt"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH); event.getRegistry().register(ModSoundEvents.ENTITY_MARCELLDAVIS_HURT);
ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH
.setRegistryName(new ResourceLocation("spackenmobs:entities.marcell_davis.death"));
event.getRegistry().register(ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH);
// Mr. Bean // Mr. Bean
ModSoundEvents.ENTITY_MRBEAN_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.mr_bean.ambient")); ModSoundEvents.ENTITY_MRBEAN_AMBIENT
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_MRBEAN_AMBIENT); .setRegistryName(new ResourceLocation("spackenmobs:entities.mr_bean.ambient"));
event.getRegistry().register(ModSoundEvents.ENTITY_MRBEAN_AMBIENT);
ModSoundEvents.ENTITY_MRBEAN_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.mr_bean.hurt")); ModSoundEvents.ENTITY_MRBEAN_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.mr_bean.hurt"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_MRBEAN_HURT); event.getRegistry().register(ModSoundEvents.ENTITY_MRBEAN_HURT);
ModSoundEvents.ENTITY_MRBEAN_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.mr_bean.death")); ModSoundEvents.ENTITY_MRBEAN_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.mr_bean.death"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_MRBEAN_DEATH); event.getRegistry().register(ModSoundEvents.ENTITY_MRBEAN_DEATH);
// ApoRed // ApoRed
ModSoundEvents.ENTITY_APORED_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.apored.ambient")); ModSoundEvents.ENTITY_APORED_AMBIENT
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_APORED_AMBIENT); .setRegistryName(new ResourceLocation("spackenmobs:entities.apored.ambient"));
event.getRegistry().register(ModSoundEvents.ENTITY_APORED_AMBIENT);
ModSoundEvents.ENTITY_APORED_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.apored.hurt")); ModSoundEvents.ENTITY_APORED_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.apored.hurt"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_APORED_HURT); event.getRegistry().register(ModSoundEvents.ENTITY_APORED_HURT);
ModSoundEvents.ENTITY_APORED_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.apored.death")); ModSoundEvents.ENTITY_APORED_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.apored.death"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_APORED_DEATH); event.getRegistry().register(ModSoundEvents.ENTITY_APORED_DEATH);
// Drachenlord // Drachenlord
ModSoundEvents.ENTITY_DRACHENLORD_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.ambient")); ModSoundEvents.ENTITY_DRACHENLORD_AMBIENT
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_DRACHENLORD_AMBIENT); .setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.ambient"));
ModSoundEvents.ENTITY_DRACHENLORD_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.hurt")); event.getRegistry().register(ModSoundEvents.ENTITY_DRACHENLORD_AMBIENT);
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_DRACHENLORD_HURT); ModSoundEvents.ENTITY_DRACHENLORD_HURT
ModSoundEvents.ENTITY_DRACHENLORD_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.death")); .setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.hurt"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_DRACHENLORD_DEATH); event.getRegistry().register(ModSoundEvents.ENTITY_DRACHENLORD_HURT);
ModSoundEvents.ENTITY_DRACHENLORD_ANGRY.setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.angry")); ModSoundEvents.ENTITY_DRACHENLORD_DEATH
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_DRACHENLORD_ANGRY); .setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.death"));
event.getRegistry().register(ModSoundEvents.ENTITY_DRACHENLORD_DEATH);
ModSoundEvents.ENTITY_DRACHENLORD_ANGRY
.setRegistryName(new ResourceLocation("spackenmobs:entities.drachenlord.angry"));
event.getRegistry().register(ModSoundEvents.ENTITY_DRACHENLORD_ANGRY);
// Schalker // Schalker
ModSoundEvents.ENTITY_SCHALKER_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.ambient")); ModSoundEvents.ENTITY_SCHALKER_AMBIENT
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SCHALKER_AMBIENT); .setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.ambient"));
event.getRegistry().register(ModSoundEvents.ENTITY_SCHALKER_AMBIENT);
ModSoundEvents.ENTITY_SCHALKER_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.hurt")); ModSoundEvents.ENTITY_SCHALKER_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.hurt"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SCHALKER_HURT); event.getRegistry().register(ModSoundEvents.ENTITY_SCHALKER_HURT);
ModSoundEvents.ENTITY_SCHALKER_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.death")); ModSoundEvents.ENTITY_SCHALKER_DEATH
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SCHALKER_DEATH); .setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.death"));
event.getRegistry().register(ModSoundEvents.ENTITY_SCHALKER_DEATH);
ModSoundEvents.ENTITY_SCHALKER_OPEN.setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.open")); ModSoundEvents.ENTITY_SCHALKER_OPEN.setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.open"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SCHALKER_OPEN); event.getRegistry().register(ModSoundEvents.ENTITY_SCHALKER_OPEN);
ModSoundEvents.ENTITY_SCHALKER_SHOOT.setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.shoot")); ModSoundEvents.ENTITY_SCHALKER_SHOOT
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_SCHALKER_SHOOT); .setRegistryName(new ResourceLocation("spackenmobs:entities.schalker.shoot"));
event.getRegistry().register(ModSoundEvents.ENTITY_SCHALKER_SHOOT);
// Jens // Jens
ModSoundEvents.ENTITY_JENS_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.ambient")); ModSoundEvents.ENTITY_JENS_AMBIENT.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.ambient"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_JENS_AMBIENT); event.getRegistry().register(ModSoundEvents.ENTITY_JENS_AMBIENT);
ModSoundEvents.ENTITY_JENS_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.hurt")); ModSoundEvents.ENTITY_JENS_HURT.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.hurt"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_JENS_HURT); event.getRegistry().register(ModSoundEvents.ENTITY_JENS_HURT);
ModSoundEvents.ENTITY_JENS_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.death")); ModSoundEvents.ENTITY_JENS_DEATH.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.death"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_JENS_DEATH); event.getRegistry().register(ModSoundEvents.ENTITY_JENS_DEATH);
ModSoundEvents.ENTITY_JENS_EAT.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.eat")); ModSoundEvents.ENTITY_JENS_EAT.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.eat"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_JENS_EAT); event.getRegistry().register(ModSoundEvents.ENTITY_JENS_EAT);
ModSoundEvents.ENTITY_JENS_POOP.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.poop")); ModSoundEvents.ENTITY_JENS_POOP.setRegistryName(new ResourceLocation("spackenmobs:entities.jens.poop"));
event.getRegistry().register((SoundEvent)ModSoundEvents.ENTITY_JENS_POOP); event.getRegistry().register(ModSoundEvents.ENTITY_JENS_POOP);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
import mod.acgaming.spackenmobs.Spackenmobs; import mod.acgaming.spackenmobs.Spackenmobs;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@ -9,18 +10,16 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@EventBusSubscriber(value = Side.CLIENT, modid = Spackenmobs.MODID) @EventBusSubscriber(value = Side.CLIENT, modid = Spackenmobs.MODID)
public class RegHandlerModels public class RegHandlerModels {
{
@SubscribeEvent @SubscribeEvent
public static void registerModels(ModelRegistryEvent event) public static void registerModels(ModelRegistryEvent event) {
{
registerModel(ModItems.RAM, 0); registerModel(ModItems.RAM, 0);
registerModel(ModItems.RAM_ON_A_STICK, 0); registerModel(ModItems.RAM_ON_A_STICK, 0);
registerModel(ModItems.SURSTROEMMING, 0); registerModel(ModItems.SURSTROEMMING, 0);
} }
private static void registerModel(Item item, int meta) private static void registerModel(Item item, int meta) {
{ ModelLoader.setCustomModelResourceLocation(item, meta,
ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), "inventory")); new ModelResourceLocation(item.getRegistryName(), "inventory"));
} }
} }

View file

@ -9,14 +9,12 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ModelSchalker extends ModelBase public class ModelSchalker extends ModelBase {
{
public final ModelRenderer base; public final ModelRenderer base;
public final ModelRenderer lid; public final ModelRenderer lid;
public ModelRenderer head; public ModelRenderer head;
public ModelSchalker() public ModelSchalker() {
{
this.textureHeight = 64; this.textureHeight = 64;
this.textureWidth = 64; this.textureWidth = 64;
this.lid = new ModelRenderer(this); this.lid = new ModelRenderer(this);
@ -30,27 +28,24 @@ public class ModelSchalker extends ModelBase
this.head.setRotationPoint(0.0F, 12.0F, 0.0F); this.head.setRotationPoint(0.0F, 12.0F, 0.0F);
} }
public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) @Override
{ public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw,
float headPitch, float scaleFactor, Entity entityIn) {
EntitySchalker EntitySchalker = (EntitySchalker) entityIn; EntitySchalker EntitySchalker = (EntitySchalker) entityIn;
float f = ageInTicks - (float)EntitySchalker.ticksExisted; float f = ageInTicks - EntitySchalker.ticksExisted;
float f1 = (0.5F + EntitySchalker.getClientPeekAmount(f)) * (float) Math.PI; float f1 = (0.5F + EntitySchalker.getClientPeekAmount(f)) * (float) Math.PI;
float f2 = -1.0F + MathHelper.sin(f1); float f2 = -1.0F + MathHelper.sin(f1);
float f3 = 0.0F; float f3 = 0.0F;
if (f1 > (float)Math.PI) if (f1 > (float) Math.PI) {
{
f3 = MathHelper.sin(ageInTicks * 0.1F) * 0.7F; f3 = MathHelper.sin(ageInTicks * 0.1F) * 0.7F;
} }
this.lid.setRotationPoint(0.0F, 16.0F + MathHelper.sin(f1) * 8.0F + f3, 0.0F); this.lid.setRotationPoint(0.0F, 16.0F + MathHelper.sin(f1) * 8.0F + f3, 0.0F);
if (EntitySchalker.getClientPeekAmount(f) > 0.3F) if (EntitySchalker.getClientPeekAmount(f) > 0.3F) {
{
this.lid.rotateAngleY = f2 * f2 * f2 * f2 * (float) Math.PI * 0.125F; this.lid.rotateAngleY = f2 * f2 * f2 * f2 * (float) Math.PI * 0.125F;
} } else {
else
{
this.lid.rotateAngleY = 0.0F; this.lid.rotateAngleY = 0.0F;
} }
@ -58,8 +53,9 @@ public class ModelSchalker extends ModelBase
this.head.rotateAngleY = netHeadYaw * 0.017453292F; this.head.rotateAngleY = netHeadYaw * 0.017453292F;
} }
public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) @Override
{ public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw,
float headPitch, float scale) {
this.base.render(scale); this.base.render(scale);
this.lid.render(scale); this.lid.render(scale);
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityApoRed; import mod.acgaming.spackenmobs.entities.EntityApoRed;
import net.minecraft.client.model.ModelSkeleton; import net.minecraft.client.model.ModelSkeleton;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
@ -14,40 +15,36 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderApoRed extends RenderSkeleton public class RenderApoRed extends RenderSkeleton {
{ private static final ResourceLocation APORED_TEXTURE = new ResourceLocation(
private static final ResourceLocation APORED_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/apored.png"); "spackenmobs:textures/entities/apored.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderApoRed(RenderManager renderManagerIn) public RenderApoRed(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
this.addLayer(new LayerHeldItem(this)); this.addLayer(new LayerHeldItem(this));
this.addLayer(new LayerBipedArmor(this) this.addLayer(new LayerBipedArmor(this) {
{ @Override
protected void initArmor() protected void initArmor() {
{
this.modelLeggings = new ModelSkeleton(0.5F, true); this.modelLeggings = new ModelSkeleton(0.5F, true);
this.modelArmor = new ModelSkeleton(1.0F, true); this.modelArmor = new ModelSkeleton(1.0F, true);
} }
}); });
} }
public void transformHeldFull3DItemLayer() @Override
{ public void transformHeldFull3DItemLayer() {
GlStateManager.translate(0.09375F, 0.1875F, 0.0F); GlStateManager.translate(0.09375F, 0.1875F, 0.0F);
} }
protected ResourceLocation getEntityTexture(AbstractSkeleton entity) @Override
{ protected ResourceLocation getEntityTexture(AbstractSkeleton entity) {
return APORED_TEXTURE; return APORED_TEXTURE;
} }
public static class Factory implements IRenderFactory<EntityApoRed> public static class Factory implements IRenderFactory<EntityApoRed> {
{
@Override @Override
public Render<? super EntityApoRed> createRenderFor(RenderManager manager) public Render<? super EntityApoRed> createRenderFor(RenderManager manager) {
{
return new RenderApoRed(manager); return new RenderApoRed(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityDrachenlord; import mod.acgaming.spackenmobs.entities.EntityDrachenlord;
import net.minecraft.client.model.ModelZombie; import net.minecraft.client.model.ModelZombie;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
@ -12,34 +13,30 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderDrachenlord extends RenderZombie public class RenderDrachenlord extends RenderZombie {
{ private static final ResourceLocation DRACHENLORD_TEXTURE = new ResourceLocation(
private static final ResourceLocation DRACHENLORD_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/drachenlord.png"); "spackenmobs:textures/entities/drachenlord.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderDrachenlord(RenderManager renderManagerIn) public RenderDrachenlord(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
this.addLayer(new LayerBipedArmor(this) this.addLayer(new LayerBipedArmor(this) {
{ @Override
protected void initArmor() protected void initArmor() {
{
this.modelLeggings = new ModelZombie(0.5F, true); this.modelLeggings = new ModelZombie(0.5F, true);
this.modelArmor = new ModelZombie(1.0F, true); this.modelArmor = new ModelZombie(1.0F, true);
} }
}); });
} }
protected ResourceLocation getEntityTexture(EntityZombie entity) @Override
{ protected ResourceLocation getEntityTexture(EntityZombie entity) {
return DRACHENLORD_TEXTURE; return DRACHENLORD_TEXTURE;
} }
public static class Factory implements IRenderFactory<EntityDrachenlord> public static class Factory implements IRenderFactory<EntityDrachenlord> {
{
@Override @Override
public Render<? super EntityDrachenlord> createRenderFor(RenderManager manager) public Render<? super EntityDrachenlord> createRenderFor(RenderManager manager) {
{
return new RenderDrachenlord(manager); return new RenderDrachenlord(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityHolzstammhuhn; import mod.acgaming.spackenmobs.entities.EntityHolzstammhuhn;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderChicken; import net.minecraft.client.renderer.entity.RenderChicken;
@ -10,26 +11,23 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderHolzstammhuhn extends RenderChicken public class RenderHolzstammhuhn extends RenderChicken {
{ private static final ResourceLocation HOLZSTAMMHUHN_TEXTURE = new ResourceLocation(
private static final ResourceLocation HOLZSTAMMHUHN_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/holzstammhuhn.png"); "spackenmobs:textures/entities/holzstammhuhn.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderHolzstammhuhn(RenderManager renderManagerIn) public RenderHolzstammhuhn(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
} }
protected ResourceLocation getEntityTexture(EntityChicken entity) @Override
{ protected ResourceLocation getEntityTexture(EntityChicken entity) {
return HOLZSTAMMHUHN_TEXTURE; return HOLZSTAMMHUHN_TEXTURE;
} }
public static class Factory implements IRenderFactory<EntityHolzstammhuhn> public static class Factory implements IRenderFactory<EntityHolzstammhuhn> {
{
@Override @Override
public Render<? super EntityHolzstammhuhn> createRenderFor(RenderManager manager) public Render<? super EntityHolzstammhuhn> createRenderFor(RenderManager manager) {
{
return new RenderHolzstammhuhn(manager); return new RenderHolzstammhuhn(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityIslamist; import mod.acgaming.spackenmobs.entities.EntityIslamist;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderCreeper; import net.minecraft.client.renderer.entity.RenderCreeper;
@ -11,27 +12,24 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderIslamist extends RenderCreeper public class RenderIslamist extends RenderCreeper {
{ private static final ResourceLocation ISLAMIST_TEXTURE = new ResourceLocation(
private static final ResourceLocation ISLAMIST_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/islamist.png"); "spackenmobs:textures/entities/islamist.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderIslamist(RenderManager renderManagerIn) public RenderIslamist(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
this.addLayer(new LayerCreeperCharge(this)); this.addLayer(new LayerCreeperCharge(this));
} }
protected ResourceLocation getEntityTexture(EntityCreeper entity) @Override
{ protected ResourceLocation getEntityTexture(EntityCreeper entity) {
return ISLAMIST_TEXTURE; return ISLAMIST_TEXTURE;
} }
public static class Factory implements IRenderFactory<EntityIslamist> public static class Factory implements IRenderFactory<EntityIslamist> {
{
@Override @Override
public Render<? super EntityIslamist> createRenderFor(RenderManager manager) public Render<? super EntityIslamist> createRenderFor(RenderManager manager) {
{
return new RenderIslamist(manager); return new RenderIslamist(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityJens; import mod.acgaming.spackenmobs.entities.EntityJens;
import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
@ -10,26 +11,22 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderJens extends RenderBiped<EntityJens> public class RenderJens extends RenderBiped<EntityJens> {
{
private static final ResourceLocation JENS_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/jens.png"); private static final ResourceLocation JENS_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/jens.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderJens(RenderManager renderManagerIn) public RenderJens(RenderManager renderManagerIn) {
{
super(renderManagerIn, new ModelBiped(), 0.25F); super(renderManagerIn, new ModelBiped(), 0.25F);
} }
protected ResourceLocation getEntityTexture(EntityJens entity) @Override
{ protected ResourceLocation getEntityTexture(EntityJens entity) {
return JENS_TEXTURE; return JENS_TEXTURE;
} }
private static class Factory implements IRenderFactory<EntityJens> private static class Factory implements IRenderFactory<EntityJens> {
{
@Override @Override
public Render<? super EntityJens> createRenderFor(RenderManager manager) public Render<? super EntityJens> createRenderFor(RenderManager manager) {
{
return new RenderJens(manager); return new RenderJens(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityMarcellDAvis; import mod.acgaming.spackenmobs.entities.EntityMarcellDAvis;
import net.minecraft.client.model.ModelZombie; import net.minecraft.client.model.ModelZombie;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
@ -12,18 +13,16 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderMarcellDAvis extends RenderZombie public class RenderMarcellDAvis extends RenderZombie {
{ private static final ResourceLocation MARCELLDAVIS_TEXTURE = new ResourceLocation(
private static final ResourceLocation MARCELLDAVIS_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/marcell_davis.png"); "spackenmobs:textures/entities/marcell_davis.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderMarcellDAvis(RenderManager renderManagerIn) public RenderMarcellDAvis(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this) LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this) {
{ @Override
protected void initArmor() protected void initArmor() {
{
this.modelLeggings = new ModelZombie(0.5F, true); this.modelLeggings = new ModelZombie(0.5F, true);
this.modelArmor = new ModelZombie(1.0F, true); this.modelArmor = new ModelZombie(1.0F, true);
} }
@ -31,16 +30,14 @@ public class RenderMarcellDAvis extends RenderZombie
this.addLayer(layerbipedarmor); this.addLayer(layerbipedarmor);
} }
protected ResourceLocation getEntityTexture(EntityZombie entity) @Override
{ protected ResourceLocation getEntityTexture(EntityZombie entity) {
return MARCELLDAVIS_TEXTURE; return MARCELLDAVIS_TEXTURE;
} }
public static class Factory implements IRenderFactory<EntityMarcellDAvis> public static class Factory implements IRenderFactory<EntityMarcellDAvis> {
{
@Override @Override
public Render<? super EntityMarcellDAvis> createRenderFor(RenderManager manager) public Render<? super EntityMarcellDAvis> createRenderFor(RenderManager manager) {
{
return new RenderMarcellDAvis(manager); return new RenderMarcellDAvis(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityMrBean; import mod.acgaming.spackenmobs.entities.EntityMrBean;
import net.minecraft.client.model.ModelZombie; import net.minecraft.client.model.ModelZombie;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
@ -12,18 +13,16 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderMrBean extends RenderZombie public class RenderMrBean extends RenderZombie {
{ private static final ResourceLocation MRBEAN_TEXTURE = new ResourceLocation(
private static final ResourceLocation MRBEAN_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/mr_bean.png"); "spackenmobs:textures/entities/mr_bean.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderMrBean(RenderManager renderManagerIn) public RenderMrBean(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this) LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this) {
{ @Override
protected void initArmor() protected void initArmor() {
{
this.modelLeggings = new ModelZombie(0.5F, true); this.modelLeggings = new ModelZombie(0.5F, true);
this.modelArmor = new ModelZombie(1.0F, true); this.modelArmor = new ModelZombie(1.0F, true);
} }
@ -31,16 +30,14 @@ public class RenderMrBean extends RenderZombie
this.addLayer(layerbipedarmor); this.addLayer(layerbipedarmor);
} }
protected ResourceLocation getEntityTexture(EntityZombie entity) @Override
{ protected ResourceLocation getEntityTexture(EntityZombie entity) {
return MRBEAN_TEXTURE; return MRBEAN_TEXTURE;
} }
public static class Factory implements IRenderFactory<EntityMrBean> public static class Factory implements IRenderFactory<EntityMrBean> {
{
@Override @Override
public Render<? super EntityMrBean> createRenderFor(RenderManager manager) public Render<? super EntityMrBean> createRenderFor(RenderManager manager) {
{
return new RenderMrBean(manager); return new RenderMrBean(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntitySchalker; import mod.acgaming.spackenmobs.entities.EntitySchalker;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
@ -16,60 +17,67 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderSchalker extends RenderLiving<EntitySchalker> public class RenderSchalker extends RenderLiving<EntitySchalker> {
{ public static final ResourceLocation[] SCHALKER_TEXTURE = new ResourceLocation[] {
public static final ResourceLocation[] SCHALKER_TEXTURE = new ResourceLocation[] {new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png"), new ResourceLocation("spackenmobs:textures/entities/schalker.png")}; new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png"),
new ResourceLocation("spackenmobs:textures/entities/schalker.png") };
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderSchalker(RenderManager p_i47194_1_) public RenderSchalker(RenderManager p_i47194_1_) {
{
super(p_i47194_1_, new ModelSchalker(), 0.0F); super(p_i47194_1_, new ModelSchalker(), 0.0F);
this.addLayer(new RenderSchalker.HeadLayer()); this.addLayer(new RenderSchalker.HeadLayer());
} }
public ModelSchalker getMainModel() @Override
{ public ModelSchalker getMainModel() {
return (ModelSchalker) super.getMainModel(); return (ModelSchalker) super.getMainModel();
} }
public void doRender(EntitySchalker entity, double x, double y, double z, float entityYaw, float partialTicks) @Override
{ public void doRender(EntitySchalker entity, double x, double y, double z, float entityYaw, float partialTicks) {
int i = entity.getClientTeleportInterp(); int i = entity.getClientTeleportInterp();
if (i > 0 && entity.isAttachedToBlock()) if (i > 0 && entity.isAttachedToBlock()) {
{
BlockPos blockpos = entity.getAttachmentPos(); BlockPos blockpos = entity.getAttachmentPos();
BlockPos blockpos1 = entity.getOldAttachPos(); BlockPos blockpos1 = entity.getOldAttachPos();
double d0 = (double)((float)i - partialTicks) / 6.0D; double d0 = (i - partialTicks) / 6.0D;
d0 = d0 * d0; d0 = d0 * d0;
double d1 = (double)(blockpos.getX() - blockpos1.getX()) * d0; double d1 = (blockpos.getX() - blockpos1.getX()) * d0;
double d2 = (double)(blockpos.getY() - blockpos1.getY()) * d0; double d2 = (blockpos.getY() - blockpos1.getY()) * d0;
double d3 = (double)(blockpos.getZ() - blockpos1.getZ()) * d0; double d3 = (blockpos.getZ() - blockpos1.getZ()) * d0;
super.doRender(entity, x - d1, y - d2, z - d3, entityYaw, partialTicks); super.doRender(entity, x - d1, y - d2, z - d3, entityYaw, partialTicks);
} } else {
else
{
super.doRender(entity, x, y, z, entityYaw, partialTicks); super.doRender(entity, x, y, z, entityYaw, partialTicks);
} }
} }
public boolean shouldRender(EntitySchalker livingEntity, ICamera camera, double camX, double camY, double camZ) @Override
{ public boolean shouldRender(EntitySchalker livingEntity, ICamera camera, double camX, double camY, double camZ) {
if (super.shouldRender(livingEntity, camera, camX, camY, camZ)) if (super.shouldRender(livingEntity, camera, camX, camY, camZ)) {
{
return true; return true;
} } else {
else if (livingEntity.getClientTeleportInterp() > 0 && livingEntity.isAttachedToBlock()) {
{
if (livingEntity.getClientTeleportInterp() > 0 && livingEntity.isAttachedToBlock())
{
BlockPos blockpos = livingEntity.getOldAttachPos(); BlockPos blockpos = livingEntity.getOldAttachPos();
BlockPos blockpos1 = livingEntity.getAttachmentPos(); BlockPos blockpos1 = livingEntity.getAttachmentPos();
Vec3d vec3d = new Vec3d((double)blockpos1.getX(), (double)blockpos1.getY(), (double)blockpos1.getZ()); Vec3d vec3d = new Vec3d(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ());
Vec3d vec3d1 = new Vec3d((double)blockpos.getX(), (double)blockpos.getY(), (double)blockpos.getZ()); Vec3d vec3d1 = new Vec3d(blockpos.getX(), blockpos.getY(), blockpos.getZ());
if (camera.isBoundingBoxInFrustum(new AxisAlignedBB(vec3d1.x, vec3d1.y, vec3d1.z, vec3d.x, vec3d.y, vec3d.z))) if (camera.isBoundingBoxInFrustum(
{ new AxisAlignedBB(vec3d1.x, vec3d1.y, vec3d1.z, vec3d.x, vec3d.y, vec3d.z))) {
return true; return true;
} }
} }
@ -78,17 +86,17 @@ public class RenderSchalker extends RenderLiving<EntitySchalker>
} }
} }
protected ResourceLocation getEntityTexture(EntitySchalker entity) @Override
{ protected ResourceLocation getEntityTexture(EntitySchalker entity) {
return SCHALKER_TEXTURE[entity.getColor().getMetadata()]; return SCHALKER_TEXTURE[entity.getColor().getMetadata()];
} }
protected void applyRotations(EntitySchalker entityLiving, float p_77043_2_, float rotationYaw, float partialTicks) @Override
{ protected void applyRotations(EntitySchalker entityLiving, float p_77043_2_, float rotationYaw,
float partialTicks) {
super.applyRotations(entityLiving, p_77043_2_, rotationYaw, partialTicks); super.applyRotations(entityLiving, p_77043_2_, rotationYaw, partialTicks);
switch (entityLiving.getAttachmentFacing()) switch (entityLiving.getAttachmentFacing()) {
{
case DOWN: case DOWN:
default: default:
break; break;
@ -117,25 +125,23 @@ public class RenderSchalker extends RenderLiving<EntitySchalker>
} }
} }
protected void preRenderCallback(EntitySchalker entitylivingbaseIn, float partialTickTime) @Override
{ protected void preRenderCallback(EntitySchalker entitylivingbaseIn, float partialTickTime) {
float f = 0.999F; float f = 0.999F;
GlStateManager.scale(0.999F, 0.999F, 0.999F); GlStateManager.scale(0.999F, 0.999F, 0.999F);
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
class HeadLayer implements LayerRenderer<EntitySchalker> class HeadLayer implements LayerRenderer<EntitySchalker> {
{ private HeadLayer() {
private HeadLayer()
{
} }
public void doRenderLayer(EntitySchalker entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) @Override
{ public void doRenderLayer(EntitySchalker entitylivingbaseIn, float limbSwing, float limbSwingAmount,
float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
GlStateManager.pushMatrix(); GlStateManager.pushMatrix();
switch (entitylivingbaseIn.getAttachmentFacing()) switch (entitylivingbaseIn.getAttachmentFacing()) {
{
case DOWN: case DOWN:
default: default:
break; break;
@ -168,22 +174,21 @@ public class RenderSchalker extends RenderLiving<EntitySchalker>
ModelRenderer modelrenderer = RenderSchalker.this.getMainModel().head; ModelRenderer modelrenderer = RenderSchalker.this.getMainModel().head;
modelrenderer.rotateAngleY = netHeadYaw * 0.017453292F; modelrenderer.rotateAngleY = netHeadYaw * 0.017453292F;
modelrenderer.rotateAngleX = headPitch * 0.017453292F; modelrenderer.rotateAngleX = headPitch * 0.017453292F;
RenderSchalker.this.bindTexture(RenderSchalker.SCHALKER_TEXTURE[entitylivingbaseIn.getColor().getMetadata()]); RenderSchalker.this
.bindTexture(RenderSchalker.SCHALKER_TEXTURE[entitylivingbaseIn.getColor().getMetadata()]);
modelrenderer.render(scale); modelrenderer.render(scale);
GlStateManager.popMatrix(); GlStateManager.popMatrix();
} }
public boolean shouldCombineTextures() @Override
{ public boolean shouldCombineTextures() {
return false; return false;
} }
} }
public static class Factory implements IRenderFactory<EntitySchalker> public static class Factory implements IRenderFactory<EntitySchalker> {
{
@Override @Override
public Render<? super EntitySchalker> createRenderFor(RenderManager manager) public Render<? super EntitySchalker> createRenderFor(RenderManager manager) {
{
return new RenderSchalker(manager); return new RenderSchalker(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntitySmavaCreeper; import mod.acgaming.spackenmobs.entities.EntitySmavaCreeper;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderCreeper; import net.minecraft.client.renderer.entity.RenderCreeper;
@ -11,27 +12,24 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderSmavaCreeper extends RenderCreeper public class RenderSmavaCreeper extends RenderCreeper {
{ private static final ResourceLocation SMAVA_TEXTURE = new ResourceLocation(
private static final ResourceLocation SMAVA_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/smava_creeper.png"); "spackenmobs:textures/entities/smava_creeper.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderSmavaCreeper(RenderManager renderManagerIn) public RenderSmavaCreeper(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
this.addLayer(new LayerCreeperCharge(this)); this.addLayer(new LayerCreeperCharge(this));
} }
protected ResourceLocation getEntityTexture(EntityCreeper entity) @Override
{ protected ResourceLocation getEntityTexture(EntityCreeper entity) {
return SMAVA_TEXTURE; return SMAVA_TEXTURE;
} }
public static class Factory implements IRenderFactory<EntitySmavaCreeper> public static class Factory implements IRenderFactory<EntitySmavaCreeper> {
{
@Override @Override
public Render<? super EntitySmavaCreeper> createRenderFor(RenderManager manager) public Render<? super EntitySmavaCreeper> createRenderFor(RenderManager manager) {
{
return new RenderSmavaCreeper(manager); return new RenderSmavaCreeper(manager);
} }
} }

View file

@ -1,4 +1,5 @@
package mod.acgaming.spackenmobs.render; package mod.acgaming.spackenmobs.render;
import mod.acgaming.spackenmobs.entities.EntityWolfMZTE; import mod.acgaming.spackenmobs.entities.EntityWolfMZTE;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
@ -12,28 +13,28 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class RenderWolfMZTE extends RenderWolf public class RenderWolfMZTE extends RenderWolf {
{ private static final ResourceLocation WOLFMZTE_TEXTURE = new ResourceLocation(
private static final ResourceLocation WOLFMZTE_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/wolfmzte.png"); "spackenmobs:textures/entities/wolfmzte.png");
private static final ResourceLocation TAMED_WOLFMZTE_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/wolfmzte_tame.png"); private static final ResourceLocation TAMED_WOLFMZTE_TEXTURE = new ResourceLocation(
private static final ResourceLocation ANRGY_WOLFMZTE_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/wolfmzte_angry.png"); "spackenmobs:textures/entities/wolfmzte_tame.png");
private static final ResourceLocation ANRGY_WOLFMZTE_TEXTURE = new ResourceLocation(
"spackenmobs:textures/entities/wolfmzte_angry.png");
public static final Factory FACTORY = new Factory(); public static final Factory FACTORY = new Factory();
public RenderWolfMZTE(RenderManager renderManagerIn) public RenderWolfMZTE(RenderManager renderManagerIn) {
{
super(renderManagerIn); super(renderManagerIn);
this.addLayer(new LayerWolfCollar(this)); this.addLayer(new LayerWolfCollar(this));
} }
protected float handleRotationFloat(EntityWolf livingBase, float partialTicks) @Override
{ protected float handleRotationFloat(EntityWolf livingBase, float partialTicks) {
return livingBase.getTailRotation(); return livingBase.getTailRotation();
} }
public void doRender(EntityWolf entity, double x, double y, double z, float entityYaw, float partialTicks) @Override
{ public void doRender(EntityWolf entity, double x, double y, double z, float entityYaw, float partialTicks) {
if (entity.isWolfWet()) if (entity.isWolfWet()) {
{
float f = entity.getBrightness() * entity.getShadingWhileWet(partialTicks); float f = entity.getBrightness() * entity.getShadingWhileWet(partialTicks);
GlStateManager.color(f, f, f); GlStateManager.color(f, f, f);
} }
@ -41,23 +42,18 @@ public class RenderWolfMZTE extends RenderWolf
super.doRender(entity, x, y, z, entityYaw, partialTicks); super.doRender(entity, x, y, z, entityYaw, partialTicks);
} }
protected ResourceLocation getEntityTexture(EntityWolf entity) @Override
{ protected ResourceLocation getEntityTexture(EntityWolf entity) {
if (entity.isTamed()) if (entity.isTamed()) {
{
return TAMED_WOLFMZTE_TEXTURE; return TAMED_WOLFMZTE_TEXTURE;
} } else {
else
{
return entity.isAngry() ? ANRGY_WOLFMZTE_TEXTURE : WOLFMZTE_TEXTURE; return entity.isAngry() ? ANRGY_WOLFMZTE_TEXTURE : WOLFMZTE_TEXTURE;
} }
} }
public static class Factory implements IRenderFactory<EntityWolfMZTE> public static class Factory implements IRenderFactory<EntityWolfMZTE> {
{
@Override @Override
public Render<? super EntityWolfMZTE> createRenderFor(RenderManager manager) public Render<? super EntityWolfMZTE> createRenderFor(RenderManager manager) {
{
return new RenderWolfMZTE(manager); return new RenderWolfMZTE(manager);
} }
} }