-
Posts
1061 -
Joined
-
Last visited
Everything posted by NovaViper
-
How do I compile my mod? I tried build but I can't seem to locate the of the jar file also I get this: (This is in 1.9) 09:34:42 AM: Executing external task 'build'... Timeout waiting to connect to the Gradle daemon. Daemon uid: 46c00c9f-beb1-4976-bba3-15eb7adb74c6 with diagnostics: Daemon pid: 1300 log file: C:\Users\NovaPC\.gradle\daemon\2.7\daemon-1300.out.log ----- Last 20 lines from daemon log file - daemon-1300.out.log ----- 09:36:21.586 [LIFECYCLE] [org.gradle.launcher.daemon.server.Daemon] Daemon server started. 09:36:21.593 [DEBUG] [org.gradle.launcher.daemon.bootstrap.DaemonStartupCommunication] Completed writing the daemon greeting. Closing streams... 09:36:21.596 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] requestStopOnIdleTimeout(60000 MILLISECONDS) called on daemon 09:36:21.596 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] Idle timeout: waiting for daemon to stop or be idle for 60000ms 09:36:21.603 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] Idle timeout: daemon has been idle for requested period. Stopping now. 09:36:21.605 [DEBUG] [org.gradle.launcher.daemon.server.DaemonStateCoordinator] Marking daemon stopped due to idle timeout. The daemon is running a build: false 09:36:21.605 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] stop() called on daemon 09:36:21.606 [iNFO] [org.gradle.launcher.daemon.server.Daemon] Stop requested. Daemon is removing its presence from the registry... 09:36:21.608 [DEBUG] [org.gradle.launcher.daemon.server.DomainRegistryUpdater] Removing our presence to clients, eg. removing this address from the registry: [d936cc49-b7b1-4e47-8cc4-b3a33855a594 port:54148, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]] 09:36:21.609 [DEBUG] [org.gradle.launcher.daemon.registry.PersistentDaemonRegistry] Removing daemon address: [d936cc49-b7b1-4e47-8cc4-b3a33855a594 port:54148, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]] 09:36:21.748 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry. 09:36:21.750 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired. 09:36:21.784 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry. 09:36:21.786 [DEBUG] [org.gradle.launcher.daemon.server.DomainRegistryUpdater] Address removed from registry. Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt. 09:36:21.869 [DEBUG] [org.gradle.launcher.daemon.registry.PersistentDaemonRegistry] Removing daemon address: [d936cc49-b7b1-4e47-8cc4-b3a33855a594 port:54148, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]] 09:36:21.876 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry. 09:36:21.877 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] The file lock is held by a different Gradle process. I was unable to read on which port the owner listens for lock access requests. 09:36:22.079 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired. 09:36:22.101 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry. ----- End of the daemon log ----- 09:36:51 AM: External task execution finished 'build'.
-
*Huge Facepalm* I just happen to look at the lang files in minecraft and saw that it too says "Saddle equips" and I changed mine and my subtitles work. Thanks Choonster!
-
Ok.. I ran the game again and it still replaces the horse's default event subtitles with mine
-
Thanks! Got it working again
-
Hey uh Choonster... I'm having some issues with IntelliJ, its not prompting me to restart the IDE after running both setupDecompWorkspace and genIntellijRuns
-
Right click somewhere in the Project window, then select Git > Repository > Branches in the context menu. Select the branch to checkout from the popup menu that appears. Thanks for the tip! And atm, I'm trying to reset my IDE because I messed up something with the configurations and seeing if that bug with the horse saddle is fixed
-
Clone the repository, then checkout the desired branch using a Git client (e.g. IntelliJ IDEA, GitHub Desktop, command-line Git). How would I check out the branch in InteillJ? I got the repository cloned and ready but not sure what to do next.
-
So equipping a vanilla saddle on a vanilla horse shows your subtitle? I can't reproduce this. Yeah, for some odd reason its still showing mine.
-
Also... how do I separate my source codes between the branches on Github? ---UPDATE--- I just figured it out but I got another thing; I'm trying to download my branches for IntelliJ but I only want the specific branch downloaded. How do I accomplish this?
-
Hey Choonster, the default saddle subtitle is still getting replaced by mine. { "entity.terrakon.bark": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/bark1", "tetracraft:entity/terrakon/bark2", "tetracraft:entity/terrakon/bark3"], "subtitle": "subtitles.tetracraft:entity.terrakon.bark"}, "entity.terrakon.growl": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/growl1", "tetracraft:entity/terrakon/growl2", "tetracraft:entity/terrakon/growl3"], "subtitle": "subtitles.tetracraft:entity.terrakon.growl"}, "entity.terrakon.hurt": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/hurt1", "tetracraft:entity/terrakon/hurt2", "tetracraft:entity/terrakon/hurt3"], "subtitle": "subtitles.tetracraft:entity.terrakon.hurt"}, "entity.terrakon.pant": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/panting"], "subtitle": "subtitles.tetracraft:entity.terrakon.pant"}, "entity.terrakon.whine": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/whine"], "subtitle": "subtitles.tetracraft:entity.terrakon.whine"}, "entity.terrakon.death": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/death"], "subtitle": "subtitles.tetracraft:entity.terrakon.death"}, "action.land": {"category": "neutral", "sounds": ["tetracraft:action/land"], "subtitle": "subtitles.tetracraft:action.land"}, "action.saddle": {"sounds": [{"name": "minecraft:entity.horse.saddle", "type": "event"}], "subtitle": "subtitles.tetracraft:action.saddle" } }
-
Well, it could be possible that is giving that warning is because my entity moves much faster than the horse does
-
Also got this warning: [09:00:01] [Client thread/WARN]: File minecraft:sounds/entity/horse/saddle.ogg does not exist, cannot add it to event tetracraft:action.saddle The code is in the post above
-
I added that and it now works for me! But I notice that it's still modifying the horse's subtitiles and noteable the pig's also. My Sounds Json { "entity.terrakon.bark": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/bark1", "tetracraft:entity/terrakon/bark2", "tetracraft:entity/terrakon/bark3"], "subtitle": "subtitles.tetracraft:entity.terrakon.bark"}, "entity.terrakon.growl": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/growl1", "tetracraft:entity/terrakon/growl2", "tetracraft:entity/terrakon/growl3"], "subtitle": "subtitles.tetracraft:entity.terrakon.growl"}, "entity.terrakon.hurt": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/hurt1", "tetracraft:entity/terrakon/hurt2", "tetracraft:entity/terrakon/hurt3"], "subtitle": "subtitles.tetracraft:entity.terrakon.hurt"}, "entity.terrakon.pant": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/panting"], "subtitle": "subtitles.tetracraft:entity.terrakon.pant"}, "entity.terrakon.whine": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/whine"], "subtitle": "subtitles.tetracraft:entity.terrakon.whine"}, "entity.terrakon.death": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/death"], "subtitle": "subtitles.tetracraft:entity.terrakon.death"}, "action.land": {"category": "neutral", "sounds": ["tetracraft:action/land"], "subtitle": "subtitles.tetracraft:action.land"}, "action.saddle": {"category": "neutral", "type": "event","sounds": [{"name": "minecraft:entity/horse/saddle"}], "subtitle": "subtitles.tetracraft:action.saddle"} } I do get this warning too [09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.445434141801343,0.0,7.055397094804505 [09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.417365426333163,0.0,7.8848732676423765 [09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.362166224918269,0.0,8.718640870110619 [09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.292450041396819,0.0,9.554704731012237 [09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.214966110187561,0.0,10.391997274018934 [09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.133325812062765,0.0,11.229947260322945 [09:07:09] [server thread/WARN]: Terrakon (vehicle of NovaViper) moved too quickly! -7.04946152487048,0.0,12.068249031427342 RideableEntity package novaviper.tetracraft.common.entity; import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IJumpingMount; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.IAttribute; import net.minecraft.entity.ai.attributes.RangedAttribute; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.init.MobEffects; import net.minecraft.init.SoundEvents; 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.SoundEvent; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; /** * Created by NovaViper on 4/23/2016. * Class Purpose: Definition Class for the mod's RIDEABLE Tameable Entities */ public abstract class EntityModRideableTameable extends EntityModTameable implements IJumpingMount { private static final IAttribute JUMP_STRENGTH = (new RangedAttribute((IAttribute)null, "horse.jumpStrength", 0.7D, 0.0D, 2.0D)).setDescription("Jump Strength").setShouldWatch(true); private static final DataParameter<Boolean> SADDLED = EntityDataManager.<Boolean>createKey(EntityModTameable.class, DataSerializers.BOOLEAN); private boolean field_110294_bI; public float jumpPower; protected boolean entityJumping; /** Used to determine the sound that the horse should make when it steps */ protected int gallopTime; public EntityModRideableTameable(World worldIn) { super(worldIn); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getAttributeMap().registerAttribute(JUMP_STRENGTH); } protected void entityInit() { super.entityInit(); this.dataManager.register(SADDLED, Boolean.valueOf(false)); // Saddle } /** * (abstract) Protected helper method to write subclass entity data to NBT. */ public void writeEntityToNBT(NBTTagCompound tagCompound) { super.writeEntityToNBT(tagCompound); tagCompound.setBoolean("Saddle", this.isSaddled()); } /** * (abstract) Protected helper method to read subclass entity data from NBT. */ public void readEntityFromNBT(NBTTagCompound tagCompound) { super.readEntityFromNBT(tagCompound); this.setSaddled(tagCompound.getBoolean("Saddle")); } public boolean isSaddled() { return ((Boolean)this.dataManager.get(SADDLED)).booleanValue(); } public void setSaddled(boolean saddled) { if (saddled) { this.dataManager.set(SADDLED, Boolean.valueOf(true)); } else { this.dataManager.set(SADDLED, Boolean.valueOf(false)); } } protected void playStepSound(BlockPos pos, Block blockIn) { SoundType soundtype = blockIn.getSoundType(); if (this.worldObj.getBlockState(pos.up()).getBlock() == Blocks.SNOW_LAYER) { soundtype = Blocks.SNOW_LAYER.getSoundType(); } if (!blockIn.getDefaultState().getMaterial().isLiquid()) { if (this.isBeingRidden()) { ++this.gallopTime; if (this.gallopTime > 5 && this.gallopTime % 3 == 0) { this.playSound(getGallopSound(), soundtype.getVolume() * 0.15F, soundtype.getPitch()); } else if (this.gallopTime <= 5) { this.playSound(getStepSound(), soundtype.getVolume() * 0.15F, soundtype.getPitch()); } } } } protected abstract SoundEvent getStepSound(); protected abstract SoundEvent getGallopSound(); /** * Drop the equipment for this entity. */ @Override protected void dropEquipment(boolean wasRecentlyHit, int lootingModifier) { super.dropEquipment(wasRecentlyHit, lootingModifier); if (this.isSaddled()) { this.dropItem(Items.SADDLE, 1); } } public void makePlayerRide(EntityPlayer player){ player.rotationYaw = this.rotationYaw; player.rotationPitch = this.rotationPitch; this.setSitting(false); if (isServer()){ player.startRiding(this); } } /** * Returns true if this entity should push and be pushed by other entities when colliding. */ public boolean canBePushed() { return !this.isBeingRidden(); } public boolean isJumping() { return this.entityJumping; } public void setJumping(boolean jumping) { this.entityJumping = jumping; } public double getJumpStrength() { return this.getEntityAttribute(JUMP_STRENGTH).getAttributeValue(); } @SideOnly(Side.CLIENT) public void setJumpPower(int jumpPowerIn) { if (this.isSaddled()) { if (jumpPowerIn < 0) { jumpPowerIn = 0; } else { this.field_110294_bI = true; } if (jumpPowerIn >= 90) { this.jumpPower = 1.0F; } else { this.jumpPower = 0.4F + 0.4F * (float)jumpPowerIn / 90.0F; } } } public boolean canJump() { return this.isSaddled(); } public void func_184775_b(int p_184775_1_) { this.field_110294_bI = true; } @Override public void func_184777_r_() {} /** * Dead and sleeping entities cannot move */ protected boolean isMovementBlocked() { return this.isBeingRidden() && this.isSaddled() ? true : super.isMovementBlocked(); } /** * Moves the entity based on the specified heading. */ public void moveEntityWithHeading(float strafe, float forward) { if (this.isBeingRidden() && this.canBeSteered() && this.isSaddled()) { EntityLivingBase entitylivingbase = (EntityLivingBase)this.getControllingPassenger(); this.prevRotationYaw = this.rotationYaw = entitylivingbase.rotationYaw; this.rotationPitch = entitylivingbase.rotationPitch * 0.5F; this.setRotation(this.rotationYaw, this.rotationPitch); this.rotationYawHead = this.renderYawOffset = this.rotationYaw; strafe = entitylivingbase.moveStrafing * 0.5F; forward = entitylivingbase.moveForward; if (forward <= 0.0F) { forward *= 0.25F; this.gallopTime = 0; } if (this.jumpPower > 0.0F && !this.isJumping() && this.onGround) { this.motionY = this.getJumpStrength() * (double)this.jumpPower; if (this.isPotionActive(MobEffects.JUMP_BOOST)) { this.motionY += (double)((float)(this.getActivePotionEffect(MobEffects.JUMP_BOOST).getAmplifier() + 1) * 0.1F); } this.setJumping(true); this.isAirBorne = true; if (forward > 0.0F) { float f = MathHelper.sin(this.rotationYaw * 0.017453292F); float f1 = MathHelper.cos(this.rotationYaw * 0.017453292F); this.motionX += (double)(-0.4F * f * this.jumpPower); this.motionZ += (double)(0.4F * f1 * this.jumpPower); this.playSound(SoundEvents.ENTITY_HORSE_JUMP, 0.4F, 1.0F); } this.jumpPower = 0.0F; net.minecraftforge.common.ForgeHooks.onLivingJump(this); } this.stepHeight = 1.0F; this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; if (this.canPassengerSteer()) { this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue()); super.moveEntityWithHeading(strafe, forward); } else if (entitylivingbase instanceof EntityPlayer) { this.motionX = 0.0D; this.motionY = 0.0D; this.motionZ = 0.0D; } if (this.onGround) { this.jumpPower = 0.0F; this.setJumping(false); } this.prevLimbSwingAmount = this.limbSwingAmount; double d1 = this.posX - this.prevPosX; double d0 = this.posZ - this.prevPosZ; float f2 = MathHelper.sqrt_double(d1 * d1 + d0 * d0) * 4.0F; if (f2 > 1.0F) { f2 = 1.0F; } this.limbSwingAmount += (f2 - this.limbSwingAmount) * 0.4F; this.limbSwing += this.limbSwingAmount; } else { this.stepHeight = 0.5F; this.jumpMovementFactor = 0.02F; super.moveEntityWithHeading(strafe, forward); } } /** * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden * by a player and the player is holding a carrot-on-a-stick */ public boolean canBeSteered() { Entity entity = this.getControllingPassenger(); return entity instanceof EntityLivingBase; } /** * For vehicles, the first passenger is generally considered the controller and "drives" the vehicle. For example, * Pigs, Horses, and Boats are generally "steered" by the controlling passenger. */ public Entity getControllingPassenger() { return this.getPassengers().isEmpty() ? null : (Entity)this.getPassengers().get(0); } public void fall(float distance, float damageMultiplier) { if (distance > 1.0F) { this.playSound(SoundEvents.ENTITY_HORSE_LAND, 0.4F, 1.0F); } int i = MathHelper.ceiling_float_int((distance * 0.5F - 3.0F) * damageMultiplier); if (i > 0) { this.attackEntityFrom(DamageSource.fall, (float)i); if (this.isBeingRidden()) { for (Entity entity : this.getRecursivePassengers()) { entity.attackEntityFrom(DamageSource.fall, (float)i); } } IBlockState iblockstate = this.worldObj.getBlockState(new BlockPos(this.posX, this.posY - 0.2D - (double)this.prevRotationYaw, this.posZ)); Block block = iblockstate.getBlock(); if (iblockstate.getMaterial() != Material.AIR && !this.isSilent()) { SoundType soundtype = block.getSoundType(); this.worldObj.playSound((EntityPlayer)null, this.posX, this.posY, this.posZ, soundtype.getStepSound(), this.getSoundCategory(), soundtype.getVolume() * 0.5F, soundtype.getPitch() * 0.75F); } } } } Terrakon package novaviper.tetracraft.common.entity; import com.google.common.base.Predicate; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.*; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.passive.EntityRabbit; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.init.SoundEvents; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.util.*; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; import novaviper.tetracraft.common.helper.ChatHelper; import novaviper.tetracraft.common.init.ModItems; import novaviper.tetracraft.common.init.ModLootTables; import novaviper.tetracraft.common.util.ItemUtils; import novaviper.tetracraft.lib.Constants; import novaviper.tetracraft.lib.ModSoundEvents; import java.util.UUID; /** * Created by NovaViper on 3/1/2016. * Class Purpose: Main Entity class for the Terrakon */ public class EntityTerrakon extends EntityModRideableTameable { public EntityTerrakon(World worldIn) { super(worldIn); this.setSize(1, 1.5f); this.tasks.addTask(1, new EntityAISwimming(this)); this.tasks.addTask(2, this.aiSit = new EntityAISit(this)); this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); this.tasks.addTask(4, new EntityAIAttackMelee(this, 1.0D, true)); this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(9, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true, new Class[0])); this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntityAnimal.class, false, new Predicate<Entity>() { public boolean apply(Entity entity) { return entity instanceof EntityCow || entity instanceof EntityRabbit; } })); this.setTamed(false); } protected void applyEntityAttributes() { super.applyEntityAttributes(); this.updateEntityAttributes(); } @Override public void updateEntityAttributes() { this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.40000001192092896D); if(this.isTamed()){ if(!this.isChild()){ this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(50.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(6.0D); }else{ this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(1.0D); } }else{ if(!this.isChild()) { this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(40.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(6.0D); }else{ this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(1.0D); } } } @Override protected SoundEvent getStepSound() { return SoundEvents.ENTITY_WOLF_STEP; } @Override protected SoundEvent getGallopSound() { return SoundEvents.ENTITY_HORSE_GALLOP; } @Override protected SoundEvent getHurtSound() { return ModSoundEvents.terrakonHurt; } @Override protected SoundEvent getDeathSound() { return ModSoundEvents.terrakonDeath; } @Override protected SoundEvent getAmbientSound() { // if(!this.inFinalStage()){ return isAngry() ? ModSoundEvents.terrakonGrowl : rand.nextInt(3) == 0 ? isTamed() && getHealth() <= Constants.lowHP ? ModSoundEvents.terrakonWhine : ModSoundEvents.terrakonPanting : ModSoundEvents.terrakonBark; /* }else{ return Sound.; } */ } /** * Get number of ticks, at least during which the living entity will be * silent. */ @Override public int getTalkInterval() { if (getHealth() <= Constants.lowHP && !this.isChild()) { return 20; } else { return super.getTalkInterval(); } } /** * Returns the volume for the sounds this mob makes. */ @Override public float getSoundVolume() { return 2F; } /** * Gets the pitch of living sounds in living entities. */ @Override public float getPitch() { if (!isChild()) { return super.getSoundPitch(); } else { return super.getSoundPitch() * 1; } } /** * Called when the entity is attacked. */ public boolean attackEntityFrom(DamageSource source, float amount) { if (this.isEntityInvulnerable(source)) { return false; } else { Entity entity = source.getEntity(); this.aiSit.setSitting(false); if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) { amount = (amount + 1.0F) / 2.0F; } return super.attackEntityFrom(source, amount); } } public boolean attackEntityAsMob(Entity entityIn) { boolean flag = entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), (float) ((int) this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue())); if (flag) { this.applyEnchantments(this, entityIn); this.updateEntityAttributes(); } return flag; } public void setTamed(boolean tamed) { super.setTamed(tamed); this.updateEntityAttributes(); } /** * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. */ @Override public boolean processInteract(EntityPlayer player, EnumHand hand, ItemStack stack) { if (stack != null && stack.getItem() == Items.SPAWN_EGG) { return super.processInteract(player, hand, stack); } if (this.isTamed()) { if (stack != null) { if (stack.getItem() instanceof ItemFood) { ItemFood itemfood = null; if (getHealthRelative() < 1) { itemfood = (ItemFood) ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, this.populateEatableFoods()); if (itemfood != null) { float volume = getSoundVolume() * 1.0f; float pitch = getPitch(); BlockPos pos = this.getPosition(); worldObj.playSound(player, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.ENTITY_GENERIC_EAT, SoundCategory.NEUTRAL, volume, pitch); this.heal(itemfood.getHealAmount(stack)); } return true; } } else if (stack.getItem() == Items.SHEARS && this.canInteract(player)) { if (isServer()) { unTame(); this.setSaddled(false); } return true; } else if (ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, Items.SADDLE) && !this.isSaddled() && isServer()) { if(this.canInteract(player)) { if (!this.isChild()) { this.setSaddled(true); this.playSound(ModSoundEvents.Saddle, 0.5F, 1.0F); } else { TextComponentTranslation text = ChatHelper.getChatComponentTranslation("interaction.tetracraft.entity.cannotBeRidden"); this.tooYoungForInteract((EntityModTameable) this, player, text); return true; } }else{ this.doNotOwnMessage((EntityModTameable)this, player); } }else if(stack.getItem() == Items.STICK && this.isSaddled() && !player.onGround){ if(this.canInteract(player)) { this.makePlayerRide(player); }else{ this.doNotOwnMessage((EntityModTameable)this, player); } return true; } /*else if (stack.getItem() == Items.stick && canInteract(player)) { if (isServer()) { player.openGui(TetraCraft.instance, CommonProxy.PetPack, this.worldObj, this.getEntityId(), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ)); this.worldObj.playSoundEffect(this.posX, this.posY + 0.5D, this.posZ, "random.chestopen", 0.5F, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); return true; } }*/ else if (ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, Items.DYE) && this.canInteract(player)) { EnumDyeColor enumdyecolor = EnumDyeColor.byDyeDamage(stack.getMetadata()); if (enumdyecolor != this.getCollarColor()) { this.setCollarColor(enumdyecolor); return true; } } } if (canInteract(player) && isServer() && !this.isBreedingItem(stack)) { this.aiSit.setSitting(!this.isSitting()); this.isJumping = false; this.navigator.clearPathEntity(); this.setAttackTarget((EntityLivingBase)null); } } else if (ItemUtils.consumeEquipped(player, EntityEquipmentSlot.MAINHAND, Items.BONE) && !this.isAngry()) { if (isServer()) { tamedFor(player, this.rand.nextInt(3) == 0); } return true; } return super.processInteract(player, hand, stack); } /** * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on * the animal type) */ public boolean isBreedingItem(ItemStack stack) { return stack == null ? false : stack.getItem() == ModItems.breedingBone; } @Override public Item[] populateEatableFoods() { super.populateEatableFoods(); Item[] food = {Items.BEEF, Items.CHICKEN, Items.PORKCHOP, Items.MUTTON, Items.RABBIT, Items.FISH, Items.COOKED_BEEF, Items.COOKED_CHICKEN, Items.COOKED_PORKCHOP, Items.COOKED_MUTTON, Items.COOKED_RABBIT, Items.COOKED_FISH}; return food; } @Override protected ResourceLocation getLootTable() { return ModLootTables.LootTableTerrakon; } /** * Returns true if the mob is currently able to mate with the specified mob. */ @Override public boolean canMateWith(EntityAnimal otherAnimal) { if (otherAnimal == this) { return false; } else if (!this.isTamed()) { return false; } else if (!(otherAnimal instanceof EntityTerrakon)) { return false; } else { EntityTerrakon entityTerrakon = (EntityTerrakon) otherAnimal; return !entityTerrakon.isTamed() ? false : (entityTerrakon.isSitting() ? false : this.getGender() == entityTerrakon.getGender() ? false : this.isInLove() && entityTerrakon.isInLove()); } } @Override public EntityTerrakon createChild(EntityAgeable ageable) { EntityTerrakon entityTerrakon = new EntityTerrakon(this.worldObj); UUID uuid = this.getOwnerId(); if (uuid != null) { entityTerrakon.setOwnerId(uuid); entityTerrakon.setTamed(true); } return entityTerrakon; } }
-
I tried but whenever my entity plays the sound, it still says the default subtitle instead of mine, but when the horse plays it, it uses my subtitle { "entity.terrakon.bark": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/bark1", "tetracraft:entity/terrakon/bark2", "tetracraft:entity/terrakon/bark3"], "subtitle": "subtitles.tetracraft:entity.terrakon.bark"}, "entity.terrakon.growl": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/growl1", "tetracraft:entity/terrakon/growl2", "tetracraft:entity/terrakon/growl3"], "subtitle": "subtitles.tetracraft:entity.terrakon.growl"}, "entity.terrakon.hurt": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/hurt1", "tetracraft:entity/terrakon/hurt2", "tetracraft:entity/terrakon/hurt3"], "subtitle": "subtitles.tetracraft:entity.terrakon.hurt"}, "entity.terrakon.pant": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/panting"], "subtitle": "subtitles.tetracraft:entity.terrakon.pant"}, "entity.terrakon.whine": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/whine"], "subtitle": "subtitles.tetracraft:entity.terrakon.whine"}, "entity.terrakon.death": {"category": "neutral", "sounds": ["tetracraft:entity/terrakon/death"], "subtitle": "subtitles.tetracraft:entity.terrakon.death"}, "action.land": {"category": "neutral", "sounds": ["tetracraft:action/land"], "subtitle": "subtitles.tetracraft:action.land"}, "entity.horse.saddle": {"category": "neutral", "replace": true, "sounds": [], "subtitle": "subtitles.tetracraft:action.saddle"} }
-
I know that but I want to keep that sound but override the subtitles
-
Another question, how would I override the sound events of the horse saddle equipping How do I override this?
-
I used the same methods that EntityHorse used and got it work. Thanks!
-
What do I do after implementing IJumpingMount?
-
Hey, I'm trying to make my entity jump whenever I press the spacebar when riding on it but it's not jumping. Source code is this build
-
[1.8 and 1.9] Having a few issues on 1.9 and 1.8
NovaViper replied to NovaViper's topic in Modder Support
Ok -
[1.8 and 1.9] Having a few issues on 1.9 and 1.8
NovaViper replied to NovaViper's topic in Modder Support
Hey, I'm trying to make my entity jump whenever I press the spacebar when riding on it. Source code is this build -
[1.8 and 1.9] Having a few issues on 1.9 and 1.8
NovaViper replied to NovaViper's topic in Modder Support
I know but I've done this and it doesn't change if (!this.isChild()) { if (this.isTamed()) { this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(50.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(6.0D); } else { this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(40.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(6.0D); } } else { this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(10.0D); this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(1.0D); } -
[1.8 and 1.9] Having a few issues on 1.9 and 1.8
NovaViper replied to NovaViper's topic in Modder Support
It's suppose to and I think it does the same for Vanilla Wolves, their code is like this: if (this.isTamed()) { this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(20.0D); } else { this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(8.0D); } -
[1.8 and 1.9] Having a few issues on 1.9 and 1.8
NovaViper replied to NovaViper's topic in Modder Support
Oh Choonster, I notice that whenever I make the entity the baby, it's stats do not change Source is on Github -
[1.8 and 1.9] Having a few issues on 1.9 and 1.8
NovaViper replied to NovaViper's topic in Modder Support
Thanks! Now the entity is dropping items!