Auto-formatting "fix" and additional stuff

Adapt auto-formatting to own weird style
Re-added missing Jens AI and loot
Fixed creative tab
This commit is contained in:
ACGaming 2020-08-23 15:38:40 +02:00
parent bac6384bff
commit 68b777bffb
38 changed files with 3063 additions and 2394 deletions

View file

@ -12,33 +12,38 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@Mod(modid = "spackenmobs", version = "RC1", acceptedMinecraftVersions = "[1.12.2]") @Mod(modid = "spackenmobs", version = "RC1", acceptedMinecraftVersions = "[1.12.2]")
public class Spackenmobs { public class Spackenmobs
public static final String MODID = "spackenmobs"; {
public static final String VERSION = "RC1"; public static final String MODID = "spackenmobs";
public static final String VERSION = "RC1";
public static final CreativeTabs SPACKENMOBS_TAB = new SpackenmobsTab(); public static final CreativeTabs SPACKENMOBS_TAB = new SpackenmobsTab("tabSpackenmobs");
@Instance @Instance
public static Spackenmobs instance; public static Spackenmobs instance;
@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

@ -6,14 +6,17 @@ 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() { {
super(Spackenmobs.MODID); public SpackenmobsTab(String name)
} {
super(Spackenmobs.MODID + "." + name);
}
@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

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

@ -6,23 +6,28 @@ 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) { {
super(worldIn); public EntityApoRed(World worldIn)
} {
super(worldIn);
}
@Override @Override
protected SoundEvent getAmbientSound() { protected SoundEvent getAmbientSound()
return ModSoundEvents.ENTITY_APORED_AMBIENT; {
} return ModSoundEvents.ENTITY_APORED_AMBIENT;
}
@Override @Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn) { protected SoundEvent getHurtSound(DamageSource damageSourceIn)
return ModSoundEvents.ENTITY_APORED_HURT; {
} return ModSoundEvents.ENTITY_APORED_HURT;
}
@Override @Override
protected SoundEvent getDeathSound() { protected SoundEvent getDeathSound()
return ModSoundEvents.ENTITY_APORED_DEATH; {
} return ModSoundEvents.ENTITY_APORED_DEATH;
}
} }

View file

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

View file

@ -26,55 +26,64 @@ 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); {
this.setSize(0.4F, 0.7F); super(worldIn);
this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000; this.setSize(0.4F, 0.7F);
this.setPathPriority(PathNodeType.WATER, 0.0F); this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000;
} this.setPathPriority(PathNodeType.WATER, 0.0F);
}
@Override @Override
protected void initEntityAI() { protected void initEntityAI()
this.tasks.addTask(0, new EntityAISwimming(this)); {
this.tasks.addTask(1, new EntityAIPanic(this, 1.4D)); this.tasks.addTask(0, new EntityAISwimming(this));
this.tasks.addTask(2, new EntityAIMate(this, 1.0D)); this.tasks.addTask(1, new EntityAIPanic(this, 1.4D));
this.tasks.addTask(3, new EntityAITempt(this, 1.0D, false, TEMPTATION_ITEMS)); this.tasks.addTask(2, new EntityAIMate(this, 1.0D));
this.tasks.addTask(4, new EntityAIFollowParent(this, 1.1D)); this.tasks.addTask(3, new EntityAITempt(this, 1.0D, false, TEMPTATION_ITEMS));
this.tasks.addTask(5, new EntityAIWanderAvoidWater(this, 1.0D)); this.tasks.addTask(4, new EntityAIFollowParent(this, 1.1D));
this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(5, new EntityAIWanderAvoidWater(this, 1.0D));
this.tasks.addTask(7, new EntityAILookIdle(this)); this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
} this.tasks.addTask(7, new EntityAILookIdle(this));
}
@Override @Override
public boolean isBreedingItem(ItemStack stack) { public boolean isBreedingItem(ItemStack stack)
return TEMPTATION_ITEMS.contains(stack.getItem()); {
} return TEMPTATION_ITEMS.contains(stack.getItem());
}
@Override @Override
protected SoundEvent getAmbientSound() { protected SoundEvent getAmbientSound()
return SoundEvents.BLOCK_WOOD_PLACE; {
} return SoundEvents.BLOCK_WOOD_PLACE;
}
@Override @Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn) { protected SoundEvent getHurtSound(DamageSource damageSourceIn)
return SoundEvents.BLOCK_WOOD_HIT; {
} return SoundEvents.BLOCK_WOOD_HIT;
}
@Override @Override
protected SoundEvent getDeathSound() { protected SoundEvent getDeathSound()
return SoundEvents.BLOCK_WOOD_BREAK; {
} return SoundEvents.BLOCK_WOOD_BREAK;
}
@Override @Override
protected void playStepSound(BlockPos pos, Block blockIn) { 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);
}
@Override @Override
public EntityHolzstammhuhn createChild(EntityAgeable ageable) { public EntityHolzstammhuhn createChild(EntityAgeable ageable)
return new EntityHolzstammhuhn(this.world); {
} return new EntityHolzstammhuhn(this.world);
}
} }

View file

@ -6,66 +6,77 @@ 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 timeSinceIgnited; private int lastActiveTime;
private int fuseTime = 30; private int timeSinceIgnited;
private int explosionRadius = 6; private int fuseTime = 30;
private int explosionRadius = 6;
public EntityIslamist(World worldIn) { public EntityIslamist(World worldIn)
super(worldIn); {
this.setSize(0.6F, 1.7F); super(worldIn);
} this.setSize(0.6F, 1.7F);
@Override
public void onUpdate() {
if (this.isEntityAlive()) {
this.lastActiveTime = this.timeSinceIgnited;
if (this.hasIgnited()) {
this.setCreeperState(1);
}
int i = this.getCreeperState();
if (i > 0 && this.timeSinceIgnited == 0) {
this.playSound(ModSoundEvents.ENTITY_ISLAMIST_FUSE, 1.0F, 0.5F);
}
this.timeSinceIgnited += i;
if (this.timeSinceIgnited < 0) {
this.timeSinceIgnited = 0;
}
if (this.timeSinceIgnited >= this.fuseTime) {
this.timeSinceIgnited = this.fuseTime;
this.explode();
}
} }
super.onUpdate(); @Override
} public void onUpdate()
{
if (this.isEntityAlive())
{
this.lastActiveTime = this.timeSinceIgnited;
private void explode() { if (this.hasIgnited())
if (!this.world.isRemote) { {
boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this); this.setCreeperState(1);
float f = this.getPowered() ? 2.0F : 1.0F; }
this.dead = true;
this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_ISLAMIST_BLOW, getSoundCategory(), 1.0F, int i = this.getCreeperState();
1.0F);
this.world.createExplosion(this, this.posX, this.posY, this.posZ, this.explosionRadius * f, flag); if (i > 0 && this.timeSinceIgnited == 0)
this.setDead(); {
this.playSound(ModSoundEvents.ENTITY_ISLAMIST_FUSE, 1.0F, 0.5F);
}
this.timeSinceIgnited += i;
if (this.timeSinceIgnited < 0)
{
this.timeSinceIgnited = 0;
}
if (this.timeSinceIgnited >= this.fuseTime)
{
this.timeSinceIgnited = this.fuseTime;
this.explode();
}
}
super.onUpdate();
} }
}
@Override private void explode()
protected SoundEvent getHurtSound(DamageSource damageSourceIn) { {
return ModSoundEvents.ENTITY_ISLAMIST_HURT; if (!this.world.isRemote)
} {
boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this);
float f = this.getPowered() ? 2.0F : 1.0F;
this.dead = true;
this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_ISLAMIST_BLOW, getSoundCategory(), 1.0F, 1.0F);
this.world.createExplosion(this, this.posX, this.posY, this.posZ, this.explosionRadius * f, flag);
this.setDead();
}
}
@Override @Override
protected SoundEvent getAmbientSound() { protected SoundEvent getHurtSound(DamageSource damageSourceIn)
return ModSoundEvents.ENTITY_ISLAMIST_AMBIENT; {
} return ModSoundEvents.ENTITY_ISLAMIST_HURT;
}
@Override
protected SoundEvent getAmbientSound()
{
return ModSoundEvents.ENTITY_ISLAMIST_AMBIENT;
}
} }

View file

@ -2,13 +2,17 @@ package mod.acgaming.spackenmobs.entities;
import java.util.Set; import java.util.Set;
import javax.annotation.Nullable;
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.ModLootTableList;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
import net.minecraft.client.Minecraft; 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.EntityLiving;
import net.minecraft.entity.SharedMonsterAttributes; 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;
@ -18,148 +22,365 @@ import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAITempt; import net.minecraft.entity.ai.EntityAITempt;
import net.minecraft.entity.ai.EntityAIWanderAvoidWater; import net.minecraft.entity.ai.EntityAIWanderAvoidWater;
import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.ai.EntityAIWatchClosest;
import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityPig;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraft.util.datafix.DataFixer;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityJens extends EntityAnimal { public class EntityJens extends EntityPig
private static final Set<Item> TEMPTATION_ITEMS = Sets.newHashSet(ModItems.RAM); {
private static final Set<Item> FISH_ITEMS = Sets.newHashSet(Items.FISH); private static final DataParameter<Boolean> SADDLED = EntityDataManager.<Boolean>createKey(EntityJens.class, DataSerializers.BOOLEAN);
private static final DataParameter<Integer> BOOST_TIME = EntityDataManager.<Integer>createKey(EntityJens.class, DataSerializers.VARINT);
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; private boolean boosting;
public int time_until_surstroemming = 0; private int boostTime;
private int totalBoostTime;
public boolean yummy_in_tummy = false;
public int time_until_surstroemming = 0;
Minecraft MINECRAFT = Minecraft.getMinecraft(); Minecraft MINECRAFT = Minecraft.getMinecraft();
public EntityJens(World worldIn) { public EntityJens(World worldIn)
super(worldIn); {
setSize(0.6F, 2.2F); super(worldIn);
} setSize(0.6F, 2.2F);
@Override
protected void initEntityAI() {
this.tasks.addTask(0, new EntityAISwimming(this));
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(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(6, new EntityAIWanderAvoidWater(this, 1.0D));
this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
this.tasks.addTask(8, new EntityAILookIdle(this));
}
@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());
}
public boolean isFishItem(ItemStack stack) {
return FISH_ITEMS.contains(stack.getItem());
}
@Override
public boolean canBeSteered() {
Entity entity = this.getControllingPassenger();
if (!(entity instanceof EntityPlayer)) {
return false;
} else {
EntityPlayer entityplayer = (EntityPlayer) entity;
return entityplayer.getHeldItemMainhand().getItem() == ModItems.RAM_ON_A_STICK
|| entityplayer.getHeldItemOffhand().getItem() == ModItems.RAM_ON_A_STICK;
}
}
@Override
public EntityJens createChild(EntityAgeable ageable) {
return new EntityJens(this.world);
}
@Override
public boolean processInteract(EntityPlayer player, EnumHand hand) {
ItemStack itemstack = player.getHeldItem(hand);
if (itemstack.getItem() == Items.FISH && !player.capabilities.isCreativeMode && !this.isChild()
&& this.yummy_in_tummy == false) {
itemstack.shrink(1);
digestFish();
return true;
} else {
return super.processInteract(player, hand);
}
}
@Override
public void onLivingUpdate() {
super.onLivingUpdate();
if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming > 0) {
this.time_until_surstroemming--;
} }
if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming <= 0) { @Override
for (int i = 0; i < 7; ++i) { protected void initEntityAI()
double d0 = this.rand.nextGaussian() * 0.02D; {
double d1 = this.rand.nextGaussian() * 0.02D; this.tasks.addTask(0, new EntityAISwimming(this));
double d2 = this.rand.nextGaussian() * 0.02D; this.tasks.addTask(1, new EntityAIPanic(this, 1.25D));
MINECRAFT.world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, this.tasks.addTask(2, new EntityAIEatDroppedFish(this));
this.posX + this.rand.nextFloat() * this.width * 2.0F - this.width, this.tasks.addTask(3, new EntityAIMate(this, 1.0D));
this.posY + 0.5D + this.rand.nextFloat() * this.height, this.tasks.addTask(4, new EntityAITempt(this, 1.2D, false, TEMPTATION_ITEMS));
this.posZ + this.rand.nextFloat() * this.width * 2.0F - this.width, d0, d1, d2); 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.playSound(ModSoundEvents.ENTITY_JENS_POOP, 1.0F, this.tasks.addTask(6, new EntityAIWanderAvoidWater(this, 1.0D));
(this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
this.dropItem(ModItems.SURSTROEMMING, 1); this.tasks.addTask(8, new EntityAILookIdle(this));
this.yummy_in_tummy = false;
this.time_until_surstroemming = 0;
} }
}
public void digestFish() { @Override
this.playSound(ModSoundEvents.ENTITY_JENS_EAT, 1.0F, 1.0F); protected void applyEntityAttributes()
{
this.yummy_in_tummy = true; super.applyEntityAttributes();
this.time_until_surstroemming = 200; this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D);
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.25D);
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 @Override
protected SoundEvent getAmbientSound() { @Nullable
return ModSoundEvents.ENTITY_JENS_AMBIENT; public Entity getControllingPassenger()
} {
return this.getPassengers().isEmpty() ? null : (Entity) this.getPassengers().get(0);
}
@Override @Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn) { public boolean canBeSteered()
return ModSoundEvents.ENTITY_JENS_HURT; {
} Entity entity = this.getControllingPassenger();
@Override if (!(entity instanceof EntityPlayer))
protected SoundEvent getDeathSound() { {
return ModSoundEvents.ENTITY_JENS_DEATH; return false;
} }
else
{
EntityPlayer entityplayer = (EntityPlayer) entity;
return entityplayer.getHeldItemMainhand().getItem() == ModItems.RAM_ON_A_STICK || entityplayer.getHeldItemOffhand().getItem() == ModItems.RAM_ON_A_STICK;
}
}
@Override
public void notifyDataManagerChange(DataParameter<?> key)
{
if (BOOST_TIME.equals(key) && this.world.isRemote)
{
this.boosting = true;
this.boostTime = 0;
this.totalBoostTime = this.dataManager.get(BOOST_TIME).intValue();
}
super.notifyDataManagerChange(key);
}
@Override
protected void entityInit()
{
super.entityInit();
this.dataManager.register(SADDLED, Boolean.valueOf(false));
this.dataManager.register(BOOST_TIME, Integer.valueOf(0));
}
public static void registerFixesJens(DataFixer fixer)
{
EntityLiving.registerFixesMob(fixer, EntityJens.class);
}
@Override
public void writeEntityToNBT(NBTTagCompound compound)
{
super.writeEntityToNBT(compound);
compound.setBoolean("Saddle", this.getSaddled());
}
@Override
public void readEntityFromNBT(NBTTagCompound compound)
{
super.readEntityFromNBT(compound);
this.setSaddled(compound.getBoolean("Saddle"));
}
@Override
public void onDeath(DamageSource cause)
{
super.onDeath(cause);
if (!this.world.isRemote)
{
if (this.getSaddled())
{
this.dropItem(Items.SADDLE, 1);
}
}
}
@Override
public boolean getSaddled()
{
return this.dataManager.get(SADDLED).booleanValue();
}
@Override
public void setSaddled(boolean saddled)
{
if (saddled)
{
this.dataManager.set(SADDLED, Boolean.valueOf(true));
}
else
{
this.dataManager.set(SADDLED, Boolean.valueOf(false));
}
}
@Override
public boolean isBreedingItem(ItemStack stack)
{
return TEMPTATION_ITEMS.contains(stack.getItem());
}
public boolean isFishItem(ItemStack stack)
{
return FISH_ITEMS.contains(stack.getItem());
}
@Override
public EntityJens createChild(EntityAgeable ageable)
{
return new EntityJens(this.world);
}
@Override
public boolean processInteract(EntityPlayer player, EnumHand hand)
{
if (!super.processInteract(player, hand))
{
ItemStack itemstack = player.getHeldItem(hand);
if (itemstack.getItem() == Items.FISH && !player.capabilities.isCreativeMode && !this.isChild() && this.yummy_in_tummy == false)
{
itemstack.shrink(1);
digestFish();
return true;
}
else if (itemstack.getItem() == Items.NAME_TAG)
{
itemstack.interactWithEntity(player, this, hand);
return true;
}
else if (this.getSaddled() && !this.isBeingRidden())
{
if (!this.world.isRemote)
{
player.startRiding(this);
}
return true;
}
else if (itemstack.getItem() == Items.SADDLE)
{
itemstack.interactWithEntity(player, this, hand);
return true;
}
else
{
return false;
}
}
else
{
return true;
}
}
@Override
public void onLivingUpdate()
{
super.onLivingUpdate();
if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming > 0)
{
this.time_until_surstroemming--;
}
if (!this.world.isRemote && this.yummy_in_tummy == true && this.time_until_surstroemming <= 0)
{
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.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.yummy_in_tummy = false;
this.time_until_surstroemming = 0;
}
}
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
public void travel(float strafe, float vertical, float forward)
{
Entity entity = this.getPassengers().isEmpty() ? null : (Entity) this.getPassengers().get(0);
if (this.isBeingRidden() && this.canBeSteered())
{
this.rotationYaw = entity.rotationYaw;
this.prevRotationYaw = this.rotationYaw;
this.rotationPitch = entity.rotationPitch * 0.5F;
this.setRotation(this.rotationYaw, this.rotationPitch);
this.renderYawOffset = this.rotationYaw;
this.rotationYawHead = this.rotationYaw;
this.stepHeight = 1.0F;
this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F;
if (this.boosting && this.boostTime++ > this.totalBoostTime)
{
this.boosting = false;
}
if (this.canPassengerSteer())
{
float f = (float) this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue() * 0.225F;
if (this.boosting)
{
f += f * 1.15F * MathHelper.sin((float) this.boostTime / (float) this.totalBoostTime * (float) Math.PI);
}
this.setAIMoveSpeed(f);
super.travel(0.0F, 0.0F, 1.0F);
}
else
{
this.motionX = 0.0D;
this.motionY = 0.0D;
this.motionZ = 0.0D;
}
this.prevLimbSwingAmount = this.limbSwingAmount;
double d1 = this.posX - this.prevPosX;
double d0 = this.posZ - this.prevPosZ;
float f1 = MathHelper.sqrt(d1 * d1 + d0 * d0) * 4.0F;
if (f1 > 1.0F)
{
f1 = 1.0F;
}
this.limbSwingAmount += (f1 - this.limbSwingAmount) * 0.4F;
this.limbSwing += this.limbSwingAmount;
}
else
{
this.stepHeight = 0.5F;
this.jumpMovementFactor = 0.02F;
super.travel(strafe, vertical, forward);
}
}
@Override
public boolean boost()
{
if (this.boosting)
{
return false;
}
else
{
this.boosting = true;
this.boostTime = 0;
this.totalBoostTime = this.getRNG().nextInt(841) + 140;
this.getDataManager().set(BOOST_TIME, Integer.valueOf(this.totalBoostTime));
return true;
}
}
@Override
protected ResourceLocation getLootTable()
{
return ModLootTableList.ENTITIES_JENS;
}
@Override
protected SoundEvent getAmbientSound()
{
return ModSoundEvents.ENTITY_JENS_AMBIENT;
}
@Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn)
{
return ModSoundEvents.ENTITY_JENS_HURT;
}
@Override
protected SoundEvent getDeathSound()
{
return ModSoundEvents.ENTITY_JENS_DEATH;
}
} }

View file

@ -6,24 +6,29 @@ 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) { {
super(worldIn); public EntityMarcellDAvis(World worldIn)
this.setSize(0.6F, 1.95F); {
} super(worldIn);
this.setSize(0.6F, 1.95F);
}
@Override @Override
protected SoundEvent getAmbientSound() { protected SoundEvent getAmbientSound()
return ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT; {
} return ModSoundEvents.ENTITY_MARCELLDAVIS_AMBIENT;
}
@Override @Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn) { protected SoundEvent getHurtSound(DamageSource damageSourceIn)
return ModSoundEvents.ENTITY_MARCELLDAVIS_HURT; {
} return ModSoundEvents.ENTITY_MARCELLDAVIS_HURT;
}
@Override @Override
protected SoundEvent getDeathSound() { protected SoundEvent getDeathSound()
return ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH; {
} return ModSoundEvents.ENTITY_MARCELLDAVIS_DEATH;
}
} }

View file

@ -6,24 +6,29 @@ 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) { {
super(worldIn); public EntityMrBean(World worldIn)
this.setSize(0.6F, 1.95F); {
} super(worldIn);
this.setSize(0.6F, 1.95F);
}
@Override @Override
protected SoundEvent getAmbientSound() { protected SoundEvent getAmbientSound()
return ModSoundEvents.ENTITY_MRBEAN_AMBIENT; {
} return ModSoundEvents.ENTITY_MRBEAN_AMBIENT;
}
@Override @Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn) { protected SoundEvent getHurtSound(DamageSource damageSourceIn)
return ModSoundEvents.ENTITY_MRBEAN_HURT; {
} return ModSoundEvents.ENTITY_MRBEAN_HURT;
}
@Override @Override
protected SoundEvent getDeathSound() { protected SoundEvent getDeathSound()
return ModSoundEvents.ENTITY_MRBEAN_DEATH; {
} return ModSoundEvents.ENTITY_MRBEAN_DEATH;
}
} }

View file

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

View file

@ -7,67 +7,78 @@ 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 timeSinceIgnited; private int lastActiveTime;
private int fuseTime = 20; private int timeSinceIgnited;
private int explosionRadius = 6; private int fuseTime = 20;
private int explosionRadius = 6;
public EntitySmavaCreeper(World worldIn) { public EntitySmavaCreeper(World worldIn)
super(worldIn); {
setSize(0.6F, 1.7F); super(worldIn);
getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.5D); setSize(0.6F, 1.7F);
} getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.5D);
@Override
public void onUpdate() {
if (this.isEntityAlive()) {
this.lastActiveTime = this.timeSinceIgnited;
if (this.hasIgnited()) {
this.setCreeperState(1);
}
int i = this.getCreeperState();
if (i > 0 && this.timeSinceIgnited == 0) {
this.playSound(ModSoundEvents.ENTITY_SMAVACREEPER_FUSE, 1.0F, 1.0F);
}
this.timeSinceIgnited += i;
if (this.timeSinceIgnited < 0) {
this.timeSinceIgnited = 0;
}
if (this.timeSinceIgnited >= this.fuseTime) {
this.timeSinceIgnited = this.fuseTime;
this.explode();
}
} }
super.onUpdate(); @Override
} public void onUpdate()
{
if (this.isEntityAlive())
{
this.lastActiveTime = this.timeSinceIgnited;
private void explode() { if (this.hasIgnited())
if (!this.world.isRemote) { {
boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this); this.setCreeperState(1);
float f = this.getPowered() ? 2.0F : 1.0F; }
this.dead = true;
this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_SMAVACREEPER_BLOW, getSoundCategory(), 5.0F, int i = this.getCreeperState();
1.0F);
this.world.createExplosion(this, this.posX, this.posY, this.posZ, this.explosionRadius * f, flag); if (i > 0 && this.timeSinceIgnited == 0)
this.setDead(); {
this.playSound(ModSoundEvents.ENTITY_SMAVACREEPER_FUSE, 1.0F, 1.0F);
}
this.timeSinceIgnited += i;
if (this.timeSinceIgnited < 0)
{
this.timeSinceIgnited = 0;
}
if (this.timeSinceIgnited >= this.fuseTime)
{
this.timeSinceIgnited = this.fuseTime;
this.explode();
}
}
super.onUpdate();
} }
}
@Override private void explode()
protected SoundEvent getHurtSound(DamageSource damageSourceIn) { {
return ModSoundEvents.ENTITY_SMAVACREEPER_HURT; if (!this.world.isRemote)
} {
boolean flag = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.world, this);
float f = this.getPowered() ? 2.0F : 1.0F;
this.dead = true;
this.world.playSound(null, getPosition(), ModSoundEvents.ENTITY_SMAVACREEPER_BLOW, getSoundCategory(), 5.0F, 1.0F);
this.world.createExplosion(this, this.posX, this.posY, this.posZ, this.explosionRadius * f, flag);
this.setDead();
}
}
@Override @Override
protected SoundEvent getAmbientSound() { protected SoundEvent getHurtSound(DamageSource damageSourceIn)
return ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT; {
} return ModSoundEvents.ENTITY_SMAVACREEPER_HURT;
}
@Override
protected SoundEvent getAmbientSound()
{
return ModSoundEvents.ENTITY_SMAVACREEPER_AMBIENT;
}
} }

View file

@ -18,123 +18,153 @@ 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, {
DataSerializers.FLOAT); private static final DataParameter<Float> DATA_HEALTH_ID = EntityDataManager.<Float>createKey(EntityWolf.class, DataSerializers.FLOAT);
private static final DataParameter<Boolean> BEGGING = EntityDataManager.<Boolean>createKey(EntityWolf.class, private static final DataParameter<Boolean> BEGGING = EntityDataManager.<Boolean>createKey(EntityWolf.class, DataSerializers.BOOLEAN);
DataSerializers.BOOLEAN); private static final DataParameter<Integer> COLLAR_COLOR = EntityDataManager.<Integer>createKey(EntityWolf.class, DataSerializers.VARINT);
private static final DataParameter<Integer> COLLAR_COLOR = EntityDataManager.<Integer>createKey(EntityWolf.class, private float headRotationCourse;
DataSerializers.VARINT); private float headRotationCourseOld;
private float headRotationCourse; private boolean isWet;
private float headRotationCourseOld; private boolean isShaking;
private boolean isWet; private float timeWolfIsShaking;
private boolean isShaking; private float prevTimeWolfIsShaking;
private float timeWolfIsShaking;
private float prevTimeWolfIsShaking;
public EntityWolfMZTE(World worldIn) { public EntityWolfMZTE(World worldIn)
super(worldIn); {
this.setSize(0.6F, 0.85F); super(worldIn);
this.setTamed(false); this.setSize(0.6F, 0.85F);
} this.setTamed(false);
@Override
public EntityWolfMZTE createChild(EntityAgeable ageable) {
EntityWolfMZTE entitywolfmzte = new EntityWolfMZTE(this.world);
UUID uuid = this.getOwnerId();
if (uuid != null) {
entitywolfmzte.setOwnerId(uuid);
entitywolfmzte.setTamed(true);
} }
return entitywolfmzte; @Override
} public EntityWolfMZTE createChild(EntityAgeable ageable)
{
EntityWolfMZTE entitywolfmzte = new EntityWolfMZTE(this.world);
UUID uuid = this.getOwnerId();
@Override if (uuid != null)
public boolean canMateWith(EntityAnimal otherAnimal) { {
if (otherAnimal == this) { entitywolfmzte.setOwnerId(uuid);
return false; entitywolfmzte.setTamed(true);
} else if (!this.isTamed()) {
return false;
} else if (!(otherAnimal instanceof EntityWolfMZTE)) {
return false;
} else {
EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) otherAnimal;
if (!entitywolfmzte.isTamed()) {
return false;
} else if (entitywolfmzte.isSitting()) {
return false;
} else {
return this.isInLove() && entitywolfmzte.isInLove();
}
}
}
@Override
public boolean shouldAttackEntity(EntityLivingBase target, EntityLivingBase owner) {
if (!(target instanceof EntityCreeper) && !(target instanceof EntityGhast)) {
if (target instanceof EntityWolfMZTE) {
EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) target;
if (entitywolfmzte.isTamed() && entitywolfmzte.getOwner() == owner) {
return false;
} }
}
if (target instanceof EntityPlayer && owner instanceof EntityPlayer return entitywolfmzte;
&& !((EntityPlayer) owner).canAttackPlayer((EntityPlayer) target)) {
return false;
} else {
return !(target instanceof AbstractHorse) || !((AbstractHorse) target).isTame();
}
} else {
return false;
}
}
class AIAvoidEntity<T extends Entity> extends EntityAIAvoidEntity<T> {
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_) {
super(wolfIn, p_i47251_3_, p_i47251_4_, p_i47251_5_, p_i47251_7_);
this.wolf = wolfIn;
} }
/**
* Returns whether the EntityAIBase should begin execution.
*/
@Override @Override
public boolean shouldExecute() { public boolean canMateWith(EntityAnimal otherAnimal)
if (super.shouldExecute() && this.closestLivingEntity instanceof EntityLlama) { {
return !this.wolf.isTamed() && this.avoidLlama((EntityLlama) this.closestLivingEntity); if (otherAnimal == this)
} else { {
return false; return false;
} }
else if (!this.isTamed())
{
return false;
}
else if (!(otherAnimal instanceof EntityWolfMZTE))
{
return false;
}
else
{
EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) otherAnimal;
if (!entitywolfmzte.isTamed())
{
return false;
}
else if (entitywolfmzte.isSitting())
{
return false;
}
else
{
return this.isInLove() && entitywolfmzte.isInLove();
}
}
} }
private boolean avoidLlama(EntityLlama p_190854_1_) {
return p_190854_1_.getStrength() >= EntityWolfMZTE.this.rand.nextInt(5);
}
/**
* Execute a one shot task or start executing a continuous task
*/
@Override @Override
public void startExecuting() { public boolean shouldAttackEntity(EntityLivingBase target, EntityLivingBase owner)
EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null); {
super.startExecuting(); if (!(target instanceof EntityCreeper) && !(target instanceof EntityGhast))
{
if (target instanceof EntityWolfMZTE)
{
EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) target;
if (entitywolfmzte.isTamed() && entitywolfmzte.getOwner() == owner)
{
return false;
}
}
if (target instanceof EntityPlayer && owner instanceof EntityPlayer && !((EntityPlayer) owner).canAttackPlayer((EntityPlayer) target))
{
return false;
}
else
{
return !(target instanceof AbstractHorse) || !((AbstractHorse) target).isTame();
}
}
else
{
return false;
}
} }
/** class AIAvoidEntity<T extends Entity> extends EntityAIAvoidEntity<T>
* Keep ticking a continuous task that has already been started {
*/ private final EntityWolfMZTE wolf;
@Override
public void updateTask() { public AIAvoidEntity(EntityWolfMZTE wolfIn, Class<T> p_i47251_3_, float p_i47251_4_, double p_i47251_5_, double p_i47251_7_)
EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null); {
super.updateTask(); super(wolfIn, p_i47251_3_, p_i47251_4_, p_i47251_5_, p_i47251_7_);
this.wolf = wolfIn;
}
/**
* Returns whether the EntityAIBase should begin execution.
*/
@Override
public boolean shouldExecute()
{
if (super.shouldExecute() && this.closestLivingEntity instanceof EntityLlama)
{
return !this.wolf.isTamed() && this.avoidLlama((EntityLlama) this.closestLivingEntity);
}
else
{
return false;
}
}
private boolean avoidLlama(EntityLlama p_190854_1_)
{
return p_190854_1_.getStrength() >= EntityWolfMZTE.this.rand.nextInt(5);
}
/**
* Execute a one shot task or start executing a continuous task
*/
@Override
public void startExecuting()
{
EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null);
super.startExecuting();
}
/**
* Keep ticking a continuous task that has already been started
*/
@Override
public void updateTask()
{
EntityWolfMZTE.this.setAttackTarget((EntityLivingBase) null);
super.updateTask();
}
} }
}
} }

View file

@ -8,15 +8,18 @@ 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) { {
setRegistryName(name); public ItemBase(String name, CreativeTabs tab)
setUnlocalizedName(Spackenmobs.MODID + "." + name); {
setCreativeTab(tab); setRegistryName(name);
} setUnlocalizedName(Spackenmobs.MODID + "." + name);
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

@ -2,11 +2,13 @@ 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) { {
super(isBadPotion, color); public ItemPotion(String name, boolean isBadPotion, int color, int iconIndexX, int iconIndexY)
setPotionName("effect." + name); {
setIconIndex(iconIndexX, iconIndexY); super(isBadPotion, color);
setRegistryName(name); setPotionName("effect." + name);
} setIconIndex(iconIndexX, iconIndexY);
setRegistryName(name);
}
} }

View file

@ -9,31 +9,38 @@ 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<>(); {
for (Biome b : Biome.REGISTRY) { List<Biome> biomes = new ArrayList<>();
List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.MONSTER); for (Biome b : Biome.REGISTRY)
for (SpawnListEntry e : spawnList) {
if (e.entityClass == clazz) { List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.MONSTER);
biomes.add(b); for (SpawnListEntry e : spawnList)
break; if (e.entityClass == clazz)
{
biomes.add(b);
break;
}
} }
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<>(); {
for (Biome b : Biome.REGISTRY) { List<Biome> biomes = new ArrayList<>();
List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.CREATURE); for (Biome b : Biome.REGISTRY)
for (SpawnListEntry e : spawnList) {
if (e.entityClass == clazz) { List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.CREATURE);
biomes.add(b); for (SpawnListEntry e : spawnList)
break; if (e.entityClass == clazz)
{
biomes.add(b);
break;
}
} }
return biomes.toArray(new Biome[0]);
} }
return biomes.toArray(new Biome[0]);
}
} }

View file

@ -22,17 +22,19 @@ 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() { {
RenderingRegistry.registerEntityRenderingHandler(EntityApoRed.class, RenderApoRed.FACTORY); public static void initModels()
RenderingRegistry.registerEntityRenderingHandler(EntityDrachenlord.class, RenderDrachenlord.FACTORY); {
RenderingRegistry.registerEntityRenderingHandler(EntityIslamist.class, RenderIslamist.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityApoRed.class, RenderApoRed.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityJens.class, RenderJens.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityDrachenlord.class, RenderDrachenlord.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityMarcellDAvis.class, RenderMarcellDAvis.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityIslamist.class, RenderIslamist.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityMrBean.class, RenderMrBean.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityJens.class, RenderJens.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntitySchalker.class, RenderSchalker.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMarcellDAvis.class, RenderMarcellDAvis.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntitySmavaCreeper.class, RenderSmavaCreeper.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntityMrBean.class, RenderMrBean.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityWolfMZTE.class, RenderWolfMZTE.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntitySchalker.class, RenderSchalker.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityHolzstammhuhn.class, RenderHolzstammhuhn.FACTORY); RenderingRegistry.registerEntityRenderingHandler(EntitySmavaCreeper.class, RenderSmavaCreeper.FACTORY);
} RenderingRegistry.registerEntityRenderingHandler(EntityWolfMZTE.class, RenderWolfMZTE.FACTORY);
RenderingRegistry.registerEntityRenderingHandler(EntityHolzstammhuhn.class, RenderHolzstammhuhn.FACTORY);
}
} }

View file

@ -6,8 +6,9 @@ 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_ON_A_STICK = new ItemBase("ram_on_a_stick", Spackenmobs.SPACKENMOBS_TAB); public static final Item RAM = new ItemBase("ram", Spackenmobs.SPACKENMOBS_TAB);
public static final Item SURSTROEMMING = new ItemBase("surstroemming", 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);
} }

View file

@ -0,0 +1,59 @@
package mod.acgaming.spackenmobs.misc;
import java.io.File;
import java.util.Collections;
import java.util.Set;
import com.google.common.collect.Sets;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.storage.loot.LootTable;
import net.minecraft.world.storage.loot.LootTableManager;
public class ModLootTableList
{
private static final Set<ResourceLocation> LOOT_TABLES = Sets.<ResourceLocation>newHashSet();
private static final Set<ResourceLocation> READ_ONLY_LOOT_TABLES = Collections.<ResourceLocation>unmodifiableSet(LOOT_TABLES);
public static final ResourceLocation EMPTY = register("empty");
public static final ResourceLocation ENTITIES_JENS = register("entities/jens");
private static ResourceLocation register(String id)
{
return register(new ResourceLocation("spackenmobs", id));
}
public static ResourceLocation register(ResourceLocation id)
{
if (LOOT_TABLES.add(id))
{
return id;
}
else
{
throw new IllegalArgumentException(id + " is already a registered built-in loot table");
}
}
/**
* An unmodifiable set is returned
*/
public static Set<ResourceLocation> getAll()
{
return READ_ONLY_LOOT_TABLES;
}
public static boolean test()
{
LootTableManager loottablemanager = new LootTableManager((File) null);
for (ResourceLocation resourcelocation : READ_ONLY_LOOT_TABLES)
{
if (loottablemanager.getLootTableFromLocation(resourcelocation) == LootTable.EMPTY_LOOT_TABLE)
{
return false;
}
}
return true;
}
}

View file

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

View file

@ -6,74 +6,44 @@ 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( {
new ResourceLocation("spackenmobs:entities.smava_creeper.fuse")); public static final SoundEvent ENTITY_SMAVACREEPER_FUSE = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.fuse"));
public static final SoundEvent ENTITY_SMAVACREEPER_BLOW = new SoundEvent( public static final SoundEvent ENTITY_SMAVACREEPER_BLOW = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.blow"));
new ResourceLocation("spackenmobs:entities.smava_creeper.blow")); public static final SoundEvent ENTITY_SMAVACREEPER_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.hurt"));
public static final SoundEvent ENTITY_SMAVACREEPER_HURT = new SoundEvent( public static final SoundEvent ENTITY_SMAVACREEPER_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.smava_creeper.ambient"));
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( public static final SoundEvent ENTITY_MARCELLDAVIS_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.marcell_davis.ambient"));
new ResourceLocation("spackenmobs:entities.marcell_davis.ambient")); public static final SoundEvent ENTITY_MARCELLDAVIS_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.marcell_davis.hurt"));
public static final SoundEvent ENTITY_MARCELLDAVIS_HURT = new SoundEvent( public static final SoundEvent ENTITY_MARCELLDAVIS_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.marcell_davis.death"));
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( public static final SoundEvent ENTITY_ISLAMIST_FUSE = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.fuse"));
new ResourceLocation("spackenmobs:entities.islamist.fuse")); public static final SoundEvent ENTITY_ISLAMIST_BLOW = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.blow"));
public static final SoundEvent ENTITY_ISLAMIST_BLOW = new SoundEvent( public static final SoundEvent ENTITY_ISLAMIST_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.hurt"));
new ResourceLocation("spackenmobs:entities.islamist.blow")); public static final SoundEvent ENTITY_ISLAMIST_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.islamist.ambient"));
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( public static final SoundEvent ENTITY_APORED_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.apored.ambient"));
new ResourceLocation("spackenmobs:entities.apored.ambient")); public static final SoundEvent ENTITY_APORED_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.apored.hurt"));
public static final SoundEvent ENTITY_APORED_HURT = new SoundEvent( public static final SoundEvent ENTITY_APORED_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.apored.death"));
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( public static final SoundEvent ENTITY_MRBEAN_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.mr_bean.ambient"));
new ResourceLocation("spackenmobs:entities.mr_bean.ambient")); public static final SoundEvent ENTITY_MRBEAN_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.mr_bean.hurt"));
public static final SoundEvent ENTITY_MRBEAN_HURT = new SoundEvent( public static final SoundEvent ENTITY_MRBEAN_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.mr_bean.death"));
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( public static final SoundEvent ENTITY_DRACHENLORD_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.ambient"));
new ResourceLocation("spackenmobs:entities.drachenlord.ambient")); public static final SoundEvent ENTITY_DRACHENLORD_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.hurt"));
public static final SoundEvent ENTITY_DRACHENLORD_HURT = new SoundEvent( public static final SoundEvent ENTITY_DRACHENLORD_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.death"));
new ResourceLocation("spackenmobs:entities.drachenlord.hurt")); public static final SoundEvent ENTITY_DRACHENLORD_ANGRY = new SoundEvent(new ResourceLocation("spackenmobs:entities.drachenlord.angry"));
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( public static final SoundEvent ENTITY_SCHALKER_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.ambient"));
new ResourceLocation("spackenmobs:entities.schalker.ambient")); public static final SoundEvent ENTITY_SCHALKER_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.hurt"));
public static final SoundEvent ENTITY_SCHALKER_HURT = new SoundEvent( public static final SoundEvent ENTITY_SCHALKER_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.death"));
new ResourceLocation("spackenmobs:entities.schalker.hurt")); public static final SoundEvent ENTITY_SCHALKER_OPEN = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.open"));
public static final SoundEvent ENTITY_SCHALKER_DEATH = new SoundEvent( public static final SoundEvent ENTITY_SCHALKER_SHOOT = new SoundEvent(new ResourceLocation("spackenmobs:entities.schalker.shoot"));
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( public static final SoundEvent ENTITY_JENS_AMBIENT = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.ambient"));
new ResourceLocation("spackenmobs:entities.jens.ambient")); public static final SoundEvent ENTITY_JENS_HURT = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.hurt"));
public static final SoundEvent ENTITY_JENS_HURT = new SoundEvent( public static final SoundEvent ENTITY_JENS_DEATH = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.death"));
new ResourceLocation("spackenmobs:entities.jens.hurt")); public static final SoundEvent ENTITY_JENS_EAT = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.eat"));
public static final SoundEvent ENTITY_JENS_DEATH = new SoundEvent( public static final SoundEvent ENTITY_JENS_POOP = new SoundEvent(new ResourceLocation("spackenmobs:entities.jens.poop"));
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

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

View file

@ -10,16 +10,18 @@ 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 {
public static void registerModels(ModelRegistryEvent event) { @SubscribeEvent
registerModel(ModItems.RAM, 0); public static void registerModels(ModelRegistryEvent event)
registerModel(ModItems.RAM_ON_A_STICK, 0); {
registerModel(ModItems.SURSTROEMMING, 0); registerModel(ModItems.RAM, 0);
} registerModel(ModItems.RAM_ON_A_STICK, 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, {
new ModelResourceLocation(item.getRegistryName(), "inventory")); ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), "inventory"));
} }
} }

View file

@ -9,54 +9,60 @@ 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 lid; public final ModelRenderer base;
public ModelRenderer head; public final ModelRenderer lid;
public ModelRenderer head;
public ModelSchalker() { public ModelSchalker()
this.textureHeight = 64; {
this.textureWidth = 64; this.textureHeight = 64;
this.lid = new ModelRenderer(this); this.textureWidth = 64;
this.base = new ModelRenderer(this); this.lid = new ModelRenderer(this);
this.head = new ModelRenderer(this); this.base = new ModelRenderer(this);
this.lid.setTextureOffset(0, 0).addBox(-8.0F, -16.0F, -8.0F, 16, 12, 16); this.head = new ModelRenderer(this);
this.lid.setRotationPoint(0.0F, 24.0F, 0.0F); this.lid.setTextureOffset(0, 0).addBox(-8.0F, -16.0F, -8.0F, 16, 12, 16);
this.base.setTextureOffset(0, 28).addBox(-8.0F, -8.0F, -8.0F, 16, 8, 16); this.lid.setRotationPoint(0.0F, 24.0F, 0.0F);
this.base.setRotationPoint(0.0F, 24.0F, 0.0F); this.base.setTextureOffset(0, 28).addBox(-8.0F, -8.0F, -8.0F, 16, 8, 16);
this.head.setTextureOffset(0, 52).addBox(-3.0F, 0.0F, -3.0F, 6, 6, 6); this.base.setRotationPoint(0.0F, 24.0F, 0.0F);
this.head.setRotationPoint(0.0F, 12.0F, 0.0F); this.head.setTextureOffset(0, 52).addBox(-3.0F, 0.0F, -3.0F, 6, 6, 6);
} this.head.setRotationPoint(0.0F, 12.0F, 0.0F);
@Override
public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw,
float headPitch, float scaleFactor, Entity entityIn) {
EntitySchalker EntitySchalker = (EntitySchalker) entityIn;
float f = ageInTicks - EntitySchalker.ticksExisted;
float f1 = (0.5F + EntitySchalker.getClientPeekAmount(f)) * (float) Math.PI;
float f2 = -1.0F + MathHelper.sin(f1);
float f3 = 0.0F;
if (f1 > (float) Math.PI) {
f3 = MathHelper.sin(ageInTicks * 0.1F) * 0.7F;
} }
this.lid.setRotationPoint(0.0F, 16.0F + MathHelper.sin(f1) * 8.0F + f3, 0.0F); @Override
public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn)
{
EntitySchalker EntitySchalker = (EntitySchalker) entityIn;
float f = ageInTicks - EntitySchalker.ticksExisted;
float f1 = (0.5F + EntitySchalker.getClientPeekAmount(f)) * (float) Math.PI;
float f2 = -1.0F + MathHelper.sin(f1);
float f3 = 0.0F;
if (EntitySchalker.getClientPeekAmount(f) > 0.3F) { if (f1 > (float) Math.PI)
this.lid.rotateAngleY = f2 * f2 * f2 * f2 * (float) Math.PI * 0.125F; {
} else { f3 = MathHelper.sin(ageInTicks * 0.1F) * 0.7F;
this.lid.rotateAngleY = 0.0F; }
this.lid.setRotationPoint(0.0F, 16.0F + MathHelper.sin(f1) * 8.0F + f3, 0.0F);
if (EntitySchalker.getClientPeekAmount(f) > 0.3F)
{
this.lid.rotateAngleY = f2 * f2 * f2 * f2 * (float) Math.PI * 0.125F;
}
else
{
this.lid.rotateAngleY = 0.0F;
}
this.head.rotateAngleX = headPitch * 0.017453292F;
this.head.rotateAngleY = netHeadYaw * 0.017453292F;
} }
this.head.rotateAngleX = headPitch * 0.017453292F; @Override
this.head.rotateAngleY = netHeadYaw * 0.017453292F; public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale)
} {
this.base.render(scale);
@Override this.lid.render(scale);
public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, }
float headPitch, float scale) {
this.base.render(scale);
this.lid.render(scale);
}
} }

View file

@ -15,37 +15,44 @@ 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( {
"spackenmobs:textures/entities/apored.png"); private static final ResourceLocation APORED_TEXTURE = new ResourceLocation("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); {
this.addLayer(new LayerHeldItem(this)); super(renderManagerIn);
this.addLayer(new LayerBipedArmor(this) { this.addLayer(new LayerHeldItem(this));
@Override this.addLayer(new LayerBipedArmor(this)
protected void initArmor() { {
this.modelLeggings = new ModelSkeleton(0.5F, true); @Override
this.modelArmor = new ModelSkeleton(1.0F, true); protected void initArmor()
} {
}); this.modelLeggings = new ModelSkeleton(0.5F, true);
} this.modelArmor = new ModelSkeleton(1.0F, true);
}
@Override });
public void transformHeldFull3DItemLayer() { }
GlStateManager.translate(0.09375F, 0.1875F, 0.0F);
} @Override
public void transformHeldFull3DItemLayer()
@Override {
protected ResourceLocation getEntityTexture(AbstractSkeleton entity) { GlStateManager.translate(0.09375F, 0.1875F, 0.0F);
return APORED_TEXTURE; }
}
@Override
public static class Factory implements IRenderFactory<EntityApoRed> { protected ResourceLocation getEntityTexture(AbstractSkeleton entity)
@Override {
public Render<? super EntityApoRed> createRenderFor(RenderManager manager) { return APORED_TEXTURE;
return new RenderApoRed(manager); }
public static class Factory implements IRenderFactory<EntityApoRed>
{
@Override
public Render<? super EntityApoRed> createRenderFor(RenderManager manager)
{
return new RenderApoRed(manager);
}
} }
}
} }

View file

@ -13,31 +13,37 @@ 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( {
"spackenmobs:textures/entities/drachenlord.png"); private static final ResourceLocation DRACHENLORD_TEXTURE = new ResourceLocation("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); {
this.addLayer(new LayerBipedArmor(this) { super(renderManagerIn);
@Override this.addLayer(new LayerBipedArmor(this)
protected void initArmor() { {
this.modelLeggings = new ModelZombie(0.5F, true); @Override
this.modelArmor = new ModelZombie(1.0F, true); protected void initArmor()
} {
}); this.modelLeggings = new ModelZombie(0.5F, true);
} this.modelArmor = new ModelZombie(1.0F, true);
}
@Override });
protected ResourceLocation getEntityTexture(EntityZombie entity) { }
return DRACHENLORD_TEXTURE;
} @Override
protected ResourceLocation getEntityTexture(EntityZombie entity)
public static class Factory implements IRenderFactory<EntityDrachenlord> { {
@Override return DRACHENLORD_TEXTURE;
public Render<? super EntityDrachenlord> createRenderFor(RenderManager manager) { }
return new RenderDrachenlord(manager);
public static class Factory implements IRenderFactory<EntityDrachenlord>
{
@Override
public Render<? super EntityDrachenlord> createRenderFor(RenderManager manager)
{
return new RenderDrachenlord(manager);
}
} }
}
} }

View file

@ -11,24 +11,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 RenderHolzstammhuhn extends RenderChicken { public class RenderHolzstammhuhn extends RenderChicken
private static final ResourceLocation HOLZSTAMMHUHN_TEXTURE = new ResourceLocation( {
"spackenmobs:textures/entities/holzstammhuhn.png"); private static final ResourceLocation HOLZSTAMMHUHN_TEXTURE = new ResourceLocation("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);
}
@Override
protected ResourceLocation getEntityTexture(EntityChicken entity) { @Override
return HOLZSTAMMHUHN_TEXTURE; protected ResourceLocation getEntityTexture(EntityChicken entity)
} {
return HOLZSTAMMHUHN_TEXTURE;
public static class Factory implements IRenderFactory<EntityHolzstammhuhn> { }
@Override
public Render<? super EntityHolzstammhuhn> createRenderFor(RenderManager manager) { public static class Factory implements IRenderFactory<EntityHolzstammhuhn>
return new RenderHolzstammhuhn(manager); {
@Override
public Render<? super EntityHolzstammhuhn> createRenderFor(RenderManager manager)
{
return new RenderHolzstammhuhn(manager);
}
} }
}
} }

View file

@ -12,25 +12,29 @@ 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( {
"spackenmobs:textures/entities/islamist.png"); private static final ResourceLocation ISLAMIST_TEXTURE = new ResourceLocation("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); {
this.addLayer(new LayerCreeperCharge(this)); super(renderManagerIn);
} this.addLayer(new LayerCreeperCharge(this));
}
@Override
protected ResourceLocation getEntityTexture(EntityCreeper entity) { @Override
return ISLAMIST_TEXTURE; protected ResourceLocation getEntityTexture(EntityCreeper entity)
} {
return ISLAMIST_TEXTURE;
public static class Factory implements IRenderFactory<EntityIslamist> { }
@Override
public Render<? super EntityIslamist> createRenderFor(RenderManager manager) { public static class Factory implements IRenderFactory<EntityIslamist>
return new RenderIslamist(manager); {
@Override
public Render<? super EntityIslamist> createRenderFor(RenderManager manager)
{
return new RenderIslamist(manager);
}
} }
}
} }

View file

@ -11,23 +11,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 RenderJens extends RenderBiped<EntityJens> { public class RenderJens extends RenderBiped<EntityJens>
private static final ResourceLocation JENS_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/jens.png"); {
public static final Factory FACTORY = new Factory(); private static final ResourceLocation JENS_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/jens.png");
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);
}
@Override
protected ResourceLocation getEntityTexture(EntityJens entity) { @Override
return JENS_TEXTURE; protected ResourceLocation getEntityTexture(EntityJens entity)
} {
return JENS_TEXTURE;
private static class Factory implements IRenderFactory<EntityJens> { }
@Override
public Render<? super EntityJens> createRenderFor(RenderManager manager) { private static class Factory implements IRenderFactory<EntityJens>
return new RenderJens(manager); {
@Override
public Render<? super EntityJens> createRenderFor(RenderManager manager)
{
return new RenderJens(manager);
}
} }
}
} }

View file

@ -13,32 +13,38 @@ 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( {
"spackenmobs:textures/entities/marcell_davis.png"); private static final ResourceLocation MARCELLDAVIS_TEXTURE = new ResourceLocation("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); {
LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this) { super(renderManagerIn);
@Override LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this)
protected void initArmor() { {
this.modelLeggings = new ModelZombie(0.5F, true); @Override
this.modelArmor = new ModelZombie(1.0F, true); protected void initArmor()
} {
}; this.modelLeggings = new ModelZombie(0.5F, true);
this.addLayer(layerbipedarmor); this.modelArmor = new ModelZombie(1.0F, true);
} }
};
@Override this.addLayer(layerbipedarmor);
protected ResourceLocation getEntityTexture(EntityZombie entity) { }
return MARCELLDAVIS_TEXTURE;
} @Override
protected ResourceLocation getEntityTexture(EntityZombie entity)
public static class Factory implements IRenderFactory<EntityMarcellDAvis> { {
@Override return MARCELLDAVIS_TEXTURE;
public Render<? super EntityMarcellDAvis> createRenderFor(RenderManager manager) { }
return new RenderMarcellDAvis(manager);
public static class Factory implements IRenderFactory<EntityMarcellDAvis>
{
@Override
public Render<? super EntityMarcellDAvis> createRenderFor(RenderManager manager)
{
return new RenderMarcellDAvis(manager);
}
} }
}
} }

View file

@ -13,32 +13,38 @@ 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( {
"spackenmobs:textures/entities/mr_bean.png"); private static final ResourceLocation MRBEAN_TEXTURE = new ResourceLocation("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); {
LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this) { super(renderManagerIn);
@Override LayerBipedArmor layerbipedarmor = new LayerBipedArmor(this)
protected void initArmor() { {
this.modelLeggings = new ModelZombie(0.5F, true); @Override
this.modelArmor = new ModelZombie(1.0F, true); protected void initArmor()
} {
}; this.modelLeggings = new ModelZombie(0.5F, true);
this.addLayer(layerbipedarmor); this.modelArmor = new ModelZombie(1.0F, true);
} }
};
@Override this.addLayer(layerbipedarmor);
protected ResourceLocation getEntityTexture(EntityZombie entity) { }
return MRBEAN_TEXTURE;
} @Override
protected ResourceLocation getEntityTexture(EntityZombie entity)
public static class Factory implements IRenderFactory<EntityMrBean> { {
@Override return MRBEAN_TEXTURE;
public Render<? super EntityMrBean> createRenderFor(RenderManager manager) { }
return new RenderMrBean(manager);
public static class Factory implements IRenderFactory<EntityMrBean>
{
@Override
public Render<? super EntityMrBean> createRenderFor(RenderManager manager)
{
return new RenderMrBean(manager);
}
} }
}
} }

View file

@ -17,179 +17,193 @@ 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[] { {
new ResourceLocation("spackenmobs:textures/entities/schalker.png"), 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"), public static final Factory FACTORY = new Factory();
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 RenderSchalker(RenderManager p_i47194_1_) { public RenderSchalker(RenderManager p_i47194_1_)
super(p_i47194_1_, new ModelSchalker(), 0.0F); {
this.addLayer(new RenderSchalker.HeadLayer()); super(p_i47194_1_, new ModelSchalker(), 0.0F);
} this.addLayer(new RenderSchalker.HeadLayer());
@Override
public ModelSchalker getMainModel() {
return (ModelSchalker) super.getMainModel();
}
@Override
public void doRender(EntitySchalker entity, double x, double y, double z, float entityYaw, float partialTicks) {
int i = entity.getClientTeleportInterp();
if (i > 0 && entity.isAttachedToBlock()) {
BlockPos blockpos = entity.getAttachmentPos();
BlockPos blockpos1 = entity.getOldAttachPos();
double d0 = (i - partialTicks) / 6.0D;
d0 = d0 * d0;
double d1 = (blockpos.getX() - blockpos1.getX()) * d0;
double d2 = (blockpos.getY() - blockpos1.getY()) * d0;
double d3 = (blockpos.getZ() - blockpos1.getZ()) * d0;
super.doRender(entity, x - d1, y - d2, z - d3, entityYaw, partialTicks);
} else {
super.doRender(entity, x, y, z, entityYaw, partialTicks);
} }
}
@Override @Override
public boolean shouldRender(EntitySchalker livingEntity, ICamera camera, double camX, double camY, double camZ) { public ModelSchalker getMainModel()
if (super.shouldRender(livingEntity, camera, camX, camY, camZ)) { {
return true; return (ModelSchalker) super.getMainModel();
} else { }
if (livingEntity.getClientTeleportInterp() > 0 && livingEntity.isAttachedToBlock()) {
BlockPos blockpos = livingEntity.getOldAttachPos();
BlockPos blockpos1 = livingEntity.getAttachmentPos();
Vec3d vec3d = new Vec3d(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ());
Vec3d vec3d1 = new Vec3d(blockpos.getX(), blockpos.getY(), blockpos.getZ());
if (camera.isBoundingBoxInFrustum( @Override
new AxisAlignedBB(vec3d1.x, vec3d1.y, vec3d1.z, vec3d.x, vec3d.y, vec3d.z))) { public void doRender(EntitySchalker entity, double x, double y, double z, float entityYaw, float partialTicks)
return true; {
int i = entity.getClientTeleportInterp();
if (i > 0 && entity.isAttachedToBlock())
{
BlockPos blockpos = entity.getAttachmentPos();
BlockPos blockpos1 = entity.getOldAttachPos();
double d0 = (i - partialTicks) / 6.0D;
d0 = d0 * d0;
double d1 = (blockpos.getX() - blockpos1.getX()) * d0;
double d2 = (blockpos.getY() - blockpos1.getY()) * d0;
double d3 = (blockpos.getZ() - blockpos1.getZ()) * d0;
super.doRender(entity, x - d1, y - d2, z - d3, entityYaw, partialTicks);
}
else
{
super.doRender(entity, x, y, z, entityYaw, partialTicks);
} }
}
return false;
}
}
@Override
protected ResourceLocation getEntityTexture(EntitySchalker entity) {
return SCHALKER_TEXTURE[entity.getColor().getMetadata()];
}
@Override
protected void applyRotations(EntitySchalker entityLiving, float p_77043_2_, float rotationYaw,
float partialTicks) {
super.applyRotations(entityLiving, p_77043_2_, rotationYaw, partialTicks);
switch (entityLiving.getAttachmentFacing()) {
case DOWN:
default:
break;
case EAST:
GlStateManager.translate(0.5F, 0.5F, 0.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F);
break;
case WEST:
GlStateManager.translate(-0.5F, 0.5F, 0.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(-90.0F, 0.0F, 0.0F, 1.0F);
break;
case NORTH:
GlStateManager.translate(0.0F, 0.5F, -0.5F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
break;
case SOUTH:
GlStateManager.translate(0.0F, 0.5F, 0.5F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
break;
case UP:
GlStateManager.translate(0.0F, 1.0F, 0.0F);
GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F);
}
}
@Override
protected void preRenderCallback(EntitySchalker entitylivingbaseIn, float partialTickTime) {
float f = 0.999F;
GlStateManager.scale(0.999F, 0.999F, 0.999F);
}
@SideOnly(Side.CLIENT)
class HeadLayer implements LayerRenderer<EntitySchalker> {
private HeadLayer() {
} }
@Override @Override
public void doRenderLayer(EntitySchalker entitylivingbaseIn, float limbSwing, float limbSwingAmount, public boolean shouldRender(EntitySchalker livingEntity, ICamera camera, double camX, double camY, double camZ)
float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) { {
GlStateManager.pushMatrix(); if (super.shouldRender(livingEntity, camera, camX, camY, camZ))
{
return true;
}
else
{
if (livingEntity.getClientTeleportInterp() > 0 && livingEntity.isAttachedToBlock())
{
BlockPos blockpos = livingEntity.getOldAttachPos();
BlockPos blockpos1 = livingEntity.getAttachmentPos();
Vec3d vec3d = new Vec3d(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ());
Vec3d vec3d1 = new Vec3d(blockpos.getX(), blockpos.getY(), blockpos.getZ());
switch (entitylivingbaseIn.getAttachmentFacing()) { if (camera.isBoundingBoxInFrustum(new AxisAlignedBB(vec3d1.x, vec3d1.y, vec3d1.z, vec3d.x, vec3d.y, vec3d.z)))
case DOWN: {
default: return true;
break; }
case EAST: }
GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(1.0F, -1.0F, 0.0F);
GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
break;
case WEST:
GlStateManager.rotate(-90.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(-1.0F, -1.0F, 0.0F);
GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
break;
case NORTH:
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(0.0F, -1.0F, -1.0F);
break;
case SOUTH:
GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(0.0F, -1.0F, 1.0F);
break;
case UP:
GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(0.0F, -2.0F, 0.0F);
}
ModelRenderer modelrenderer = RenderSchalker.this.getMainModel().head; return false;
modelrenderer.rotateAngleY = netHeadYaw * 0.017453292F; }
modelrenderer.rotateAngleX = headPitch * 0.017453292F;
RenderSchalker.this
.bindTexture(RenderSchalker.SCHALKER_TEXTURE[entitylivingbaseIn.getColor().getMetadata()]);
modelrenderer.render(scale);
GlStateManager.popMatrix();
} }
@Override @Override
public boolean shouldCombineTextures() { protected ResourceLocation getEntityTexture(EntitySchalker entity)
return false; {
return SCHALKER_TEXTURE[entity.getColor().getMetadata()];
} }
}
public static class Factory implements IRenderFactory<EntitySchalker> {
@Override @Override
public Render<? super EntitySchalker> createRenderFor(RenderManager manager) { protected void applyRotations(EntitySchalker entityLiving, float p_77043_2_, float rotationYaw, float partialTicks)
return new RenderSchalker(manager); {
super.applyRotations(entityLiving, p_77043_2_, rotationYaw, partialTicks);
switch (entityLiving.getAttachmentFacing())
{
case DOWN:
default:
break;
case EAST:
GlStateManager.translate(0.5F, 0.5F, 0.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F);
break;
case WEST:
GlStateManager.translate(-0.5F, 0.5F, 0.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(-90.0F, 0.0F, 0.0F, 1.0F);
break;
case NORTH:
GlStateManager.translate(0.0F, 0.5F, -0.5F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
break;
case SOUTH:
GlStateManager.translate(0.0F, 0.5F, 0.5F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
break;
case UP:
GlStateManager.translate(0.0F, 1.0F, 0.0F);
GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F);
}
}
@Override
protected void preRenderCallback(EntitySchalker entitylivingbaseIn, float partialTickTime)
{
float f = 0.999F;
GlStateManager.scale(0.999F, 0.999F, 0.999F);
}
@SideOnly(Side.CLIENT)
class HeadLayer implements LayerRenderer<EntitySchalker>
{
private HeadLayer()
{
}
@Override
public void doRenderLayer(EntitySchalker entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale)
{
GlStateManager.pushMatrix();
switch (entitylivingbaseIn.getAttachmentFacing())
{
case DOWN:
default:
break;
case EAST:
GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(1.0F, -1.0F, 0.0F);
GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
break;
case WEST:
GlStateManager.rotate(-90.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(-1.0F, -1.0F, 0.0F);
GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
break;
case NORTH:
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(0.0F, -1.0F, -1.0F);
break;
case SOUTH:
GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(0.0F, -1.0F, 1.0F);
break;
case UP:
GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.translate(0.0F, -2.0F, 0.0F);
}
ModelRenderer modelrenderer = RenderSchalker.this.getMainModel().head;
modelrenderer.rotateAngleY = netHeadYaw * 0.017453292F;
modelrenderer.rotateAngleX = headPitch * 0.017453292F;
RenderSchalker.this.bindTexture(RenderSchalker.SCHALKER_TEXTURE[entitylivingbaseIn.getColor().getMetadata()]);
modelrenderer.render(scale);
GlStateManager.popMatrix();
}
@Override
public boolean shouldCombineTextures()
{
return false;
}
}
public static class Factory implements IRenderFactory<EntitySchalker>
{
@Override
public Render<? super EntitySchalker> createRenderFor(RenderManager manager)
{
return new RenderSchalker(manager);
}
} }
}
} }

View file

@ -12,25 +12,29 @@ 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( {
"spackenmobs:textures/entities/smava_creeper.png"); private static final ResourceLocation SMAVA_TEXTURE = new ResourceLocation("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); {
this.addLayer(new LayerCreeperCharge(this)); super(renderManagerIn);
} this.addLayer(new LayerCreeperCharge(this));
}
@Override
protected ResourceLocation getEntityTexture(EntityCreeper entity) { @Override
return SMAVA_TEXTURE; protected ResourceLocation getEntityTexture(EntityCreeper entity)
} {
return SMAVA_TEXTURE;
public static class Factory implements IRenderFactory<EntitySmavaCreeper> { }
@Override
public Render<? super EntitySmavaCreeper> createRenderFor(RenderManager manager) { public static class Factory implements IRenderFactory<EntitySmavaCreeper>
return new RenderSmavaCreeper(manager); {
@Override
public Render<? super EntitySmavaCreeper> createRenderFor(RenderManager manager)
{
return new RenderSmavaCreeper(manager);
}
} }
}
} }

View file

@ -13,48 +13,56 @@ 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( {
"spackenmobs:textures/entities/wolfmzte.png"); private static final ResourceLocation WOLFMZTE_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/wolfmzte.png");
private static final ResourceLocation TAMED_WOLFMZTE_TEXTURE = new ResourceLocation( private static final ResourceLocation TAMED_WOLFMZTE_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/wolfmzte_tame.png");
"spackenmobs:textures/entities/wolfmzte_tame.png"); private static final ResourceLocation ANRGY_WOLFMZTE_TEXTURE = new ResourceLocation("spackenmobs:textures/entities/wolfmzte_angry.png");
private static final ResourceLocation ANRGY_WOLFMZTE_TEXTURE = new ResourceLocation( public static final Factory FACTORY = new Factory();
"spackenmobs:textures/entities/wolfmzte_angry.png");
public static final Factory FACTORY = new Factory();
public RenderWolfMZTE(RenderManager renderManagerIn) { public RenderWolfMZTE(RenderManager renderManagerIn)
super(renderManagerIn); {
this.addLayer(new LayerWolfCollar(this)); super(renderManagerIn);
} this.addLayer(new LayerWolfCollar(this));
@Override
protected float handleRotationFloat(EntityWolf livingBase, float partialTicks) {
return livingBase.getTailRotation();
}
@Override
public void doRender(EntityWolf entity, double x, double y, double z, float entityYaw, float partialTicks) {
if (entity.isWolfWet()) {
float f = entity.getBrightness() * entity.getShadingWhileWet(partialTicks);
GlStateManager.color(f, f, f);
} }
super.doRender(entity, x, y, z, entityYaw, partialTicks);
}
@Override
protected ResourceLocation getEntityTexture(EntityWolf entity) {
if (entity.isTamed()) {
return TAMED_WOLFMZTE_TEXTURE;
} else {
return entity.isAngry() ? ANRGY_WOLFMZTE_TEXTURE : WOLFMZTE_TEXTURE;
}
}
public static class Factory implements IRenderFactory<EntityWolfMZTE> {
@Override @Override
public Render<? super EntityWolfMZTE> createRenderFor(RenderManager manager) { protected float handleRotationFloat(EntityWolf livingBase, float partialTicks)
return new RenderWolfMZTE(manager); {
return livingBase.getTailRotation();
}
@Override
public void doRender(EntityWolf entity, double x, double y, double z, float entityYaw, float partialTicks)
{
if (entity.isWolfWet())
{
float f = entity.getBrightness() * entity.getShadingWhileWet(partialTicks);
GlStateManager.color(f, f, f);
}
super.doRender(entity, x, y, z, entityYaw, partialTicks);
}
@Override
protected ResourceLocation getEntityTexture(EntityWolf entity)
{
if (entity.isTamed())
{
return TAMED_WOLFMZTE_TEXTURE;
}
else
{
return entity.isAngry() ? ANRGY_WOLFMZTE_TEXTURE : WOLFMZTE_TEXTURE;
}
}
public static class Factory implements IRenderFactory<EntityWolfMZTE>
{
@Override
public Render<? super EntityWolfMZTE> createRenderFor(RenderManager manager)
{
return new RenderWolfMZTE(manager);
}
} }
}
} }

View file

@ -1,13 +1,14 @@
entity.smava_creeper.name=Smava-Creeper
entity.marcell_davis.name=Marcell D'Avis
entity.islamist.name=Islamist
entity.apored.name=ApoRed entity.apored.name=ApoRed
entity.mr_bean.name=Mr. Bean
entity.drachenlord.name=Drachenlord entity.drachenlord.name=Drachenlord
entity.schalker.name=Schalker
entity.jens.name=Jens
entity.wolfmzte.name=WolfMZTE
entity.holzstammhuhn.name=Holzstammhuhn entity.holzstammhuhn.name=Holzstammhuhn
entity.islamist.name=Islamist
entity.jens.name=Jens
entity.marcell_davis.name=Marcell D'Avis
entity.mr_bean.name=Mr. Bean
entity.schalker.name=Schalker
entity.smava_creeper.name=Smava-Creeper
entity.wolfmzte.name=WolfMZTE
item.spackenmobs.ram.name=RAM item.spackenmobs.ram.name=RAM
item.spackenmobs.ram_on_a_stick.name=RAM-Rute item.spackenmobs.ram_on_a_stick.name=RAM-Rute
item.spackenmobs.surstroemming.name=Surströmming item.spackenmobs.surstroemming.name=Surströmming
itemGroup.spackenmobs.tabSpackenmobs=Spackenmobs

View file

@ -1,13 +1,14 @@
entity.smava_creeper.name=Smava Creeper
entity.marcell_davis.name=Marcell D'Avis
entity.islamist.name=Islamist
entity.apored.name=ApoRed entity.apored.name=ApoRed
entity.mr_bean.name=Mr. Bean
entity.drachenlord.name=Drachenlord entity.drachenlord.name=Drachenlord
entity.schalker.name=Schalker
entity.jens.name=Jens
entity.wolfmzte.name=WolfMZTE
entity.holzstammhuhn.name=Holzstammhuhn entity.holzstammhuhn.name=Holzstammhuhn
entity.islamist.name=Islamist
entity.jens.name=Jens
entity.marcell_davis.name=Marcell D'Avis
entity.mr_bean.name=Mr. Bean
entity.schalker.name=Schalker
entity.smava_creeper.name=Smava Creeper
entity.wolfmzte.name=WolfMZTE
item.spackenmobs.ram.name=RAM item.spackenmobs.ram.name=RAM
item.spackenmobs.ram_on_a_stick.name=RAM on a Stick item.spackenmobs.ram_on_a_stick.name=RAM on a Stick
item.spackenmobs.surstroemming.name=Surströmming item.spackenmobs.surstroemming.name=Surströmming
itemGroup.spackenmobs.tabSpackenmobs=Spackenmobs

View file

@ -0,0 +1,26 @@
{
"pools": [{
"name": "jens",
"rolls": 1,
"entries": [{
"type": "item",
"name": "spackenmobs:ram",
"weight": 1,
"functions": [{
"function": "set_count",
"count": {
"min": 1,
"max": 3
}
},
{
"function": "looting_enchant",
"count": {
"min": 0,
"max": 1
}
}
]
}]
}]
}