perromercenary00
Members-
Posts
849 -
Joined
-
Last visited
-
Days Won
5
Everything posted by perromercenary00
-
good days i found another feature hidden in 1.8 wen you create a recipe in way it return an item and a empy bucket all the derivated craftings using that item will return empty buckets and i have //Hierro al rojo vivo GameRegistry.addSmelting(Items.iron_ingot, new ItemStack(MercenaryModItems.hierroAlrojo), 0.7F); //and then acero mercenario GameRegistry.addRecipe(new ItemStack(MercenaryModItems.aceroMercenario.setContainerItem(Items.bucket)), new Object[] {" # ", " W ", " ", '#' , MercenaryModItems.hierroAlrojo, 'W' , Items.water_bucket }); //whit aceromercenerio i do barra de acero notese there is no bucket in this recipe but return buckets as well GameRegistry.addRecipe(new ItemStack(MercenaryModItems.barradeAcero,4), new Object[] {" ", " # ", " # ", '#', MercenaryModItems.aceroMercenario, }); and here a video showing the issue is there workaround for this i realy like the idea of make steel trowing hot iron in a water bucket but this way i must change the recipe for the sake of logic
-
good catching up with my progress here is video i create a 3d gun and added animations for shoot and clip change using the json files. but there are some details to correct the swing efect wen aim a block or mob from close range is very anoing make the gun go up an down i need to disable this feature to keep the gun still while shooting and dont know how to doit I want the gun to flash wen shoot but that's for another question in forum. thirth and main question I managed to make bullets modifying the snowball.class but the bullets has the snowballs defects , bullets dont' pass through tall grass or sugar cane and have just like 30feets reach range this could be solved by doing again my bullets with entityArrow.Class and there is where I get stuck. do not understand how things are declaring there, need to remove the arrow pulling to always get their maximum power , need to remove the texture of the arrow to be invisible coz you can see a bullet trougth the air, need to change the arrow speed to cathch up whit a bullet and need to change the damage cause to the entitys wen hit could you help me what I should change the entityArrow.Class to make this i dont gona post the colt1911.class is long has 3 threads and a lot of json for every step of the animation 39 for be more acurated and still is choppi here is mi actual bullet maked whith snowBall class package mercenarymod.entes.balas; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IProjectile; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class balaPunto45ACP extends EntityThrowable implements IProjectile { private static final String __OBFID = "CL_00001722"; public balaPunto45ACP(World worldIn) { super(worldIn); } public balaPunto45ACP(World worldIn, EntityLivingBase p_i1774_2_) { super(worldIn, p_i1774_2_); } public balaPunto45ACP(World worldIn, double x, double y, double z) { super(worldIn, x, y, z); } protected void onImpact(MovingObjectPosition p_70184_1_) { if (p_70184_1_.entityHit != null) { byte b0 = 8; if (p_70184_1_.entityHit instanceof EntityBlaze) { b0 = 8; } p_70184_1_.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), (float)b0); } for (int i = 0; i < 8; ++i) { this.worldObj.spawnParticle(EnumParticleTypes.FLAME, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D, new int[0]); } if (!this.worldObj.isRemote) { this.setDead(); } } } and this is mi try whith entity arrow package mercenarymod.entes.balas;import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IProjectile; import net.minecraft.entity.monster.EntityEnderman; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.play.server.S2BPacketChangeGameState; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class balaPunto45ACPv2 extends Entity implements IProjectile { private int xTile = -1; private int yTile = -1; private int zTile = -1; private Block inTile; private int inData; private boolean inGround; public int canBePickedUp; public int arrowShake; public Entity shootingEntity; private int ticksInGround; private int ticksInAir; private double damage = 8.0D; private int knockbackStrength; private static final String __OBFID = "CL_00001715"; public balaPunto45ACPv2(World worldIn) { super(worldIn); this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); } public balaPunto45ACPv2(World worldIn, double x, double y, double z) { super(worldIn); this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); this.setPosition(x, y, z); } public balaPunto45ACPv2(World worldIn, EntityLivingBase shooter, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) { super(worldIn); this.renderDistanceWeight = 10.0D; this.shootingEntity = shooter; if (shooter instanceof EntityPlayer) { this.canBePickedUp = 0; } this.posY = shooter.posY + (double)shooter.getEyeHeight() - 0.10000000149011612D; double d0 = p_i1755_3_.posX - shooter.posX; double d1 = p_i1755_3_.getEntityBoundingBox().minY + (double)(p_i1755_3_.height / 3.0F) - this.posY; double d2 = p_i1755_3_.posZ - shooter.posZ; double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d2 * d2); if (d3 >= 1.0E-7D) { float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); double d4 = d0 / d3; double d5 = d2 / d3; this.setLocationAndAngles(shooter.posX + d4, this.posY, shooter.posZ + d5, f2, f3); float f4 = (float)(d3 * 0.20000000298023224D); this.setThrowableHeading(d0, d1 + (double)f4, d2, p_i1755_4_, p_i1755_5_); } } public balaPunto45ACPv2(World worldIn, EntityLivingBase shooter, float p_i1756_3_) { super(worldIn); this.renderDistanceWeight = 10.0D; this.shootingEntity = shooter; if (shooter instanceof EntityPlayer) { this.canBePickedUp = 1; } this.setSize(0.5F, 0.5F); this.setLocationAndAngles(shooter.posX, shooter.posY + (double)shooter.getEyeHeight(), shooter.posZ, shooter.rotationYaw, shooter.rotationPitch); this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); this.posY -= 0.10000000149011612D; this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); this.setPosition(this.posX, this.posY, this.posZ); this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); } protected void entityInit() { this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); } public void setThrowableHeading(double x, double y, double z, float velocity, float inaccuracy) { float f2 = MathHelper.sqrt_double(x * x + y * y + z * z); x /= (double)f2; y /= (double)f2; z /= (double)f2; x += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)inaccuracy; y += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)inaccuracy; z += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)inaccuracy; x *= (double)velocity; y *= (double)velocity; z *= (double)velocity; this.motionX = x; this.motionY = y; this.motionZ = z; float f3 = MathHelper.sqrt_double(x * x + z * z); this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(x, z) * 180.0D / Math.PI); this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(y, (double)f3) * 180.0D / Math.PI); this.ticksInGround = 0; } @SideOnly(Side.CLIENT) public void func_180426_a(double p_180426_1_, double p_180426_3_, double p_180426_5_, float p_180426_7_, float p_180426_8_, int p_180426_9_, boolean p_180426_10_) { this.setPosition(p_180426_1_, p_180426_3_, p_180426_5_); this.setRotation(p_180426_7_, p_180426_8_); } @SideOnly(Side.CLIENT) public void setVelocity(double x, double y, double z) { this.motionX = x; this.motionY = y; this.motionZ = z; if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { float f = MathHelper.sqrt_double(x * x + z * z); this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(x, z) * 180.0D / Math.PI); this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(y, (double)f) * 180.0D / Math.PI); this.prevRotationPitch = this.rotationPitch; this.prevRotationYaw = this.rotationYaw; this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); this.ticksInGround = 0; } } public void onUpdate() { super.onUpdate(); if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); } BlockPos blockpos = new BlockPos(this.xTile, this.yTile, this.zTile); IBlockState iblockstate = this.worldObj.getBlockState(blockpos); Block block = iblockstate.getBlock(); if (block.getMaterial() != Material.air) { block.setBlockBoundsBasedOnState(this.worldObj, blockpos); AxisAlignedBB axisalignedbb = block.getCollisionBoundingBox(this.worldObj, blockpos, iblockstate); if (axisalignedbb != null && axisalignedbb.isVecInside(new Vec3(this.posX, this.posY, this.posZ))) { this.inGround = true; } } if (this.arrowShake > 0) { --this.arrowShake; } if (this.inGround) { int j = block.getMetaFromState(iblockstate); if (block == this.inTile && j == this.inData) { ++this.ticksInGround; if (this.ticksInGround >= 1200) { this.setDead(); } } else { this.inGround = false; this.motionX *= (double)(this.rand.nextFloat() * 0.2F); this.motionY *= (double)(this.rand.nextFloat() * 0.2F); this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); this.ticksInGround = 0; this.ticksInAir = 0; } } else { ++this.ticksInAir; Vec3 vec31 = new Vec3(this.posX, this.posY, this.posZ); Vec3 vec3 = new Vec3(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); MovingObjectPosition movingobjectposition = this.worldObj.rayTraceBlocks(vec31, vec3, false, true, false); vec31 = new Vec3(this.posX, this.posY, this.posZ); vec3 = new Vec3(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); if (movingobjectposition != null) { vec3 = new Vec3(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); } Entity entity = null; List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox().addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); double d0 = 0.0D; int i; float f1; for (i = 0; i < list.size(); ++i) { Entity entity1 = (Entity)list.get(i); if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) { f1 = 0.3F; AxisAlignedBB axisalignedbb1 = entity1.getEntityBoundingBox().expand((double)f1, (double)f1, (double)f1); MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); if (movingobjectposition1 != null) { double d1 = vec31.distanceTo(movingobjectposition1.hitVec); if (d1 < d0 || d0 == 0.0D) { entity = entity1; d0 = d1; } } } } if (entity != null) { movingobjectposition = new MovingObjectPosition(entity); } if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) { EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) { movingobjectposition = null; } } float f2; float f3; float f4; if (movingobjectposition != null) { if (movingobjectposition.entityHit != null) { f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); int k = MathHelper.ceiling_double_int((double)f2 * this.damage); if (this.getIsCritical()) { k += this.rand.nextInt(k / 2 + 2); } DamageSource damagesource; if (this.shootingEntity == null) { damagesource = DamageSource.causeThrownDamage(this, this); } else { damagesource = DamageSource.causeThrownDamage(this, this.shootingEntity); } if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) { movingobjectposition.entityHit.setFire(5); } if (movingobjectposition.entityHit.attackEntityFrom(damagesource, (float)k)) { if (movingobjectposition.entityHit instanceof EntityLivingBase) { EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; if (!this.worldObj.isRemote) { entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1); } if (this.knockbackStrength > 0) { f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); if (f4 > 0.0F) { movingobjectposition.entityHit.addVelocity(this.motionX * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4, 0.1D, this.motionZ * (double)this.knockbackStrength * 0.6000000238418579D / (double)f4); } } if (this.shootingEntity instanceof EntityLivingBase) { EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); } if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) { ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); } } this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); if (!(movingobjectposition.entityHit instanceof EntityEnderman)) { this.setDead(); } } else { this.motionX *= -0.10000000149011612D; this.motionY *= -0.10000000149011612D; this.motionZ *= -0.10000000149011612D; this.rotationYaw += 180.0F; this.prevRotationYaw += 180.0F; this.ticksInAir = 0; } } else { BlockPos blockpos1 = movingobjectposition.getBlockPos(); this.xTile = blockpos1.getX(); this.yTile = blockpos1.getY(); this.zTile = blockpos1.getZ(); iblockstate = this.worldObj.getBlockState(blockpos1); this.inTile = iblockstate.getBlock(); this.inData = this.inTile.getMetaFromState(iblockstate); this.motionX = (double)((float)(movingobjectposition.hitVec.xCoord - this.posX)); this.motionY = (double)((float)(movingobjectposition.hitVec.yCoord - this.posY)); this.motionZ = (double)((float)(movingobjectposition.hitVec.zCoord - this.posZ)); f3 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); this.posX -= this.motionX / (double)f3 * 0.05000000074505806D; this.posY -= this.motionY / (double)f3 * 0.05000000074505806D; this.posZ -= this.motionZ / (double)f3 * 0.05000000074505806D; this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); this.inGround = true; this.arrowShake = 7; this.setIsCritical(false); if (this.inTile.getMaterial() != Material.air) { this.inTile.onEntityCollidedWithBlock(this.worldObj, blockpos1, iblockstate, this); } } } if (this.getIsCritical()) { for (i = 0; i < 4; ++i) { this.worldObj.spawnParticle(EnumParticleTypes.CRIT, this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D, -this.motionX, -this.motionY + 0.2D, -this.motionZ, new int[0]); } } this.posX += this.motionX; this.posY += this.motionY; this.posZ += this.motionZ; f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { ; } while (this.rotationPitch - this.prevRotationPitch >= 180.0F) { this.prevRotationPitch += 360.0F; } while (this.rotationYaw - this.prevRotationYaw < -180.0F) { this.prevRotationYaw -= 360.0F; } while (this.rotationYaw - this.prevRotationYaw >= 180.0F) { this.prevRotationYaw += 360.0F; } this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; f3 = 0.99F; f1 = 0.05F; if (this.isInWater()) { for (int l = 0; l < 4; ++l) { f4 = 0.25F; this.worldObj.spawnParticle(EnumParticleTypes.WATER_BUBBLE, this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ, new int[0]); } f3 = 0.6F; } if (this.isWet()) { this.extinguish(); } this.motionX *= (double)f3; this.motionY *= (double)f3; this.motionZ *= (double)f3; this.motionY -= (double)f1; this.setPosition(this.posX, this.posY, this.posZ); this.doBlockCollisions(); } } public void writeEntityToNBT(NBTTagCompound tagCompound) { tagCompound.setShort("xTile", (short)this.xTile); tagCompound.setShort("yTile", (short)this.yTile); tagCompound.setShort("zTile", (short)this.zTile); tagCompound.setShort("life", (short)this.ticksInGround); ResourceLocation resourcelocation = (ResourceLocation)Block.blockRegistry.getNameForObject(this.inTile); tagCompound.setString("inTile", resourcelocation == null ? "" : resourcelocation.toString()); tagCompound.setByte("inData", (byte)this.inData); tagCompound.setByte("shake", (byte)this.arrowShake); tagCompound.setByte("inGround", (byte)(this.inGround ? 1 : 0)); tagCompound.setByte("pickup", (byte)this.canBePickedUp); tagCompound.setDouble("damage", this.damage); } public void readEntityFromNBT(NBTTagCompound tagCompund) { this.xTile = tagCompund.getShort("xTile"); this.yTile = tagCompund.getShort("yTile"); this.zTile = tagCompund.getShort("zTile"); this.ticksInGround = tagCompund.getShort("life"); if (tagCompund.hasKey("inTile", ) { this.inTile = Block.getBlockFromName(tagCompund.getString("inTile")); } else { this.inTile = Block.getBlockById(tagCompund.getByte("inTile") & 255); } this.inData = tagCompund.getByte("inData") & 255; this.arrowShake = tagCompund.getByte("shake") & 255; this.inGround = tagCompund.getByte("inGround") == 1; if (tagCompund.hasKey("damage", 99)) { this.damage = tagCompund.getDouble("damage"); } if (tagCompund.hasKey("pickup", 99)) { this.canBePickedUp = tagCompund.getByte("pickup"); } else if (tagCompund.hasKey("player", 99)) { this.canBePickedUp = tagCompund.getBoolean("player") ? 1 : 0; } } public void onCollideWithPlayer(EntityPlayer entityIn) { if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && entityIn.capabilities.isCreativeMode; if (this.canBePickedUp == 1 && !entityIn.inventory.addItemStackToInventory(new ItemStack(Items.arrow, 1))) { flag = false; } if (flag) { this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); entityIn.onItemPickup(this, 1); this.setDead(); } } } protected boolean canTriggerWalking() { return false; } public void setDamage(double p_70239_1_) { this.damage = p_70239_1_; } public double getDamage() { return this.damage; } public void setKnockbackStrength(int p_70240_1_) { this.knockbackStrength = p_70240_1_; } public boolean canAttackWithItem() { return false; } public void setIsCritical(boolean p_70243_1_) { byte b0 = this.dataWatcher.getWatchableObjectByte(16); if (p_70243_1_) { this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); } else { this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); } } public boolean getIsCritical() { byte b0 = this.dataWatcher.getWatchableObjectByte(16); return (b0 & 1) != 0; } }
-
good days i have doit a custom handgun i doit playing whith the jsons files and im feel pretty pride of the resulting model. but i have a gun but no bulllets to shot whith long ago i read a guide to create custome arrows in [1.7.2] but today dont find it anywere its like someone delete it from absoluti all internet and dont understend cos is not the fucking liberator blue prints. could some please explainme how i do to create a custome bullet, this bullet must do like 8 damage points wen touch an entity and have very less fall angle than arrow .
-
[1.8]Disable pickaxe swing animation? is posible
perromercenary00 replied to perromercenary00's topic in Modder Support
Uooooo so thats method is for make a custom accion went i swing this especific item on a Entity -
yeah i been wondering something about. i just have like tre monts in this of making mods and never i been doing an entity i not yet reach that part but the ohter day i have to modify a parental json in this post http://www.minecraftforge.net/forum/index.php/topic,26116.0.html i realize that you can add more squares and create a more complex model just working whiht parental json is far from you could do whith techne but soo if there is out there some program or techne plugin alowing to save models to json files . that would be great
-
[1.8]Disable pickaxe swing animation? is posible
perromercenary00 replied to perromercenary00's topic in Modder Support
this wont work either public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.NONE; //return EnumAction.BOW; } -
[1.8]Disable pickaxe swing animation? is posible
perromercenary00 replied to perromercenary00's topic in Modder Support
nop not working loks more like a method to do something wen swing @Override public boolean onEntitySwing(EntityLivingBase entityLiving, ItemStack stack) { return true; } -
good days idoo item extending the pickaxe class, but like all the items wen rigth click over a block it does a swing like pickaxe breaking blocks i wanna disable this behaviour i wanna this item to stands still wen rigth or left click, but du not now what to override help??
-
i doo all my moding stuff in linux also have like year and half playing minecraft whiout trouble, and been playn in lan, but I never been test a minecraft server here.
-
good nigths i have made a tool that consume suspensionderedstoneActivada a custom metaItem whit 8 meta sub items representing the remaining redstone in the bottle, soo this item activate a thread0 and dath threat0 active another thread1 this treath1 has entityplayer and remote world and i wanna from this thread1 replace the bottle of suspencionderedstone in the steve inventory , but thats the trouble to sucefully change an item for other you must changed it first in remote world an then in the local world but how i get it set is, well hard to acomplish it try to change sometimes works sometimes not, and sometimes it change but wen open inventory it swichs back to how it was before , very anoing but sad i read somewhere in the forums que, in 1.8 you just have to set blocks in remote world and then it set the blocks automatically in the local word, i have no test this but for the same ¿there is a way to set a custom item in a specific slot of inventory just doing it in remote world ? public static boolean consumirCombustible(){ chat.chatda(steve, "consumirCombustible()"); int slot=combustible0.get(0); int meta;//=combustible0.get(1); ItemStack salida; ItemStack sl =steve.inventory.getStackInSlot(slot); if (sl == null){combustible=false;return false;} else{ String slname=sl.getUnlocalizedName(); String srname="suspensionderedstoneactivada"; if (slname.equals(srname)){ meta=sl.getMetadata(); if (meta==0){salida= new ItemStack(Items.glass_bottle,1,0);} else{ salida= new ItemStack(MercenaryModItems.suspensionderedstoneActivada,1,(meta-1));} //aqui! steve.inventory.setInventorySlotContents(slot, salida); //aqui! chat.chatr(steve, "consumirCombustible()"); return true; }else{combustible=false;return false;} }}
-
yesterday i do this two parentals. https://www.dropbox.com/s/tn2v8juk168aspu/parentalX.png?dl=0 parental_X.json { "ambientocclusion": false, "textures": { "particle": "#cross" }, "elements": [ { "from": [ 6.0, 0, 8 ], "to": [ 10.0, 16, 8 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" }, "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" } } }, { "from": [ 8, 0, 6.0 ], "to": [ 8, 16, 10.0 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" }, "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" } } } ] } https://www.dropbox.com/s/mhforol80875lfr/ParentalRombo.png?dl=0 parentalRombo.json { "ambientocclusion": false, "textures": { "particle": "#cross" }, "elements": [ { "from": [ 6.0, 0, 6.0 ], "to": [ 10.0, 16, 10.0 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" }, "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" }, "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" }, "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" }, "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" }, "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#all" } } } ] }
-
well this is rare i create a door block whit the texture of the trap door, but you can see trougth the holes in the door just four plain black squares. i change the parental json to cube_all to get a full block but dont solve the issue soo i take the texture of the yellow glass and set it to the custome door https://www.dropbox.com/s/b3s14pudaacis4d/amarillo.png?dl=0 to the left a column of 3 yellow stained glass, to the rigth a column of 3 blocks of my custome block door in the hot bar the two blocks are transparents and in the steve hand the block is traslucent as well but wen put in the world its become opaque ¿it is a flag i been forgothing, was looking in the glass.class and don't see nothing special either in glass_yellow { "parent": "block/cube_all", "textures": { "all": "blocks/glass_yellow" } } help please
-
jajaja im actualy having same trouble but im doing a trapdoor if you do the json based on the normal 1M block you get a normal 1M block in the json must config how tu cut the texture for wath you want and thaths were am i https://www.dropbox.com/s/ozfekyivocqz91b/puertas.png?dl=0 i dont get yet how this "uv" works or what is "cullface" .minecraft-18/versions/1.8/1.8/assets/minecraft/models/block/door_bottom_rh.json { "ambientocclusion": false, "textures": { "particle": "#top" }, "elements": [ { "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { "up": { "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "up" }, "north": { "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north" }, "south": { "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south" }, "west": { "uv": [ 16, 0, 0, 16 ], "texture": "#top", "cullface": "west" }, "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#top" } } } ] } for the way looks your ray you alse gonna need a custom parental json like a choped cross.json but horizontal .minecraft-18/versions/1.8/1.8/assets/minecraft/models/block/cross.json { "ambientocclusion": false, "textures": { "particle": "#cross" }, "elements": [ { "from": [ 0.8, 0, 8 ], "to": [ 15.2, 16, 8 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } } }, { "from": [ 8, 0, 0.8 ], "to": [ 8, 16, 15.2 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } } } ] } the cross is the parental minecraft uses to render the sapplins wen planted one texture whith two planes in x
-
E nop i am the one suffering here but i get somethink the are making it simply to not have to fuck up whith gl11 or tessellators but ,there is no documentation which would be very nice, actualy i get the idea, now is more simple to rotate and reescalated items, two days ago i found how to make layer textures whith the items and you can combine animated textures whith static textutes just defining in the layers in the json , i have the teory that is posible to use layers on block texturex and the key in the class snow layer but io have not realize yet how to set the layers in blocks json suspensionderedstone.json { "parent": "builtin/generated", "textures": { "layer0": "modmercenario:items/redstone/redstoneNIvel8" "layer1": "modmercenario:items/redstone/botellaVacia" }, "display": { "thirdperson": { "rotation": [ -90, 0, 0 ], "translation": [ 0, 1, -3 ], "scale": [ 0.55, 0.55, 0.55 ] }, "firstperson": { "rotation": [ 0, -135, 25 ], "translation": [ 0, 4, 2 ], "scale": [ 1.7, 1.7, 1.7 ] } } } in the other hand it will be nice if they make minecraft to atomatically register al the jsons in the models folder and shorten the code to set which item/block has which texture in inventory setTexture(ItemBlock,0 ,file.json); //but this what i doit in mi register class
-
this cost me a lot of time to figuret out cos has become very more complex of what was in 1.7 to spawn this block in the world i must do call IBlockState gira = MercenaryModBlocks.girable.getDefaultState(); worldIn.setBlockState(pos , gira); // spawn it whith a custom orientation. //looking south worldIn.setBlockState(pos, gira.withProperty(FACING, EnumFacing.SOUTH), 2); //looking east worldIn.setBlockState(pos, gira.withProperty(FACING, EnumFacing.EAST), 2); //looking up worldIn.setBlockState(pos , gira.withProperty(FACING, EnumFacing.UP), 2); this is the class of one simple multitexture block package mercenarymod.blocks.multitextura; import java.util.Random; import org.apache.logging.log4j.core.config.Property; import mercenarymod.Mercenary; import mercenarymod.blocks.MercenaryModBlocks; import net.minecraft.block.Block; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.EnumFacing; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import mercenarymod.utilidades.chat; import net.minecraft.entity.EntityLivingBase; public class girable extends Block { public static String name = "girable"; public static final PropertyDirection FACING = PropertyDirection.create("facing"); public girable() { super(Material.glass); setUnlocalizedName(Mercenary.MODID + "_" + name); GameRegistry.registerBlock(this, name); setCreativeTab(Mercenary.herramientas); //this.maxStackSize = 1; } public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(MercenaryModBlocks.girable); } //###########################################################3 public boolean isOpaqueCube() { return false; } public boolean isFullCube() { return false; } //###########################################################3 public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) { System.out.println("NU SE QUE SERA \n YA tengo una idea de que es ="+FACING); Block fur = Blocks.furnace; fur.getActualState(state, worldIn, pos); IBlockState state1 = fur.getDefaultState(); //worldIn.setBlockState(pos, state); worldIn.setBlockState(pos, state.withProperty(FACING, side), 2); return false;} //###########################################################3 public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock) { } //###########################################################3 public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { worldIn.setBlockState(pos, state.withProperty(FACING, getFacingFromEntity(worldIn, pos, placer)), 2); } //###########################################################3 public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { return this.getDefaultState().withProperty(FACING, getFacingFromEntity(worldIn, pos, placer)); } //###########################################################3 public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { IBlockState iblockstate = worldIn.getBlockState(pos); float f = 0.25F; EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING); if (enumfacing != null) { switch (troncoMercenario.SwitchEnumFacing.FACING_LOOKUP[enumfacing.ordinal()]) { case 1: this.setBlockBounds(0.0F, 0.25F, 0.0F, 1.0F, 1.0F, 1.0F); break; case 2: this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.75F, 1.0F); break; case 3: this.setBlockBounds(0.0F, 0.0F, 0.25F, 1.0F, 1.0F, 1.0F); break; case 4: this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.75F); break; case 5: this.setBlockBounds(0.25F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); break; case 6: this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.75F, 1.0F, 1.0F); } } else { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } } //###########################################################3 public void setBlockBoundsForItemRender() { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } //###########################################################3 public static EnumFacing getFacingFromEntity(World worldIn, BlockPos clickedBlock, EntityLivingBase entityIn) { if (MathHelper.abs((float)entityIn.posX - (float)clickedBlock.getX()) < 2.0F && MathHelper.abs((float)entityIn.posZ - (float)clickedBlock.getZ()) < 2.0F) { double d0 = entityIn.posY + (double)entityIn.getEyeHeight(); if (d0 - (double)clickedBlock.getY() > 2.0D) { return EnumFacing.UP; } if ((double)clickedBlock.getY() - d0 > 0.0D) { return EnumFacing.DOWN; } } return entityIn.getHorizontalFacing().getOpposite(); } //###########################################################3 @SideOnly(Side.CLIENT) public IBlockState getStateForEntityRender(IBlockState state) { return this.getDefaultState().withProperty(FACING, EnumFacing.UP); } //###########################################################3 protected BlockState createBlockState() { return new BlockState(this, new IProperty[] {FACING}); } //###########################################################3 public int getMetaFromState(IBlockState state) { byte b0 = 0; int i = b0 | ((EnumFacing)state.getValue(FACING)).getIndex(); return i; } //###########################################################3 static final class SwitchEnumFacing { static final int[] FACING_LOOKUP = new int[EnumFacing.values().length]; private static final String __OBFID = "CL_00002037"; static { try { FACING_LOOKUP[EnumFacing.DOWN.ordinal()] = 1; } catch (NoSuchFieldError var6) { ; } try { FACING_LOOKUP[EnumFacing.UP.ordinal()] = 2; } catch (NoSuchFieldError var5) { ; } try { FACING_LOOKUP[EnumFacing.NORTH.ordinal()] = 3; } catch (NoSuchFieldError var4) { ; } try { FACING_LOOKUP[EnumFacing.SOUTH.ordinal()] = 4; } catch (NoSuchFieldError var3) { ; } try { FACING_LOOKUP[EnumFacing.WEST.ordinal()] = 5; } catch (NoSuchFieldError var2) { ; } try { FACING_LOOKUP[EnumFacing.EAST.ordinal()] = 6; } catch (NoSuchFieldError var1) { ; } } } //###########################################################3 //###########################################################3 }//fin de la clase el blockState girable.json { "variants": { "normal": { "model": "modmercenario:multicara" }, "facing=north": { "model": "modmercenario:multicara" }, "facing=south": { "model": "modmercenario:multicara", "y": 180 }, "facing=west": { "model": "modmercenario:multicara", "y": 270 }, "facing=east": { "model": "modmercenario:multicara", "y": 90 }, "facing=down": { "model": "modmercenario:multicara", "x": 90 }, "facing=up": { "model": "modmercenario:multicara", "x": 270 } }} el block model y item model girable.json { "parent": "modmercenario:block/cube", "textures": { "down": "modmercenario:blocks/metablockes/metablockemercenario18", "up": "modmercenario:blocks/metablockes/metablockemercenario19", "north": "modmercenario:blocks/metablockes/metablockemercenario20", "south": "modmercenario:blocks/metablockes/metablockemercenario21", "west": "modmercenario:blocks/metablockes/metablockemercenario22", "east": "modmercenario:blocks/metablockes/metablockemercenario23" } }
-
it cost me to figure this. first get load the default blockstate from the block i wanna use and then, this code creates four laders looking to four diferents points IBlockState acaciaLadder = Blocks.acacia_stairs.getDefaultState(); worldIn.setBlockState(pos.north(), acaciaLadder.withProperty(FACING, EnumFacing.NORTH), 2);//por fin maldita sea worldIn.setBlockState(pos.south(), acaciaLadder.withProperty(FACING, EnumFacing.SOUTH), 2); worldIn.setBlockState(pos.east(), acaciaLadder.withProperty(FACING, EnumFacing.EAST), 2); worldIn.setBlockState(pos.west(), acaciaLadder.withProperty(FACING, EnumFacing.WEST), 2); logs work siglith diferent there arew no more blocks class but BlockRotatedPillar whicth in turn extends block class, and i du not know how to call an acacia log in the world.
-
[1.8]A good block and item texturing tutorial?
perromercenary00 replied to Looke81's topic in Modder Support
working on but first i must solve mi own trobles -
[1.8] Generated Blocks are gone after re-log.
perromercenary00 replied to xthepersonx's topic in Modder Support
ican see you bether understanding of the block pos() method i do not and have to simplifique pos() to minimun and do this . http://www.minecraftforge.net/forum/index.php/topic,25975.0.html m extructure works but i dont understand how to set blocks orientation -
need the model json for could you post it
-
well i have this block named way down on rigth click it must dig an spiral lader goin down but how do to spawn a steeps lader whith the rigth orientation ? picture for example. it may looks like this https://www.dropbox.com/s/87mm77vrcy4oq4j/waydown.png?dl=0 but looks like this https://www.dropbox.com/s/6r1d32ccrokteqi/waydownWrong.png?dl=0 i dont know hot to control the facing of the steeps here in 1.8 in 1.7 i do that whit the metadata of the blocks world.setBlock(xyz , Blocks.acacia_stairs , 0, 4 ); //north world.setBlock(xyz , Blocks.acacia_stairs , 1, 4 ); //east world.setBlock(xyz , Blocks.acacia_stairs , 2, 4 ); //west world.setBlock(xyz , Blocks.acacia_stairs , 3, 4 ); //south here goes the class package mercenarymod.blocks.unatextura; import java.util.Random; import mercenarymod.Mercenary; import mercenarymod.blocks.MercenaryModBlocks; import net.minecraft.block.Block; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; public class waydown extends Block { public static String name = "waydown"; public waydown() { super(Material.rock); setUnlocalizedName(Mercenary.MODID + "_" + name); GameRegistry.registerBlock(this, name); setCreativeTab(Mercenary.herramientas); //this.maxStackSize = 1; } public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(MercenaryModBlocks.waydown); } public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) { System.out.println("onBlockActivated()"); int x=pos.getX(), y=pos.getY(), z=pos.getZ(); int xmin=x-2, xmax=x+2; int zmin=z-2, zmax=z+2; BlockPos pos0 = pos; BlockPos pos1 = pos; Block blk0 = Blocks.planks; IBlockState state0=blk0.getDefaultState(); Block blkstair = Blocks.acacia_stairs; IBlockState state1=blkstair.getDefaultState(); System.out.println("pos ="+pos); //escavar el agujero System.out.println("xmin="+xmin+" xmax="+xmax); System.out.println("zmin="+zmin+" zmax="+zmax); for(int yd=y; yd > 10 ; yd-- ){ for(int =xmin; <= xmax ; ++ ){ for(int zd=zmin; zd <= zmax ; zd++ ){ pos0 = new BlockPos(,yd,zd); System.out.println(" "+pos0); //worldIn.setBlockToAir(pos); worldIn.destroyBlock(pos0, true); }}} //poner las escaleras BlockPos pos2 = new BlockPos(xmin,y,zmin); pos2.down(); for(int yd=y ; yd > 10 ; yd-- ){ for(int =xmin; <= xmax ; ++ ){ if (( == xmin)){ yd--; pos2 = new BlockPos(,yd,zmin); worldIn.setBlockState(pos2,state0); ; }else{ yd--; pos2 = new BlockPos(,yd,zmin); worldIn.setBlockState(pos2,state1); } } for(int zd=zmin; zd <= zmax ; zd++ ){ y=y+2; if ((zd == zmin)){ yd--; pos2 = new BlockPos(xmax,yd,zd); worldIn.setBlockState(pos2,state0); ; }else{ yd--; pos2 = new BlockPos(xmax,yd,zd); worldIn.setBlockState(pos2,state1); } } for(int =xmax; >= xmin ; -- ){ y=y+2; if (( == xmin)){ yd--; pos2 = new BlockPos(,yd,zmax); worldIn.setBlockState(pos2,state0); ; }else{ yd--; pos2 = new BlockPos(,yd,zmax); worldIn.setBlockState(pos2,state1); } } for(int zd=zmax; zd >= zmin ; zd-- ){ y=y+2; if ((zd == zmin)){ yd--; pos2 = new BlockPos(xmin,yd,zd); worldIn.setBlockState(pos2,state0); ; }else{ yd--; pos2 = new BlockPos(xmin,yd,zd); worldIn.setBlockState(pos2,state1); } } } return true; } }//fin de la classe
-
yap thath's the idea item or register the json in the preinit or texture class whit modelbakery and then register like you do
-
Cannot apply texture to block in world 1.8
perromercenary00 replied to sjoopies's topic in Modder Support
ñaa first try this Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(MercenaryModBlocks.multicara), 0, new ModelResourceLocation("apple" , "inventory")); then you get and a applet then you try this Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(MercenaryModBlocks.multicara), 0, new ModelResourceLocation("bookshelf" , "inventory")); and just change the model in iventory but not in the world and then read this http://www.minecraftforge.net/forum/index.php?topic=25815.0 but the lasts ones -
good das this has in the last post your solution http://www.minecraftforge.net/forum/index.php/topic,25815.0.html
-
good das this has in the last post your solution http://www.minecraftforge.net/forum/index.php/topic,25815.0.html