diff --git a/Wiki Photos/FormTable Crafting/pickaxe1.png b/Wiki Photos/FormTable Crafting/pickaxe1.png deleted file mode 100644 index 6b848197..00000000 Binary files a/Wiki Photos/FormTable Crafting/pickaxe1.png and /dev/null differ diff --git a/Wiki Photos/FormTable Crafting/spade.png b/Wiki Photos/FormTable Crafting/spade.png deleted file mode 100644 index 9a69c5b8..00000000 Binary files a/Wiki Photos/FormTable Crafting/spade.png and /dev/null differ diff --git a/bin/assets/kitsumedievalcraft/lang/en_US.lang b/bin/assets/kitsumedievalcraft/lang/en_US.lang index ce9d88a5..51a5af7b 100644 --- a/bin/assets/kitsumedievalcraft/lang/en_US.lang +++ b/bin/assets/kitsumedievalcraft/lang/en_US.lang @@ -303,6 +303,8 @@ item.woodPulp.name=Wood Pulp item.charcoalFilter.name=Charcoal Filter item.slottedTongs.name=Stone Tongs item.flintKnapped.name=Knapped Flint +item.cannonBreach.name=CannonBreach +item.cannonBarrel.name=CannonBarrel tile.shitBlock.name=Shit Block tile.formTable.name=Form Table diff --git a/bin/assets/kitsumedievalcraft/sounds.json b/bin/assets/kitsumedievalcraft/sounds.json index 90cb9dad..757ab3b4 100644 --- a/bin/assets/kitsumedievalcraft/sounds.json +++ b/bin/assets/kitsumedievalcraft/sounds.json @@ -6,6 +6,7 @@ "scrapes1": {"category": "neutral", "sounds": [{"name": "scrapes1", "stream": false}]}, "splitlog": {"category": "neutral", "sounds": [{"name": "splitlog", "stream": false}]}, "sawwood": {"category": "neutral", "sounds": [{"name": "sawwood", "stream": false}]}, + "cannon1": {"category": "neutral", "sounds": [{"name": "cannon1", "stream": false}]}, "ironShieldBash": {"category": "neutral", "sounds": [{"name": "ironShieldBash", "stream": false}]} } diff --git a/bin/assets/kitsumedievalcraft/sounds/sounds.json b/bin/assets/kitsumedievalcraft/sounds/sounds.json index 5bcc85dc..be05c3ea 100644 --- a/bin/assets/kitsumedievalcraft/sounds/sounds.json +++ b/bin/assets/kitsumedievalcraft/sounds/sounds.json @@ -3,6 +3,7 @@ "longbowRelease": {"category": "neutral", "sounds": [{"name": "longbowRelease", "stream": false}]}, "tautBow": {"category": "neutral", "sounds": [{"name": "tautBow", "stream": false}]}, "anvilhammer": {"category": "neutral", "sounds": [{"name": "anvilhammer", "stream": false}]}, + "cannon1": {"category": "neutral", "sounds": [{"name": "cannon1", "stream": false}]}, "ironShieldBash": {"category": "neutral", "sounds": [{"name": "ironShieldBash", "stream": false}]} } diff --git a/bin/com/kitsu/medievalcraft/Main.class b/bin/com/kitsu/medievalcraft/Main.class index 441ee326..f25bc97a 100644 Binary files a/bin/com/kitsu/medievalcraft/Main.class and b/bin/com/kitsu/medievalcraft/Main.class differ diff --git a/bin/com/kitsu/medievalcraft/compat/ModDict.class b/bin/com/kitsu/medievalcraft/compat/ModDict.class index 59eff3d2..abcf74a7 100644 Binary files a/bin/com/kitsu/medievalcraft/compat/ModDict.class and b/bin/com/kitsu/medievalcraft/compat/ModDict.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class b/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class index 5bb4cd75..e90e8844 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class and b/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class b/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class index b5883baf..f313c5c3 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class and b/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class differ diff --git a/bin/com/kitsu/medievalcraft/item/ModItems.class b/bin/com/kitsu/medievalcraft/item/ModItems.class index eac0fe96..e63ce2b5 100644 Binary files a/bin/com/kitsu/medievalcraft/item/ModItems.class and b/bin/com/kitsu/medievalcraft/item/ModItems.class differ diff --git a/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.class b/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.class index 5a17f64c..1d7c2305 100644 Binary files a/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.class and b/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.class differ diff --git a/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.class b/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.class index fd20a7dd..f0753430 100644 Binary files a/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.class and b/bin/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.class differ diff --git a/bin/mcmod.info b/bin/mcmod.info index 27acb1e1..f521f3fd 100644 --- a/bin/mcmod.info +++ b/bin/mcmod.info @@ -3,7 +3,7 @@ "modid": "kitsumedievalcraft", "name": "ForgeCraft", "description": "ForgeCraft", - "version": "{2.3.9}", + "version": "{2.4.0}", "mcversion": "{1.7.10}", "url": "http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2296334-wip-kitsus-forgecraft-blacksmith-style-forging", "updateUrl": "https://bitbucket.org/kitsushadow/kitsus-forgecraft/downloads", diff --git a/src/main/java/com/kitsu/medievalcraft/Main.java b/src/main/java/com/kitsu/medievalcraft/Main.java index 120fd12f..cced2ea8 100644 --- a/src/main/java/com/kitsu/medievalcraft/Main.java +++ b/src/main/java/com/kitsu/medievalcraft/Main.java @@ -11,11 +11,12 @@ import com.kitsu.medievalcraft.entity.EntityModelITArrow; import com.kitsu.medievalcraft.entity.EntityShit; import com.kitsu.medievalcraft.entity.EntityShortLivedShit; import com.kitsu.medievalcraft.entity.EntityTester; -import com.kitsu.medievalcraft.entity.ProjectileCannonBall; import com.kitsu.medievalcraft.events.BucketHandle; import com.kitsu.medievalcraft.events.EventHandle; import com.kitsu.medievalcraft.gui.GuiHandler; import com.kitsu.medievalcraft.item.ModItems; +import com.kitsu.medievalcraft.packethandle.cannon.MsgHandleCannon; +import com.kitsu.medievalcraft.packethandle.cannon.MsgPacketCannon; import com.kitsu.medievalcraft.packethandle.curedLeather.MsgHandleCuredLeatherX; import com.kitsu.medievalcraft.packethandle.curedLeather.MsgHandleCuredLeatherY; import com.kitsu.medievalcraft.packethandle.curedLeather.MsgHandleCuredLeatherZ; @@ -59,7 +60,7 @@ public class Main { public static final String MODID = "kitsumedievalcraft"; public static final String MODNAME = "ForgeCraft"; - public static final String VERSION = "2.3.9"; + public static final String VERSION = "2.4.0"; public static SimpleNetworkWrapper sNet; @@ -89,6 +90,11 @@ public class Main { sNet.registerMessage(MsgHandleCuredLeatherZ.class, MsgPacketCuredLeatherZ.class, 8, Side.SERVER); sNet.registerMessage(MsgHandleShelfCase.class, MsgPacketShelfCase.class, 9, Side.SERVER); sNet.registerMessage(MsgHandleForge.class, MsgPacketForge.class, 10, Side.SERVER); + sNet.registerMessage(MsgHandleCannon.class, MsgPacketCannon.class, 11, Side.CLIENT); + sNet.registerMessage(MsgHandleCannon.class, MsgPacketCannon.class, 12, Side.SERVER); + //sNet.registerMessage(MsgHandleCannonX.class, MsgPacketCannonX.class, 12, Side.CLIENT); + //sNet.registerMessage(MsgHandleCannonY.class, MsgPacketCannonY.class, 13, Side.CLIENT); + //sNet.registerMessage(MsgHandleCannonZ.class, MsgPacketCannonZ.class, 14, Side.CLIENT); CustomTab.MedievalTab(); ModBlocks.init(); diff --git a/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java b/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java index aaf8e6cc..0b47889f 100644 --- a/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java +++ b/src/main/java/com/kitsu/medievalcraft/block/cannon/Cannon_28.java @@ -20,6 +20,7 @@ import com.kitsu.medievalcraft.util.CustomTab; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import jdk.nashorn.internal.runtime.regexp.joni.MatcherFactory; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -41,6 +42,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -63,7 +65,6 @@ public class Cannon_28 extends BlockContainer implements CannonUtil{ // xmax, ymax, zmax) this.setBlockBounds(0.0F, 0.00F, 0.0F, 1.0F, 1.00F, 1.0F); - } @Override @@ -71,61 +72,60 @@ public class Cannon_28 extends BlockContainer implements CannonUtil{ return false; } - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World world, int x, int y, int z, Random rand) - { - super.randomDisplayTick(world, x, y, z, random); - - } - private Entity shootCannon(World world, Integer x, Integer y, Integer z){ + EntityCannonBall cannonball = null; - TileCannon_28 tile = (TileCannon_28) world.getTileEntity(x, y, z); - Item ball = new ItemStack(ModBlocks.cannonBall_28, 0, 1).getItem(); - - if(tile.getStackInSlot(0)!=null && tile.getStackInSlot(0).getItem()==Items.gunpowder){ - //if(world.getBlockMetadata(x, y, z)==0){ + TileCannon_28 tile = null; + Item ball = null; + if(!world.isRemote){ + tile = (TileCannon_28) world.getTileEntity(x, y, z); + ball = new ItemStack(ModBlocks.cannonBall_28, 0, 1).getItem(); + if(tile.getStackInSlot(0)!=null && tile.getStackInSlot(0).getItem()==Items.gunpowder){ tile.isOn=true; - world.playSoundEffect(x, y, z, "random.fizz", 0.1f, world.rand.nextFloat()/0.5f * 0.1F + 0.8F); - world.playSoundEffect(x, y, z, "random.explode", 0.5f, world.rand.nextFloat()/0.5f * 0.1F + 0.8F); + tile.smoke=true; + world.playSoundEffect(x, y, z, (Main.MODID + ":cannon1"), 2.0f, world.rand.nextFloat()/0.5f * 0.1F + 0.8F); + for(int i=0; i < world.playerEntities.size(); i++) { + EntityPlayer test = (EntityPlayer)world.playerEntities.get(i); + Vec3 vecTest = Vec3.createVectorHelper(test.posX, test.posY, test.posZ); + Vec3 vecPlayer = Vec3.createVectorHelper(x, y, z); + if (vecPlayer.distanceTo(vecTest) < 200.0F && vecPlayer.distanceTo(vecTest) > 10.0F) + { + world.playSoundAtEntity(test, (Main.MODID + ":cannon1"), (float) (200-(vecPlayer.distanceTo(vecTest)))/400, 1.0F); + } + } + if(tile.getStackInSlot(1)!=null){ if(tile.getStackInSlot(1).getItem()==ball){ tile.decrStackSize(1, 1); - cannonball = new EntityCannonBall(world, (double)x+(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))), (double)y, (double)z+(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))), null); + cannonball = new EntityCannonBall(world, (double)x+(2*(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))), (double)y+0.5, (double)z+(2*(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))), null); //System.out.println(angles[world.getBlockMetadata(x, y, z)]); //System.out.println(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))); //System.out.println(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))); - cannonball.setVelocity( - ((tile.getStackInSlot(0).stackSize*(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4)), - 0.25, - ((tile.getStackInSlot(0).stackSize*(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4))); - /* - * (((tile.getStackInSlot(0).stackSize-world.rand.nextFloat())*((Math.sin(Math.PI)/180) * angles[world.getBlockMetadata(x, y, z)]))), - 0.25, - (((tile.getStackInSlot(0).stackSize-world.rand.nextFloat())*((Math.cos(Math.PI)/180) * angles[world.getBlockMetadata(x, y, z)])))); - */ + //cannonball.setVelocity(((tile.getStackInSlot(0).stackSize*(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4)),0.25, ((tile.getStackInSlot(0).stackSize*(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4))); + cannonball.motionX = ((tile.getStackInSlot(0).stackSize*(Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4)); + cannonball.motionY = 0.25; + cannonball.motionZ = ((tile.getStackInSlot(0).stackSize*(Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))))-(world.rand.nextFloat()/4)); tile.setInventorySlotContents(0, null); tile.markForUpdate(); tile.markDirty(); } } - //} + } } - - tile.markForUpdate(); tile.markDirty(); return cannonball; } - + @Override public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) { + if(!world.isRemote){ TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); if(tileEnt.isOn==false){ if(player.inventory.getCurrentItem()!=null){ if(player.inventory.getCurrentItem().getItem()==Items.flint_and_steel){ world.spawnEntityInWorld(shootCannon(world,x,y,z)); + tileEnt.smoke=true; tileEnt.markForUpdate(); tileEnt.markDirty(); return true; @@ -144,162 +144,170 @@ public class Cannon_28 extends BlockContainer implements CannonUtil{ } @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block block){ - if (world.isBlockIndirectlyGettingPowered(x, y, z)) - { - TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); - if(tileEnt.isOn==false){ - world.spawnEntityInWorld(shootCannon(world, x, y, z)); - tileEnt.markForUpdate(); - tileEnt.markDirty(); + if(!world.isRemote){ + if (world.isBlockIndirectlyGettingPowered(x, y, z)) + { + TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); + if(tileEnt.isOn==false){ + world.spawnEntityInWorld(shootCannon(world, x, y, z)); + tileEnt.smoke = true; + tileEnt.markForUpdate(); + tileEnt.markDirty(); + } } } } - /** - * Updates the blocks bounds based on its current state. Args: world, x, y, z - */ - @Override - public void setBlockBoundsBasedOnState(IBlockAccess iBlock, int x, int y, int z) - { - int l = iBlock.getBlockMetadata(x, y, z) & 7; + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + @Override + public void setBlockBoundsBasedOnState(IBlockAccess iBlock, int x, int y, int z) + { + int l = iBlock.getBlockMetadata(x, y, z) & 7; - switch (l) - { - case 1: - default: - this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); - break; - case 2: - this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); - break; - case 3: - this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); - break; - case 4: - this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); - break; - case 5: - this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); - } - } + switch (l) + { + case 1: + default: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 2: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 3: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 4: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + break; + case 5: + this.setBlockBounds(0F, 0.0F, 0F, 1F, 1F, 1F); + } + } - /** - * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been - * cleared to be reused) - */ - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) - { - this.setBlockBoundsBasedOnState(world, x, y, z); - return super.getCollisionBoundingBoxFromPool(world, x, y, z); - } + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) + { + this.setBlockBoundsBasedOnState(world, x, y, z); + return super.getCollisionBoundingBoxFromPool(world, x, y, z); + } + /** + * Called when the block is placed in the world. + */ + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) + { + //22.5 + //11.25 + if(!world.isRemote){ + double a = living.rotationYaw; + if (a<0){ + a=360+a; + } + //a = a; + System.out.println(living.rotationYaw); + System.out.println(a); + if(a >= 180-11.25 && a <= 180+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + System.out.println("0"); + } + if(a >= 202.5-11.25 && a <= 202.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + System.out.println("1"); + } + if(a >= 225-11.25 && a <= 225+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + System.out.println("2"); + } + if(a >= 247.5-11.25 && a <= 247.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + System.out.println("3"); + } + if(a >= 270-11.25 && a <= 270+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + System.out.println("4"); + } + if(a >= 292.5-11.25 && a <= 292.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + System.out.println("5"); + } + if(a >= 315-11.25 && a <= 315+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 6, 2); + System.out.println("6"); + } + if(a >= 337.5-11.25 && a <= 337.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 7, 2); + System.out.println("7"); + } + if(a <= 0+11.25 && a >=0){ + world.setBlockMetadataWithNotify(x, y, z, 8, 2); + System.out.println("8"); + } + if(a >= 360-11.25 && a <= 360){ + world.setBlockMetadataWithNotify(x, y, z, 8, 2); + System.out.println("8"); + } + if(a >= 22.5-11.25 && a <= 22.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 9, 2); + System.out.println("9"); + } + if(a >= 45-11.25 && a <= 45+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 10, 2); + System.out.println("10"); + } + if(a >= 67.5-11.25 && a <= 67.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 11, 2); + System.out.println("11"); + } + if(a >= 90-11.25 && a <= 90+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 12, 2); + System.out.println("12"); + } + if(a >= 112.5-11.25 && a <= 112.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 13, 2); + System.out.println("13"); + } + if(a >= 135-11.25 && a <= 135+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 14, 2); + System.out.println("14"); + } + if(a >= 157.5-11.25 && a <= 157.5+11.25){ + world.setBlockMetadataWithNotify(x, y, z, 15, 2); + System.out.println("15"); + } + } + } - /** - * Called when the block is placed in the world. - */ - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase living, ItemStack stack) - { - //22.5 - //11.25 - if(!world.isRemote){ - double a = living.rotationYaw*(-1); - //System.out.println(a); - if(a >= 180-11.25 && a <= 180+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 0, 2); - //System.out.println("0"); - } - if(a >= 202.5-11.25 && a <= 202.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 1, 2); - //System.out.println("1"); - } - if(a >= 225-11.25 && a <= 225+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - //System.out.println("2"); - } - if(a >= 247.5-11.25 && a <= 247.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - //System.out.println("3"); - } - if(a >= 270-11.25 && a <= 270+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - //System.out.println("4"); - } - if(a >= 292.5-11.25 && a <= 292.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - //System.out.println("5"); - } - if(a >= 315-11.25 && a <= 315+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 6, 2); - //System.out.println("6"); - } - if(a >= 337.5-11.25 && a <= 337.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 7, 2); - //System.out.println("7"); - } - if(a >= 360-11.25 || a <= 0+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 8, 2); - //System.out.println("8"); - } - if(a >= 22.5-11.25 && a <= 22.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 9, 2); - //System.out.println("9"); - } - if(a >= 45-11.25 && a <= 45+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 10, 2); - //System.out.println("10"); - } - if(a >= 67.5-11.25 && a <= 67.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 11, 2); - //System.out.println("11"); - } - if(a >= 90-11.25 && a <= 90+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 12, 2); - //System.out.println("12"); - } - if(a >= 112.5-11.25 && a <= 112.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 13, 2); - //System.out.println("13"); - } - if(a >= 135-11.25 && a <= 135+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 14, 2); - //System.out.println("14"); - } - if(a >= 157.5-11.25 && a <= 157.5+11.25){ - world.setBlockMetadataWithNotify(x, y, z, 15, 2); - //System.out.println("15"); - } - /*int l = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3; - world.setBlockMetadataWithNotify(x, y, z, l, 2);*/ - //System.out.println((a)); - } - //System.out.println(l); - } - - public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { - if(!world.isRemote){ - if(player.isSneaking()==true){ - if(world.getBlockMetadata(x, y, z)==15){ - world.setBlockMetadataWithNotify(x, y, z, 0, 2); - //System.out.println(world.getBlockMetadata(x,y,z)); - } - if(world.getBlockMetadata(x, y, z)<15){ - world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+1, 2); - //System.out.println(world.getBlockMetadata(x,y,z)); - } - } - if(!player.isSneaking()==true){ - if(world.getBlockMetadata(x, y, z)>0){ - world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)-1, 2); - //System.out.println(world.getBlockMetadata(x,y,z)); - } - if(world.getBlockMetadata(x, y, z)==0){ - world.setBlockMetadataWithNotify(x, y, z, 15, 2); - //System.out.println(world.getBlockMetadata(x,y,z)); - } - } - } - } + public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { + if(!world.isRemote){ + int last = world.getBlockMetadata(x, y, z); + if(player.isSneaking()==true){ + if(world.getBlockMetadata(x, y, z)==15){ + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + System.out.println("A: " + world.getBlockMetadata(x,y,z)); + } + if(world.getBlockMetadata(x, y, z)<15 && last !=15){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+1, 2); + System.out.println("B: " + world.getBlockMetadata(x,y,z)); + } + } + if(!player.isSneaking()==true){ + if(world.getBlockMetadata(x, y, z)>0){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)-1, 2); + System.out.println("C: " + world.getBlockMetadata(x,y,z)); + } + if(world.getBlockMetadata(x, y, z)==0 && last != 1){ + world.setBlockMetadataWithNotify(x, y, z, 15, 2); + System.out.println("D: " + world.getBlockMetadata(x,y,z)); + } + } + } + } public void breakBlock(World world, int x, int y, int z, Block block, int meta) { TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); @@ -356,5 +364,24 @@ public class Cannon_28 extends BlockContainer implements CannonUtil{ public boolean isOpaqueCube() { return false; } + @SideOnly(Side.CLIENT) + @Override + public void randomDisplayTick(World world, int x, int y, int z, Random rand) + { + super.randomDisplayTick(world, x, y, z, random); + } } +/* +if(world.isRemote){ + TileCannon_28 tileEnt = (TileCannon_28) world.getTileEntity(x, y, z); + if(tileEnt.smoke==true){ + System.out.println("make smoke"); + for(int f = 0; f < 10; f++){ + world.spawnParticle("cloud", x + (Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))+world.rand.nextFloat()/10, y+world.rand.nextFloat()/10, z + (Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)]))+world.rand.nextFloat()/10), + (Math.sin(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))/5, 0.2D, (Math.cos(Math.toRadians(angles[world.getBlockMetadata(x, y, z)])))/5); + } + tileEnt.smoke=false; + } +} + */ diff --git a/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java b/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java index cfc07d02..48b08364 100644 --- a/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java +++ b/src/main/java/com/kitsu/medievalcraft/compat/ModDict.java @@ -17,6 +17,7 @@ public class ModDict { OreDictionary.registerOre("strapLeather", new ItemStack(ModItems.leatherStrap, 1, 0)); OreDictionary.registerOre("ringIron", new ItemStack(ModItems.ironRing, 1, 0)); OreDictionary.registerOre("ingotIron", new ItemStack(ModBlocks.refinedIron, 1, 0)); + OreDictionary.registerOre("nuggetIron", new ItemStack(ModItems.ironChunk, 1, 0)); OreDictionary.registerOre("ingotSteel", new ItemStack(ModBlocks.damascus, 1, 0)); OreDictionary.registerOre("materialHardenedLeather", new ItemStack(ModItems.finishedLeather, 1, 0)); OreDictionary.registerOre("bladeTool", new ItemStack(ModItems.workBlade, 1, 0)); diff --git a/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java b/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java index 4aefcbf9..61354acd 100644 --- a/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java +++ b/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java @@ -60,107 +60,7 @@ public class FormTableCraftManager implements IRecipe{ Collections.sort(this.recipes, new FormTableRecipeSorter(this)); } - -/* public ShapedOreRecipe(Block result, Object... recipe){ this(new ItemStack(result), recipe); } - public ShapedOreRecipe(Item result, Object... recipe){ this(new ItemStack(result), recipe); } - public ShapedOreRecipe(ItemStack result, Object... recipe) - { - output = result.copy(); - String shape = ""; - int idx = 0; - - if (recipe[idx] instanceof Boolean) - { - mirrored = (Boolean)recipe[idx]; - if (recipe[idx+1] instanceof Object[]) - { - recipe = (Object[])recipe[idx+1]; - } - else - { - idx = 1; - } - } - - if (recipe[idx] instanceof String[]) - { - String[] parts = ((String[])recipe[idx++]); - - for (String s : parts) - { - width = s.length(); - shape += s; - } - - height = parts.length; - } - else - { - while (recipe[idx] instanceof String) - { - String s = (String)recipe[idx++]; - shape += s; - width = s.length(); - height++; - } - } - - if (width * height != shape.length()) - { - String ret = "Invalid shaped ore recipe: "; - for (Object tmp : recipe) - { - ret += tmp + ", "; - } - ret += output; - throw new RuntimeException(ret); - } - - HashMap itemMap = new HashMap(); - - for (; idx < recipe.length; idx += 2) - { - Character chr = (Character)recipe[idx]; - Object in = recipe[idx + 1]; - - if (in instanceof ItemStack) - { - itemMap.put(chr, ((ItemStack)in).copy()); - } - else if (in instanceof Item) - { - itemMap.put(chr, new ItemStack((Item)in)); - } - else if (in instanceof Block) - { - itemMap.put(chr, new ItemStack((Block)in, 1, OreDictionary.WILDCARD_VALUE)); - } - else if (in instanceof String) - { - itemMap.put(chr, OreDictionary.getOres((String)in)); - } - else - { - String ret = "Invalid shaped ore recipe: "; - for (Object tmp : recipe) - { - ret += tmp + ", "; - } - ret += output; - throw new RuntimeException(ret); - } - } - - input = new Object[width * height]; - int x = 0; - for (char chr : shape.toCharArray()) - { - input[x++] = itemMap.get(chr); - } - } - - */ public FormTableShapedRecipes addRecipe(ItemStack p_92103_1_, Object ... p_92103_2_) { String s = ""; diff --git a/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java b/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java index f1e235c3..1e430d3b 100644 --- a/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java +++ b/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java @@ -230,13 +230,13 @@ public final class ModCrafting { 'a', Blocks.sand, 'b', Blocks.iron_ore, 'c', new ItemStack(Items.coal,0,1)}); - GameRegistry.addRecipe(new ItemStack(ModBlocks.crucibleIronIngot), + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crucibleIronIngot), new Object[]{" x ", "abc"," y ", 'x', Blocks.stone_slab, 'y', ModBlocks.emptyCookedCrucible, 'a', Blocks.sand, - 'b', Items.iron_ingot, - 'c', new ItemStack(Items.coal,0,1)}); + 'b', "ingotIron", + 'c', new ItemStack(Items.coal,0,1)})); GameRegistry.addRecipe(new ItemStack(ModBlocks.crucibleWootz), new Object[]{" x ", "abc", " y ", @@ -274,6 +274,23 @@ public final class ModCrafting { GameRegistry.addRecipe(new ShapedOreRecipe(gladius0, new Object[]{"x", "y", Character.valueOf('y'), "strapLeather", 'x', ModItems.ironshortswordBlade})); GameRegistry.addRecipe(new ShapedOreRecipe((ModItems.itemITSpear), new Object[]{"a", "c", "b", 'a', ModItems.ironspearTip, 'b', ModItems.woodentoolHandle, Character.valueOf('c'), "strapLeather"})); + //-----------------------CANNONS-----------------------// + GameRegistry.addRecipe(new ItemStack(ModItems.cannonBarrel), + new Object[]{" xx", " ", " xx", + 'x', ModBlocks.ironPlate}); + GameRegistry.addRecipe(new ItemStack(ModItems.cannonBreach), + new Object[]{" x ", " x", " x ", + 'x', ModBlocks.ironPlate}); + GameRegistry.addRecipe(new ItemStack(ModBlocks.cannon_28), + new Object[]{" x ","cyc", "ccc", + 'y', ModItems.cannonBreach, + 'c', ModItems.splitBoard, + 'x', ModItems.cannonBarrel}); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.cannonBall_28,4), + new Object[]{" x ", "xyx", " x ", + 'x', "nuggetIron", + 'y', Blocks.stone})); + //-----------------------PICKAXE COMBOS-----------------------// //BASE PICK GameRegistry.addRecipe(new ItemStack(Items.iron_pickaxe), new Object[]{"a", "b", 'a',ModItems.ironpickaxeHead, 'b', ModItems.woodentoolHandle}); @@ -1643,9 +1660,9 @@ public final class ModCrafting { //-----------------------FORGE HAMMER CRAFTING-----------------------// //IRON CHUNK - //GameRegistry.addRecipe(new ItemStack(ModItems.ironChunk, 18, 0), new Object[]{"x", "y", - // Character.valueOf('y'), ModItems.hotIronIngot, - // Character.valueOf('x'), new ItemStack(ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE) }); + GameRegistry.addRecipe(new ShapedOreRecipe (new ItemStack(ModItems.ironChunk, 18, 0), new Object[]{"x", "y", + Character.valueOf('y'), "ingotIron", + Character.valueOf('x'), new ItemStack(ModItems.forgeHammer, 1, OreDictionary.WILDCARD_VALUE) })); /* //IRON PICKAXE HEAD FROM CLAY FORM GameRegistry.addRecipe(new ItemStack(ModItems.ironpickaxeHead, 1, 0), new Object []{"x", "y", "z", diff --git a/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java b/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java index eae08400..eea946dc 100644 --- a/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java +++ b/src/main/java/com/kitsu/medievalcraft/entity/EntityCannonBall.java @@ -3,6 +3,7 @@ package com.kitsu.medievalcraft.entity; import java.util.List; import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CannonUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -23,7 +24,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityCannonBall extends Entity{ +public class EntityCannonBall extends Entity implements CannonUtil{ private EntityLivingBase tntPlacedBy; public int damage = 100; @@ -31,6 +32,7 @@ public class EntityCannonBall extends Entity{ private int field_145792_e = -1; private int field_145789_f = -1; public Entity shootingEntity; + private boolean smoke = true; public EntityCannonBall(World p_i1582_1_) { super(p_i1582_1_); @@ -54,11 +56,30 @@ public class EntityCannonBall extends Entity{ this.prevPosZ = z; this.tntPlacedBy = entLiving; this.renderDistanceWeight = 100; + this.smoke = true; } public void onUpdate() { - + if(this.smoke==true){ + for(int g = 0; g < 20; g++){ + this.worldObj.spawnParticle("explode", this.posX + worldObj.rand.nextFloat()*2 - 1, this.posY + worldObj.rand.nextFloat()*2 - 1, this.posZ + worldObj.rand.nextFloat()*2 - 1,0.0, 0.0, 0.0); + } + this.smoke=false; + } + /*double x = this.posX; + double y = this.posY; + double z = this.posZ; + + if(worldObj.isRemote){ + if(this.smoke==true){ + for(int g = 0; g < 10; g++){ + worldObj.spawnParticle("largesmoke", x +worldObj.rand.nextFloat()/10, y+worldObj.rand.nextFloat()/10, z +worldObj.rand.nextFloat()/10, + 1.0, 1.0D, 1.0); + } + this.smoke=false; + } + }*/ this.prevPosX = this.posX; this.prevPosY = this.posY; this.prevPosZ = this.posZ; @@ -67,7 +88,7 @@ public class EntityCannonBall extends Entity{ this.motionX *= 0.9800000190734863D; this.motionY *= 0.9800000190734863D; this.motionZ *= 0.9800000190734863D; - + Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); MovingObjectPosition mop = this.worldObj.func_147447_a(vec31, vec3, false, true, false); @@ -79,14 +100,9 @@ public class EntityCannonBall extends Entity{ vec3 = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); //System.out.println(mop.entityHit); } - + if(!worldObj.isRemote){ - - if (this.onGround) - { - this.explode(); - this.setDead(); - } + if(this.motionX==0||this.motionY==0||this.motionZ==0){ this.explode(); this.setDead(); diff --git a/src/main/java/com/kitsu/medievalcraft/item/ModItems.java b/src/main/java/com/kitsu/medievalcraft/item/ModItems.java index d11b9d58..a57c5d33 100644 --- a/src/main/java/com/kitsu/medievalcraft/item/ModItems.java +++ b/src/main/java/com/kitsu/medievalcraft/item/ModItems.java @@ -422,6 +422,10 @@ public final class ModItems { public static Item fortuneIronRod; public static Item efficIronRod; + //-----------------------TEMP CANNON PARTS-----------------------// + public static Item cannonBreach; + public static Item cannonBarrel; + //EnumHelper.addToolMaterial(name, harvestLevel, maxUses, efficiency, damage, enchantability) //Max stats a tool / weapon can have //public static ToolMaterial TUTORIAL = EnumHelper.addToolMaterial("TUTORIAL", 3, 1000, 15.0F, 4.0F, 30); @@ -483,6 +487,11 @@ public final class ModItems { //itemSmallBarrelLid = new Item().setUnlocalizedName("itemSmallBarrelLid").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":itemSmallBarrelLid"); //GameRegistry.registerItem(itemSmallBarrelLid, "itemSmallBarrelLid"); + cannonBreach = new Item().setUnlocalizedName("cannonBreach").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":cannonBreach"); + GameRegistry.registerItem(cannonBreach, "cannonBreach"); + + cannonBarrel = new Item().setUnlocalizedName("cannonBarrel").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":cannonBarrel"); + GameRegistry.registerItem(cannonBarrel, "cannonBarrel"); woodPulp = new Item().setUnlocalizedName("woodPulp").setCreativeTab(CustomTab.MedievalCraftTab).setTextureName(Main.MODID + ":woodPulp"); GameRegistry.registerItem(woodPulp, "woodPulp"); diff --git a/src/main/java/com/kitsu/medievalcraft/packethandle/cannon/MsgHandleCannon.java b/src/main/java/com/kitsu/medievalcraft/packethandle/cannon/MsgHandleCannon.java new file mode 100644 index 00000000..e72cdd15 --- /dev/null +++ b/src/main/java/com/kitsu/medievalcraft/packethandle/cannon/MsgHandleCannon.java @@ -0,0 +1,16 @@ +package com.kitsu.medievalcraft.packethandle.cannon; + +import com.kitsu.medievalcraft.tileents.cannon.TileCannon_28; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public class MsgHandleCannon implements IMessageHandler{ + + @Override + public IMessage onMessage(MsgPacketCannon message, MessageContext ctx) { + TileCannon_28.smoke = message.fired; + return null; + } +} diff --git a/src/main/java/com/kitsu/medievalcraft/packethandle/cannon/MsgPacketCannon.java b/src/main/java/com/kitsu/medievalcraft/packethandle/cannon/MsgPacketCannon.java new file mode 100644 index 00000000..41591c47 --- /dev/null +++ b/src/main/java/com/kitsu/medievalcraft/packethandle/cannon/MsgPacketCannon.java @@ -0,0 +1,26 @@ +package com.kitsu.medievalcraft.packethandle.cannon; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import io.netty.buffer.ByteBuf; + +public class MsgPacketCannon implements IMessage { + + public boolean fired; + + public MsgPacketCannon() {} + + public MsgPacketCannon(boolean x){ + this.fired = x; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.fired = buf.readBoolean(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeBoolean(this.fired); + } + +} diff --git a/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java b/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java index 6d6c1150..7dd8cf97 100644 --- a/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java +++ b/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgHandleLocX.java @@ -13,12 +13,7 @@ public class MsgHandleLocX implements IMessageHandler{ public IMessage onMessage(MsgPacketLocX message, MessageContext ctx) { IngotBase.locX = message.locx; - //Forge.locX = message.locx; - //ItemRendererLongbow.tick = message.lTick; - - //System.out.println(message.lTick); - //ctx.getClientHandler().addToSendQueue(new MsgPacket(message.useme)); - + return null; } } diff --git a/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java b/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java index a618312c..6a182cd7 100644 --- a/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java +++ b/src/main/java/com/kitsu/medievalcraft/packethandle/forgeHammerParticles/MsgPacketLocX.java @@ -13,7 +13,6 @@ public class MsgPacketLocX implements IMessage { this.locx = x; } - @Override public void fromBytes(ByteBuf buf) { diff --git a/src/main/java/com/kitsu/medievalcraft/renderer/blocks/cannons/Render_Cannon_28.java b/src/main/java/com/kitsu/medievalcraft/renderer/blocks/cannons/Render_Cannon_28.java index 1da2372b..b40c6983 100644 --- a/src/main/java/com/kitsu/medievalcraft/renderer/blocks/cannons/Render_Cannon_28.java +++ b/src/main/java/com/kitsu/medievalcraft/renderer/blocks/cannons/Render_Cannon_28.java @@ -24,9 +24,12 @@ public class Render_Cannon_28 extends TileEntitySpecialRenderer { EntityItem entItem = null; private static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/Cannon.obj"); + private static final ResourceLocation MODEL_MOUNT = new ResourceLocation("kitsumedievalcraft:models/cannon_mount.obj"); //private static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/cannonTest.obj"); private static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/Cannon.png"); + private static final ResourceLocation TEXTURE_MOUNT = new ResourceLocation("kitsumedievalcraft:models/cannon_mount.png"); private IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + private IModelCustom modelMount = AdvancedModelLoader.loadModel(MODEL_MOUNT); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float scale) { @@ -34,23 +37,6 @@ public class Render_Cannon_28 extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslatef((float) x, (float) y, (float) z); - /*if(tileEntity.getStackInSlot(0)==null){ - entItem=null; - } - - if(tileEntity.getStackInSlot(0)!=null){ - entItem = new EntityItem(tileEntity.getWorldObj(), x, y, z, tileEntity.getStackInSlot(0)); - GL11.glPushMatrix(); - this.entItem.hoverStart = 0.0F; - RenderItem.renderInFrame = true; - GL11.glRotatef(90, 1, 0, 0); - RenderManager.instance.renderEntityWithPosYaw(this.entItem, 0.48D, 0.25D, -1.0D, 0.0F, 0.0F); - RenderItem.renderInFrame = false; - GL11.glPopMatrix(); - tileEntity.markForUpdate(); - tileEntity.markDirty(); - }*/ - renderBlock(tileEntity, tile.getWorldObj(), tile.xCoord,tile.yCoord, tile.zCoord, ModBlocks.cannon_28); tileEntity.markForUpdate(); tileEntity.markDirty(); @@ -60,105 +46,46 @@ public class Render_Cannon_28 extends TileEntitySpecialRenderer { public void renderBlock(TileCannon_28 tl, World world, int i, int j,int k, Block block) { Tessellator tessellator = Tessellator.instance; - // This will make your block brightness dependent from surroundings - // lighting. + float f = block.getLightOpacity(world, i, j, k); int l = world.getLightBrightnessForSkyBlocks(i, j, k, 0); int l1 = l % 65536; int l2 = l / 65536; tessellator.setNormal(0.0F, 1.0F, 0.0F); - //OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit,(float) l1, (float) l2); - - /* - * This will rotate your model corresponding to player direction that - * was when you placed the block. If you want this to work, add these - * lines to onBlockPlacedBy method in your block class. int dir = - * MathHelper.floor_double((double)((player.rotationYaw * 4F) / 360F) + - * 0.5D) & 3; world.setBlockMetadataWithNotify(x, y, z, dir, 0); - */ int dir = world.getBlockMetadata(i, j, k); - + float a = -22.5F; GL11.glPushMatrix(); //GL11.glRotatef(15F, 0F, 1F, 0F); float scale = 1.05f; GL11.glScalef(scale, scale, scale); + + GL11.glTranslatef(0.5F, 0.41F, 0.5F); + GL11.glRotatef(a*dir, 0.0F, 1.0F, 0.0F); - /*if(dir >= 0 && dir <= 15){ - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - GL11.glTranslatef(0.48F, 0.5F, -0.5F); - }*/ - - if(dir == 0){ - GL11.glTranslatef(0.45F, 0.5F, 0.66F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 1){ - GL11.glTranslatef(0.52F, 0.5F, 0.64F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 2){ - GL11.glTranslatef(0.60F, 0.5F, 0.60F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 3){ - GL11.glTranslatef(0.64F, 0.5F, 0.530F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 4){ - GL11.glTranslatef(0.655F, 0.5F, 0.44F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 5){ - GL11.glTranslatef(0.645F, 0.5F, 0.368F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 6){ - GL11.glTranslatef(0.60F, 0.5F, 0.3F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 7){ - GL11.glTranslatef(0.52F, 0.5F, 0.25F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 8){ - GL11.glTranslatef(0.45F, 0.5F, 0.232F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 9){ - GL11.glTranslatef(0.375F, 0.5F, 0.25F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 10){ - GL11.glTranslatef(0.3F, 0.5F, 0.31F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 11){ - GL11.glTranslatef(0.25F, 0.5F, 0.3675F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 12){ - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - GL11.glTranslatef(0.45F, 0.5F, -0.235F); - } - if(dir == 13){ - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - GL11.glTranslatef(0.58F, 0.5F, -0.022F); - } - if(dir == 14){ - GL11.glTranslatef(0.3F, 0.5F, 0.6F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } - if(dir == 15){ - GL11.glTranslatef(0.36F, 0.5F, 0.64F); - GL11.glRotated(22.5F*dir, 0.0, 1.0F, 0.0F); - } // FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE); /* * Place your rendering code here. */ this.model.renderAll(); + + GL11.glPopMatrix(); + GL11.glPushMatrix(); + //GL11.glRotatef(15F, 0F, 1F, 0F); + float scale1 = 1.05f; + GL11.glScalef(scale1, scale1, scale1); + + GL11.glTranslatef(0.5F, 0.41F, 0.5F); + GL11.glRotatef(a*dir, 0.0F, 1.0F, 0.0F); + + // + FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE_MOUNT); + /* + * Place your rendering code here. + */ + this.modelMount.renderAll(); + GL11.glPopMatrix(); } diff --git a/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java b/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java index 8a25dc22..aad0d046 100644 --- a/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java +++ b/src/main/java/com/kitsu/medievalcraft/renderer/itemrenderer/cannons/IR_Cannon_28.java @@ -16,7 +16,10 @@ public class IR_Cannon_28 implements IItemRenderer { public static final ResourceLocation MODEL_CRUCIBLE = new ResourceLocation("kitsumedievalcraft:models/Cannon.obj"); public static final ResourceLocation TEXTURE = new ResourceLocation("kitsumedievalcraft:models/Cannon.png"); + private static final ResourceLocation MODEL_MOUNT = new ResourceLocation("kitsumedievalcraft:models/cannon_mount.obj"); + private static final ResourceLocation TEXTURE_MOUNT = new ResourceLocation("kitsumedievalcraft:models/cannon_mount.png"); public IModelCustom model = AdvancedModelLoader.loadModel(MODEL_CRUCIBLE); + private IModelCustom modelMount = AdvancedModelLoader.loadModel(MODEL_MOUNT); @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { @@ -82,6 +85,8 @@ public class IR_Cannon_28 implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); model.renderAll(); + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); GL11.glPopMatrix(); } break; @@ -100,7 +105,8 @@ public class IR_Cannon_28 implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); model.renderAll(); - + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); GL11.glPopMatrix(); } break; @@ -109,24 +115,26 @@ public class IR_Cannon_28 implements IItemRenderer { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_TEXTURE_2D); - float scale = 0.8F; + float scale = 0.75F; GL11.glScalef(scale, scale, scale); //GL11.glRotatef(90, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.1F, 0.35F); + GL11.glTranslatef(0.3F, 0.2F, 0.35F); Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); model.renderAll(); - + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); GL11.glPopMatrix(); } break; case ENTITY: { GL11.glPushMatrix(); - //GL11.glScalef(1.75F, 1.75F, 1.75F); + float scale = 3; + GL11.glScalef(scale, scale, scale); @@ -135,7 +143,8 @@ public class IR_Cannon_28 implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE); model.renderAll(); - + Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE_MOUNT); + modelMount.renderAll(); GL11.glPopMatrix(); } break; diff --git a/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java b/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java index e5fe3eee..55202e47 100644 --- a/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java +++ b/src/main/java/com/kitsu/medievalcraft/tileents/cannon/TileCannon_28.java @@ -1,6 +1,7 @@ package com.kitsu.medievalcraft.tileents.cannon; import com.kitsu.medievalcraft.block.ModBlocks; +import com.kitsu.medievalcraft.util.CannonUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -16,13 +17,15 @@ import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class TileCannon_28 extends TileEntity implements IInventory, ISidedInventory{ +public class TileCannon_28 extends TileEntity implements IInventory, ISidedInventory, CannonUtil{ private String tileCannon_28; private ItemStack[] inv; private NBTTagCompound tag = new NBTTagCompound(); private int ticks; public boolean isOn; + public static boolean smoke; + public static int xSmoke, ySmoke, zSmoke; private static final int[] slots_all = new int[] {0,1}; private static final int[] slots_top = new int[] {0}; //private static final int[] slots_bottom = new int[] {2, 1}; @@ -216,6 +219,9 @@ public class TileCannon_28 extends TileEntity implements IInventory, ISidedInven this.isOn=false; ticks=0; } + } + if(world.isRemote){ + } if (worldObj.isRemote) return; } diff --git a/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java b/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java index 6c5ee4dc..423041e5 100644 --- a/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java +++ b/src/main/java/com/kitsu/medievalcraft/util/CannonUtil.java @@ -10,7 +10,29 @@ import net.minecraft.item.ItemStack; public interface CannonUtil { /*public static float[] angles = new float[] {90, (float)247.5, 270, (float)292.5, 315, (float)337.5, 0, (float)22.5, 45, (float)67.5, 90, (float) 112.5, - 135, (float) 157.5, 180, (float)202.5};*/ - public float[] angles = new float[] {180, (float)202.5, 225, (float)247.5, 270, (float)292.5, 315, (float)337.5, 0, (float)22.5, 45, (float)67.5, 90, (float) 112.5, - 135, (float) 157.5,}; + 135, (float) 157.5, 180, (float)202.5}; + /*public float[] angles = new float[] {180, (float)202.5, 225, (float)247.5, 270, (float)292.5, 315, (float)337.5, 0, (float)22.5, 45, (float)67.5, 90, (float) 112.5, + 135, (float) 157.5,};*/ + /* + * 0 | 180 + * 1 | 157.5 + * 2 | 135 + * 3 | 112.5 + * 4 | 90 + * 5 | 67.5 + * 6 | 45 + * 7 | 22.5 + * 8 | 0 + * 9 | 337.5 + * 10 | 315 + * 11 | 292.5 + * 12 | 270 + * 13 | 247.5 + * 14 | 225 + * 15 | 202.5 + */ + public static float[] angles = new float[] {180F, 157.5F, 135F, 112.5F, 90F, 67.5F, 45F, 22.5F, 0F, 337.5F, 315F, 292.5F, 270F, 247.5F, 225F, 202.5F}; + + + } \ No newline at end of file diff --git a/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang b/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang index ce9d88a5..51a5af7b 100644 --- a/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang +++ b/src/main/resources/assets/kitsumedievalcraft/lang/en_US.lang @@ -303,6 +303,8 @@ item.woodPulp.name=Wood Pulp item.charcoalFilter.name=Charcoal Filter item.slottedTongs.name=Stone Tongs item.flintKnapped.name=Knapped Flint +item.cannonBreach.name=CannonBreach +item.cannonBarrel.name=CannonBarrel tile.shitBlock.name=Shit Block tile.formTable.name=Form Table diff --git a/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl b/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl index 717bff27..f650320b 100644 --- a/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl +++ b/src/main/resources/assets/kitsumedievalcraft/models/Cannon.mtl @@ -1,11 +1,12 @@ -# Blender MTL File: 'cannon.blend' +# Blender MTL File: 'None' # Material Count: 1 newmtl None -Ns 0 +Ns 0.000000 Ka 0.000000 0.000000 0.000000 -Kd 0.8 0.8 0.8 -Ks 0.8 0.8 0.8 -d 1 +Kd 0.640000 0.640000 0.640000 +Ks 0.800000 0.800000 0.800000 +Ni 1.000000 +d 1.000000 illum 2 map_Kd /home/kitsudesktop/Development/Blends/Cannon.png diff --git a/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj b/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj index 9a6d4922..69ea8cd4 100644 --- a/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj +++ b/src/main/resources/assets/kitsumedievalcraft/models/Cannon.obj @@ -1,55 +1,55 @@ -# Blender v2.71 (sub 0) OBJ File: 'cannon.blend' +# Blender v2.71 (sub 0) OBJ File: '' # www.blender.org mtllib Cannon.mtl o Cube_Cube.001 -v -0.125000 -0.125000 -1.375000 -v 0.125000 -0.125000 -1.375000 -v -0.125000 0.125000 -1.375000 -v -0.250000 -0.250000 0.650000 -v -0.225000 -0.225000 -1.225000 -v 0.225000 -0.225000 -1.225000 -v 0.250000 -0.250000 0.650000 -v -0.250000 0.250000 0.650000 -v -0.225000 0.225000 -1.225000 -v 0.225000 0.225000 -1.225000 -v 0.250000 0.250000 0.650000 -v -0.250000 -0.250000 -1.225000 -v -0.250000 -0.250000 -1.375000 -v 0.250000 -0.250000 -1.375000 -v 0.250000 -0.250000 -1.225000 -v -0.250000 0.250000 -1.225000 -v -0.250000 0.250000 -1.375000 -v 0.250000 0.250000 -1.375000 -v 0.250000 0.250000 -1.225000 -v 0.125000 0.125000 -1.375000 -v -0.125000 0.125000 0.425000 -v -0.125000 -0.125000 0.425000 -v 0.125000 -0.125000 0.425000 -v 0.125000 0.125000 0.425000 -v -0.100940 -0.100940 0.650000 -v 0.100940 -0.100940 0.650000 -v -0.100940 0.100940 0.650000 -v 0.100940 0.100940 0.650000 -v -0.100940 -0.100940 0.725000 -v 0.100940 -0.100940 0.725000 -v -0.100940 0.100940 0.725000 -v 0.100940 0.100940 0.725000 -v 0.505154 -0.054574 -0.256972 -v 0.505154 -0.054574 -0.150739 -v 0.505154 0.051659 -0.256972 -v 0.505154 0.051659 -0.150739 -v 0.228100 0.051659 -0.256972 -v 0.228100 0.051659 -0.150739 -v 0.228100 -0.054574 -0.256972 -v 0.228100 -0.054574 -0.150739 -v -0.233931 -0.054574 -0.256972 -v -0.233931 -0.054574 -0.150739 -v -0.233931 0.051659 -0.256972 -v -0.233931 0.051659 -0.150739 -v -0.510986 0.051659 -0.256972 -v -0.510986 0.051659 -0.150739 -v -0.510986 -0.054574 -0.256972 -v -0.510986 -0.054574 -0.150739 +v -0.227758 0.230880 -1.021209 +v -0.227758 -0.219120 -1.021209 +v -0.252758 -0.244120 0.853791 +v -0.252758 0.255880 -1.171209 +v -0.252758 -0.244120 -1.171209 +v -0.252758 -0.244120 -1.021209 +v 0.247242 0.255880 0.853791 +v 0.247242 -0.244120 0.853791 +v 0.222242 -0.219120 -1.021209 +v 0.222242 0.230880 -1.021209 +v -0.252758 0.255880 0.853791 +v 0.247242 0.255880 -1.021209 +v 0.247242 -0.244120 -1.021209 +v 0.247242 -0.244120 -1.171209 +v 0.247242 0.255880 -1.171209 +v -0.252758 0.255880 -1.021209 +v 0.122241 0.130880 -1.171209 +v -0.127758 0.130880 0.628791 +v 0.122241 0.130880 0.628791 +v 0.122241 -0.119120 0.628791 +v -0.103698 0.106819 0.853791 +v -0.103698 0.106819 0.928791 +v 0.098181 0.106819 0.928791 +v -0.103698 -0.095060 0.853791 +v 0.098181 -0.095060 0.853791 +v 0.098181 0.106819 0.853791 +v 0.098181 -0.095060 0.928791 +v -0.103698 -0.095060 0.928791 +v 0.402396 0.057539 0.053052 +v 0.402396 -0.048694 0.053052 +v 0.402396 -0.048694 -0.053180 +v -0.127758 -0.119120 0.628791 +v -0.413744 -0.048694 0.053052 +v -0.413744 0.057539 0.053052 +v -0.413744 0.057539 -0.053180 +v 0.402396 0.057539 -0.053180 +v -0.413744 -0.048694 -0.053180 +v -0.127758 0.130880 -1.171209 +v -0.127758 -0.119120 -1.171209 +v 0.122242 -0.119120 -1.171209 +v 0.225342 0.057539 -0.053180 +v 0.225342 0.057539 0.053052 +v 0.225342 -0.048694 -0.053180 +v 0.225342 -0.048694 0.053052 +v -0.236690 0.057539 -0.053180 +v -0.236690 -0.048694 -0.053180 +v -0.236690 -0.048694 0.053052 +v -0.236690 0.057539 0.053052 vt 0.425000 0.440784 vt 0.237500 0.440784 vt 0.227083 0.005226 @@ -188,83 +188,83 @@ vt 0.738014 0.697585 vt 0.388013 0.635900 usemtl None s off -f 9/1 5/2 4/3 -f 17/4 13/5 12/6 -f 11/7 7/8 6/9 -f 5/10 6/11 7/12 -f 10/13 9/14 8/15 -f 19/16 15/17 14/18 -f 15/19 19/20 10/21 -f 13/22 14/23 15/24 -f 18/25 17/26 16/27 -f 20/28 18/29 14/30 -f 5/31 12/32 15/19 -f 21/33 20/34 24/35 -f 20/36 23/37 24/38 -f 10/21 19/20 16/39 -f 16/39 12/32 5/31 -f 27/40 31/41 32/42 -f 25/43 27/44 8/45 -f 26/46 25/43 4/47 -f 28/48 26/46 7/49 -f 27/44 28/48 11/50 -f 30/51 32/52 31/53 -f 26/54 28/55 32/56 -f 26/57 30/58 29/59 -f 25/60 29/61 31/62 -f 36/63 34/64 33/65 -f 22/66 24/67 23/68 -f 48/69 46/70 45/71 -f 8/72 9/1 4/3 -f 16/73 17/4 12/6 -f 10/74 11/7 6/9 -f 4/75 5/10 7/12 -f 11/76 10/13 8/15 -f 18/77 19/16 14/18 -f 6/78 15/19 10/21 -f 12/79 13/22 15/24 -f 19/80 18/25 16/27 -f 6/78 5/31 15/19 -f 9/81 10/21 16/39 -f 9/81 16/39 5/31 -f 28/82 27/40 32/42 -f 4/47 25/43 8/45 -f 7/49 26/46 4/47 -f 11/50 28/48 7/49 -f 8/45 27/44 11/50 -f 29/83 30/51 31/53 -f 30/84 26/54 32/56 -f 25/85 26/57 29/59 -f 27/86 25/60 31/62 -f 35/87 36/63 33/65 -f 21/88 24/67 22/66 -f 47/89 48/69 45/71 -f 3/90 17/91 18/29 -f 17/91 3/90 1/92 -f 23/93 1/94 22/95 -f 2/96 14/30 13/97 -f 35/98 37/99 38/100 -f 39/101 33/102 34/103 -f 38/104 40/105 34/106 -f 35/107 33/108 39/109 -f 22/110 3/111 21/112 -f 43/113 45/114 46/115 -f 47/116 41/117 42/118 -f 46/119 48/120 42/121 -f 43/122 41/123 47/124 -f 20/28 3/90 18/29 -f 2/96 20/28 14/30 -f 13/97 17/91 1/92 -f 3/125 20/34 21/33 -f 2/126 23/37 20/36 -f 2/127 1/94 23/93 -f 1/92 2/96 13/97 -f 36/128 35/98 38/100 -f 40/129 39/101 34/103 -f 36/130 38/104 34/106 -f 37/131 35/107 39/109 -f 1/132 3/111 22/110 -f 44/133 43/113 46/115 -f 48/134 47/116 42/118 -f 44/135 46/119 42/121 -f 45/136 43/122 47/124 +f 1/1 2/2 3/3 +f 4/4 5/5 6/6 +f 7/7 8/8 9/9 +f 2/10 9/11 8/12 +f 10/13 1/14 11/15 +f 12/16 13/17 14/18 +f 13/19 12/20 10/21 +f 5/22 14/23 13/24 +f 15/25 4/26 16/27 +f 17/28 15/29 14/30 +f 2/31 6/32 13/19 +f 18/33 17/34 19/35 +f 17/36 20/37 19/38 +f 10/21 12/20 16/39 +f 16/39 6/32 2/31 +f 21/40 22/41 23/42 +f 24/43 21/44 11/45 +f 25/46 24/43 3/47 +f 26/48 25/46 8/49 +f 21/44 26/48 7/50 +f 27/51 23/52 22/53 +f 25/54 26/55 23/56 +f 25/57 27/58 28/59 +f 24/60 28/61 22/62 +f 29/63 30/64 31/65 +f 32/66 19/67 20/68 +f 33/69 34/70 35/71 +f 11/72 1/1 3/3 +f 16/73 4/4 6/6 +f 10/74 7/7 9/9 +f 3/75 2/10 8/12 +f 7/76 10/13 11/15 +f 15/77 12/16 14/18 +f 9/78 13/19 10/21 +f 6/79 5/22 13/24 +f 12/80 15/25 16/27 +f 9/78 2/31 13/19 +f 1/81 10/21 16/39 +f 1/81 16/39 2/31 +f 26/82 21/40 23/42 +f 3/47 24/43 11/45 +f 8/49 25/46 3/47 +f 7/50 26/48 8/49 +f 11/45 21/44 7/50 +f 28/83 27/51 22/53 +f 27/84 25/54 23/56 +f 24/85 25/57 28/59 +f 21/86 24/60 22/62 +f 36/87 29/63 31/65 +f 18/88 19/67 32/66 +f 37/89 33/69 35/71 +f 38/90 4/91 15/29 +f 4/91 38/90 39/92 +f 20/93 39/94 32/95 +f 40/96 14/30 5/97 +f 36/98 41/99 42/100 +f 43/101 31/102 30/103 +f 42/104 44/105 30/106 +f 36/107 31/108 43/109 +f 32/110 38/111 18/112 +f 45/113 35/114 34/115 +f 37/116 46/117 47/118 +f 34/119 33/120 47/121 +f 45/122 46/123 37/124 +f 17/28 38/90 15/29 +f 40/96 17/28 14/30 +f 5/97 4/91 39/92 +f 38/125 17/34 18/33 +f 40/126 20/37 17/36 +f 40/127 39/94 20/93 +f 39/92 40/96 5/97 +f 29/128 36/98 42/100 +f 44/129 43/101 30/103 +f 29/130 42/104 30/106 +f 41/131 36/107 43/109 +f 39/132 38/111 32/110 +f 48/133 45/113 34/115 +f 33/134 37/116 47/118 +f 48/135 34/119 47/121 +f 35/136 45/122 37/124 diff --git a/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.mtl b/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.mtl new file mode 100644 index 00000000..dc9a5f44 --- /dev/null +++ b/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.mtl @@ -0,0 +1,11 @@ +# Blender MTL File: 'cannon_mount.blend' +# Material Count: 1 + +newmtl None +Ns 0 +Ka 0.000000 0.000000 0.000000 +Kd 0.8 0.8 0.8 +Ks 0.8 0.8 0.8 +d 1 +illum 2 +map_Kd cannon_mount.png diff --git a/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.obj b/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.obj new file mode 100644 index 00000000..69f9e1dc --- /dev/null +++ b/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.obj @@ -0,0 +1,223 @@ +# Blender v2.71 (sub 0) OBJ File: 'cannon_mount.blend' +# www.blender.org +mtllib cannon_mount.mtl +o Cube +v -0.413288 -0.407050 0.966262 +v -0.413288 -0.407050 -0.666261 +v 0.400811 -0.407050 0.966262 +v -0.413288 -0.342950 0.966262 +v 0.400811 -0.342950 0.966262 +v -0.291173 -0.342950 -0.666261 +v -0.291173 -0.342950 0.966262 +v -0.413288 -0.066373 0.966262 +v -0.413288 -0.066373 -0.666261 +v -0.291173 -0.066373 -0.666261 +v -0.291173 -0.066373 0.966262 +v -0.413288 -0.066373 -0.055968 +v -0.291173 -0.066373 0.074468 +v -0.291173 -0.066373 -0.055968 +v -0.413288 0.058627 -0.666261 +v -0.291173 0.058627 -0.666261 +v -0.413288 0.058627 -0.055968 +v -0.291173 0.058627 -0.055968 +v -0.413288 -0.066373 0.074468 +v -0.291173 -0.066373 0.074468 +v -0.413288 -0.066373 0.074468 +v -0.291173 0.058627 0.074468 +v -0.413288 0.058627 0.074468 +v 0.278889 -0.342950 0.966262 +v 0.278889 -0.342950 -0.666261 +v 0.401004 -0.407050 -0.666261 +v 0.401004 -0.342950 0.966262 +v 0.278889 -0.066373 0.966262 +v 0.278889 -0.066373 -0.666261 +v 0.401004 -0.066373 -0.666261 +v 0.401004 -0.066373 0.966262 +v 0.278889 -0.066373 -0.055968 +v 0.401004 -0.066373 0.074468 +v 0.401004 -0.066373 -0.055968 +v 0.278889 0.058627 -0.666261 +v 0.401004 0.058627 -0.666261 +v 0.278889 0.058627 -0.055968 +v 0.401004 0.058627 -0.055968 +v 0.278889 -0.066373 0.074468 +v 0.401004 -0.066373 0.074468 +v 0.278889 -0.066373 0.074468 +v 0.401004 0.058627 0.074468 +v 0.278889 0.058627 0.074468 +vt 0.817621 0.467140 +vt 0.967030 0.467140 +vt 0.967030 0.895146 +vt 0.821572 0.468675 +vt 0.970981 0.468675 +vt 0.970981 0.896681 +vt 0.614905 0.807919 +vt 0.586794 0.807919 +vt 0.586794 0.458565 +vt 0.444074 0.458565 +vt 0.565371 0.458565 +vt 0.444074 0.692370 +vt 0.010711 0.438487 +vt 0.010711 0.010481 +vt 0.367832 0.010481 +vt 0.389254 0.010481 +vt 0.639263 0.010481 +vt 0.639263 0.437603 +vt 0.444074 0.886571 +vt 0.389254 0.886571 +vt 0.389254 0.726568 +vt 0.988024 0.010481 +vt 0.988024 0.247249 +vt 0.934468 0.247249 +vt 0.064266 0.989519 +vt 0.010711 0.989519 +vt 0.010711 0.829846 +vt 0.389254 0.961173 +vt 0.389254 0.907532 +vt 0.442809 0.907532 +vt 0.817644 0.627188 +vt 0.762823 0.627188 +vt 0.762823 0.467184 +vt 0.236363 0.772693 +vt 0.236363 0.720290 +vt 0.271240 0.720290 +vt 0.000000 0.000000 +vt 0.464231 0.961173 +vt 0.464231 0.907532 +vt 0.517787 0.907532 +vt 0.817629 0.895203 +vt 0.764197 0.883209 +vt 0.817629 0.655323 +vt 0.389254 0.692370 +vt 0.214222 0.948533 +vt 0.160666 0.948533 +vt 0.160666 0.829846 +vt 0.766767 0.736671 +vt 0.821588 0.736671 +vt 0.821588 0.896674 +vt 0.364773 0.714215 +vt 0.364773 0.950984 +vt 0.311218 0.950984 +vt 0.715506 0.010481 +vt 0.836803 0.010481 +vt 0.715506 0.170484 +vt 0.139244 0.989519 +vt 0.085689 0.989519 +vt 0.085689 0.829846 +vt 0.539209 0.961173 +vt 0.539209 0.907532 +vt 0.592764 0.907532 +vt 0.660686 0.170484 +vt 0.660686 0.010481 +vt 0.586794 0.881283 +vt 0.586794 0.828880 +vt 0.621670 0.828880 +vt 0.660686 0.962057 +vt 0.660686 0.908416 +vt 0.714241 0.908416 +vt 0.366038 0.693254 +vt 0.311218 0.693254 +vt 0.311218 0.459448 +vt 0.821588 0.481904 +vt 0.821588 0.715709 +vt 0.766767 0.715709 +vt 0.235644 0.829846 +vt 0.289199 0.829846 +vt 0.289199 0.948533 +vt 0.214941 0.756482 +vt 0.214941 0.808885 +vt 0.010711 0.808885 +vt 0.038823 0.756482 +vt 0.010711 0.459448 +vt 0.214941 0.511851 +vt 0.038823 0.511851 +vt 0.817621 0.895146 +vt 0.614905 0.458565 +vt 0.444074 0.726568 +vt 0.565371 0.886571 +vt 0.367747 0.438487 +vt 0.389254 0.437603 +vt 0.934468 0.010481 +vt 0.064266 0.829846 +vt 0.442809 0.961173 +vt 0.817644 0.467184 +vt 0.271240 0.772693 +vt 0.517787 0.961173 +vt 0.214222 0.829846 +vt 0.766767 0.896674 +vt 0.311218 0.714215 +vt 0.836803 0.438487 +vt 0.715506 0.204681 +vt 0.715506 0.438487 +vt 0.139244 0.829846 +vt 0.592764 0.961173 +vt 0.621670 0.881283 +vt 0.714241 0.962057 +vt 0.235644 0.948533 +vt 0.214941 0.459448 +usemtl None +s 1 +f 9/1 2/2 1/3 +f 31/4 3/5 26/6 +f 3/7 5/8 4/9 +f 11/10 7/11 13/12 +f 1/13 2/14 26/15 +f 25/16 6/17 7/18 +f 10/19 16/20 18/21 +f 23/22 8/23 11/24 +f 17/25 18/26 16/27 +f 14/28 18/29 17/30 +f 12/31 17/32 15/33 +f 14/34 12/35 19/36 +f 19/37 21/37 20/37 +f 21/38 23/39 22/40 +f 23/41 21/42 8/43 +f 11/10 13/12 22/44 +f 11/45 8/46 4/47 +f 30/48 36/49 38/50 +f 43/51 28/52 31/53 +f 29/54 25/55 32/56 +f 37/57 38/58 36/59 +f 34/60 38/61 37/62 +f 32/56 37/63 35/64 +f 34/65 32/66 39/67 +f 39/37 41/37 40/37 +f 41/68 43/69 42/70 +f 43/71 41/72 28/73 +f 31/74 33/75 42/76 +f 31/77 28/78 24/79 +f 35/80 36/81 26/82 +f 25/83 26/82 2/84 +f 16/85 6/86 2/84 +f 8/87 9/1 1/3 +f 30/50 31/4 26/6 +f 1/88 3/7 4/9 +f 14/89 13/12 6/90 +f 6/90 10/19 14/89 +f 3/91 1/13 26/15 +f 24/92 25/16 7/18 +f 13/12 7/11 6/90 +f 14/89 10/19 18/21 +f 22/93 23/22 11/24 +f 15/94 17/25 16/27 +f 12/95 14/28 17/30 +f 9/96 12/31 15/33 +f 13/97 14/34 19/36 +f 13/37 19/37 20/37 +f 20/98 21/38 22/40 +f 7/99 11/45 4/47 +f 34/100 30/48 38/50 +f 42/101 43/51 31/53 +f 24/102 39/103 25/55 +f 24/102 28/104 39/103 +f 35/105 37/57 36/59 +f 25/55 39/103 32/56 +f 32/106 34/60 37/62 +f 29/54 32/56 35/64 +f 33/107 34/65 39/67 +f 33/37 39/37 40/37 +f 40/108 41/68 42/70 +f 27/109 31/77 24/79 +f 25/83 35/80 26/82 +f 6/86 25/83 2/84 +f 15/110 16/85 2/84 diff --git a/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.png b/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.png new file mode 100644 index 00000000..4852ab55 Binary files /dev/null and b/src/main/resources/assets/kitsumedievalcraft/models/cannon_mount.png differ diff --git a/src/main/resources/assets/kitsumedievalcraft/sounds.json b/src/main/resources/assets/kitsumedievalcraft/sounds.json index 90cb9dad..757ab3b4 100644 --- a/src/main/resources/assets/kitsumedievalcraft/sounds.json +++ b/src/main/resources/assets/kitsumedievalcraft/sounds.json @@ -6,6 +6,7 @@ "scrapes1": {"category": "neutral", "sounds": [{"name": "scrapes1", "stream": false}]}, "splitlog": {"category": "neutral", "sounds": [{"name": "splitlog", "stream": false}]}, "sawwood": {"category": "neutral", "sounds": [{"name": "sawwood", "stream": false}]}, + "cannon1": {"category": "neutral", "sounds": [{"name": "cannon1", "stream": false}]}, "ironShieldBash": {"category": "neutral", "sounds": [{"name": "ironShieldBash", "stream": false}]} } diff --git a/src/main/resources/assets/kitsumedievalcraft/sounds/cannon1.ogg b/src/main/resources/assets/kitsumedievalcraft/sounds/cannon1.ogg new file mode 100644 index 00000000..417b7ff2 Binary files /dev/null and b/src/main/resources/assets/kitsumedievalcraft/sounds/cannon1.ogg differ diff --git a/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json b/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json index 5bcc85dc..be05c3ea 100644 --- a/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json +++ b/src/main/resources/assets/kitsumedievalcraft/sounds/sounds.json @@ -3,6 +3,7 @@ "longbowRelease": {"category": "neutral", "sounds": [{"name": "longbowRelease", "stream": false}]}, "tautBow": {"category": "neutral", "sounds": [{"name": "tautBow", "stream": false}]}, "anvilhammer": {"category": "neutral", "sounds": [{"name": "anvilhammer", "stream": false}]}, + "cannon1": {"category": "neutral", "sounds": [{"name": "cannon1", "stream": false}]}, "ironShieldBash": {"category": "neutral", "sounds": [{"name": "ironShieldBash", "stream": false}]} } diff --git a/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBarrel.png b/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBarrel.png new file mode 100644 index 00000000..430b7280 Binary files /dev/null and b/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBarrel.png differ diff --git a/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBreach.png b/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBreach.png new file mode 100644 index 00000000..10920cb2 Binary files /dev/null and b/src/main/resources/assets/kitsumedievalcraft/textures/items/cannonBreach.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 27acb1e1..f521f3fd 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "kitsumedievalcraft", "name": "ForgeCraft", "description": "ForgeCraft", - "version": "{2.3.9}", + "version": "{2.4.0}", "mcversion": "{1.7.10}", "url": "http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2296334-wip-kitsus-forgecraft-blacksmith-style-forging", "updateUrl": "https://bitbucket.org/kitsushadow/kitsus-forgecraft/downloads",