From 1e1cc5fb5b005ee1021cfe90ad0eae50a95a3799 Mon Sep 17 00:00:00 2001 From: jsrobson10 Date: Tue, 15 Sep 2020 19:58:53 +1000 Subject: [PATCH] Sync workspace with server --- .gitignore | 2 +- run/saves.bdf.gz | Bin 58 -> 0 bytes run/saves/world/c_0_-10_10.bdf.gz | Bin 95 -> 0 bytes run/saves/world/c_0_-5_0.bdf.gz | Bin 416 -> 0 bytes run/saves/world/world.bdf.gz | Bin 53 -> 0 bytes run/settings.bdf.gz | Bin 103 -> 0 bytes src/projectzombie/Main.java | 15 +++- .../display/DisplayLighting.java | 2 +- src/projectzombie/display/DisplayRender.java | 2 +- .../display/DisplayRenderUI.java | 2 +- src/projectzombie/entity/Entity.java | 9 ++- src/projectzombie/entity/EntityBoss.java | 2 +- src/projectzombie/entity/EntityExplosion.java | 2 +- src/projectzombie/entity/EntityItem.java | 2 +- src/projectzombie/entity/EntityZombie.java | 5 ++ .../entity/player/EntityPlayer.java | 11 +-- .../tileentity/TileEntityBlastFurnace.java | 4 +- .../entity/tileentity/TileEntityCampfire.java | 4 +- .../entity/tileentity/TileEntityClayPot.java | 2 +- src/projectzombie/init/ItemModifiers.java | 2 + src/projectzombie/init/Items.java | 3 + src/projectzombie/init/Models.java | 15 ++-- src/projectzombie/init/Recipes.java | 11 ++- src/projectzombie/init/Tiles.java | 3 + src/projectzombie/input/types/InputGame.java | 2 +- src/projectzombie/inventory/IInventory.java | 2 +- .../inventory/IInventoryArmor.java | 2 +- .../inventory/IInventoryClothing.java | 2 +- src/projectzombie/inventory/Inventory.java | 2 +- .../inventory/InventoryArmor.java | 2 +- .../inventory/InventoryClothing.java | 2 +- .../inventory/recipe/Recipe.java | 2 +- .../inventory/recipe/RecipeBasic.java | 2 +- src/projectzombie/items/Item.java | 2 +- src/projectzombie/items/ItemAbstractTool.java | 2 +- src/projectzombie/items/ItemAcorn.java | 2 +- src/projectzombie/items/ItemAmmo.java | 2 +- src/projectzombie/items/ItemArmor.java | 2 +- src/projectzombie/items/ItemAsh.java | 2 +- src/projectzombie/items/ItemBlastFurnace.java | 2 +- src/projectzombie/items/ItemBurnable.java | 2 +- src/projectzombie/items/ItemCampfire.java | 4 +- src/projectzombie/items/ItemCharcoal.java | 2 +- src/projectzombie/items/ItemClayPot.java | 4 +- src/projectzombie/items/ItemClayPotWet.java | 2 +- src/projectzombie/items/ItemClothing.java | 2 +- src/projectzombie/items/ItemCoal.java | 31 ++++++++ src/projectzombie/items/ItemCookable.java | 2 +- src/projectzombie/items/ItemEmpty.java | 2 +- src/projectzombie/items/ItemFlare.java | 2 +- src/projectzombie/items/ItemFlint.java | 2 +- src/projectzombie/items/ItemFlintHatchet.java | 2 +- .../items/ItemGrapplingHook.java | 2 +- src/projectzombie/items/ItemHealthPotion.java | 2 +- src/projectzombie/items/ItemHempSeed.java | 2 +- src/projectzombie/items/ItemInfestation.java | 2 +- src/projectzombie/items/ItemLantern.java | 2 +- src/projectzombie/items/ItemLog.java | 2 +- src/projectzombie/items/ItemMetal.java | 2 +- src/projectzombie/items/ItemOre.java | 2 +- src/projectzombie/items/ItemPlantFibre.java | 2 +- src/projectzombie/items/ItemRock.java | 2 +- src/projectzombie/items/ItemSmeltable.java | 2 +- src/projectzombie/items/ItemSpawn.java | 2 +- src/projectzombie/items/ItemStoneHatchet.java | 2 +- src/projectzombie/items/ItemStonePick.java | 2 +- src/projectzombie/items/ItemStoneShovel.java | 2 +- src/projectzombie/items/ItemTnt.java | 2 +- src/projectzombie/items/ItemTool.java | 2 +- src/projectzombie/items/ItemTorch.java | 72 +++++++++++++++--- src/projectzombie/items/ItemWorkbench.java | 2 +- .../modifier/ItemModifierClickCooldown.java | 46 +++++++++++ .../items/modifier/ItemModifierMeta.java | 2 +- .../items/modifier/ItemModifierTimer.java | 11 ++- .../modifier/ItemModifierTimerPaused.java | 65 ++++++++++++++++ .../items/spawner/ItemSpawnDummy.java | 2 +- .../items/spawner/ItemSpawnZombie.java | 2 +- src/projectzombie/menu/MenuInventory.java | 2 +- .../menu/MenuInventoryBasic.java | 2 +- .../menu/MenuInventoryStorage.java | 2 +- src/projectzombie/menu/gui/GUIItemHolder.java | 2 +- src/projectzombie/menu/gui/GUIItemSlot.java | 2 +- .../menu/gui/GUIItemSlotGetter.java | 2 +- .../menu/gui/GUIItemSlotGetterStorage.java | 2 +- .../menu/gui/GUIItemSlotReadonly.java | 2 +- src/projectzombie/menu/gui/GUIRecipeCard.java | 2 +- src/projectzombie/task/TaskLadderDown.java | 2 +- src/projectzombie/tiles/Tile.java | 7 +- src/projectzombie/tiles/TileBlastFurnace.java | 8 +- src/projectzombie/tiles/TileBossPortal.java | 6 +- src/projectzombie/tiles/TileCactus.java | 2 +- src/projectzombie/tiles/TileCampfire.java | 21 ++++- src/projectzombie/tiles/TileChest.java | 8 +- src/projectzombie/tiles/TileClayPot.java | 10 ++- src/projectzombie/tiles/TileCoal.java | 34 +++++++++ src/projectzombie/tiles/TileGrass.java | 2 +- .../tiles/TileGrassInfested.java | 2 +- src/projectzombie/tiles/TileHemp.java | 10 ++- src/projectzombie/tiles/TileIce.java | 2 +- src/projectzombie/tiles/TileLadder.java | 2 +- src/projectzombie/tiles/TileLadderUp.java | 8 +- src/projectzombie/tiles/TileLantern.java | 8 +- src/projectzombie/tiles/TileLava.java | 2 +- src/projectzombie/tiles/TileLavaFlow.java | 2 +- src/projectzombie/tiles/TileOre.java | 49 +++++++++++- src/projectzombie/tiles/TilePortalDown.java | 8 +- src/projectzombie/tiles/TileRock.java | 8 +- src/projectzombie/tiles/TileSapling.java | 2 +- src/projectzombie/tiles/TileTallGrass.java | 4 +- src/projectzombie/tiles/TileTree.java | 4 +- src/projectzombie/tiles/TileWall.java | 2 +- src/projectzombie/tiles/TileWater.java | 8 +- src/projectzombie/tiles/TileWorkbench.java | 8 +- .../util/{math => }/ColorRange.java | 2 +- .../util/{math => }/ItemStack.java | 27 +++++-- .../util/{math => }/NamedList.java | 2 +- .../util/{math => }/TileState.java | 2 +- .../util/math/astar/AStarSearcher.java | 2 +- src/projectzombie/world/World.java | 4 +- src/projectzombie/world/chunk/Chunk.java | 9 ++- src/projectzombie/world/chunk/ChunkEmpty.java | 2 +- src/projectzombie/world/layer/Layer.java | 2 +- .../world/layer/layergen/LayerGen.java | 4 +- .../layer/layergen/LayerGenBossArena.java | 4 +- .../world/layer/layergen/LayerGenCaves.java | 30 +++++++- .../world/layer/layergen/LayerGenEarth.java | 34 ++++----- .../layer/layergen/LayerGenLavaCaves.java | 4 +- src/resources/texture/item/coal.png | Bin 0 -> 2156 bytes src/resources/texture/item/rock_iron.png | Bin 0 -> 2722 bytes src/resources/texture/item/stone_hatchet.png | Bin 0 -> 866 bytes src/resources/texture/item/stone_pick.png | Bin 0 -> 891 bytes src/resources/texture/item/stone_shovel.png | Bin 0 -> 889 bytes src/resources/texture/list.txt | 13 +++- src/resources/texture/tile/campfire.png | Bin 774 -> 0 bytes src/resources/texture/tile/campfire_lit.png | Bin 0 -> 5280 bytes src/resources/texture/tile/campfire_unlit.png | Bin 0 -> 2117 bytes src/resources/texture/tile/rock_coal.png | Bin 0 -> 1884 bytes src/resources/texture/tile/rock_copper.png | Bin 0 -> 2026 bytes src/resources/texture/tile/rock_gold.png | Bin 0 -> 2009 bytes src/resources/texture/tile/rock_iron.png | Bin 0 -> 2009 bytes src/resources/texture/tile/rock_tin.png | Bin 0 -> 2080 bytes src/resources/texture/tile/rock_uranium.png | Bin 0 -> 2004 bytes 142 files changed, 603 insertions(+), 208 deletions(-) delete mode 100644 run/saves.bdf.gz delete mode 100644 run/saves/world/c_0_-10_10.bdf.gz delete mode 100644 run/saves/world/c_0_-5_0.bdf.gz delete mode 100644 run/saves/world/world.bdf.gz delete mode 100644 run/settings.bdf.gz create mode 100644 src/projectzombie/items/ItemCoal.java create mode 100644 src/projectzombie/items/modifier/ItemModifierClickCooldown.java create mode 100644 src/projectzombie/items/modifier/ItemModifierTimerPaused.java create mode 100644 src/projectzombie/tiles/TileCoal.java rename src/projectzombie/util/{math => }/ColorRange.java (92%) rename src/projectzombie/util/{math => }/ItemStack.java (85%) rename src/projectzombie/util/{math => }/NamedList.java (96%) rename src/projectzombie/util/{math => }/TileState.java (95%) create mode 100644 src/resources/texture/item/coal.png create mode 100644 src/resources/texture/item/rock_iron.png create mode 100644 src/resources/texture/item/stone_hatchet.png create mode 100644 src/resources/texture/item/stone_pick.png create mode 100644 src/resources/texture/item/stone_shovel.png delete mode 100644 src/resources/texture/tile/campfire.png create mode 100644 src/resources/texture/tile/campfire_lit.png create mode 100644 src/resources/texture/tile/campfire_unlit.png create mode 100644 src/resources/texture/tile/rock_coal.png create mode 100644 src/resources/texture/tile/rock_copper.png create mode 100644 src/resources/texture/tile/rock_gold.png create mode 100644 src/resources/texture/tile/rock_iron.png create mode 100644 src/resources/texture/tile/rock_tin.png create mode 100644 src/resources/texture/tile/rock_uranium.png diff --git a/.gitignore b/.gitignore index adb385c..bab2bf3 100755 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /bin/ +/run/ hs_err_pid* -*.bdf diff --git a/run/saves.bdf.gz b/run/saves.bdf.gz deleted file mode 100644 index cfd86a5222b3748e435234ba2663f183568157b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58 zcmb2|=3oGW|Fc!?f?fPG*s3e)0{yrS^L#53ID10nz@+IjW}gb05Haas)SQTEQ9KOO M80INzFfcFx06anzSO5S3 diff --git a/run/saves/world/c_0_-10_10.bdf.gz b/run/saves/world/c_0_-10_10.bdf.gz deleted file mode 100644 index 440b7e3fe1a510916c95bd1631c16282b4d94dea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmb2|=3oGW|FS2n`5F`iSRMW|=GshV{jRX9Q(8XbLturdfA*5uXRH@H^|I+&eUX^6 z)al*P^~WQgT$0Rey6``}e#$J3hm)SnoIJyp{qB_hi5^Q&{bgM2YJWMLfq?-4!R085 diff --git a/run/saves/world/c_0_-5_0.bdf.gz b/run/saves/world/c_0_-5_0.bdf.gz deleted file mode 100644 index ea33eb88c25f3632312ed2feba1fca9fdf7a665c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmb2|=3sz;r<3mc9WoF(c6*`sMezrx+CMg_Cm2NKb?6laUU1m?fp^b^=xvtr*NT7T zrcSZ39WzJW<_v83g`NHRK@@vljz4xn{>;E4I z@*4z0d^&z_FHX94!tc=hg>0{+CIpL2{^s}gTu;l@bsN_F=5!L>{YiWGrHB6vdBj#E zEmJGIyZij{Ywy&Pjvuy7%Di__$d6vVF$N{HPc~V2f=e&*%xp;U)J2$Q*I-W zC+%0-8KAIrx8IHnjJK!0J}_mqTc(!79j+Y$vn;fveimOibMPilordDM2Ry4*X*s$E z=4>y}zGs@Thi%{SR2HwTY|Gf!CA&sSMQCszXv<=ra^d3SD1kv3^m-jp;v~x9yvE|4#ghn+0EYOv#ye(sGlXpUAE$Hy>$6pM9D(b>r@{ bO8d_~H9kGfXnN(ge=Pme47R3nFfafBMy$}9 diff --git a/run/saves/world/world.bdf.gz b/run/saves/world/world.bdf.gz deleted file mode 100644 index e3a9166abcc2c07782ba6ca4c21c59bdb6ca03d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmb2|=3oGW|Fe%yJv`y?jKfn7>zti7dH#$^vkpz095FL0S G7#IMyTqxxL diff --git a/src/projectzombie/Main.java b/src/projectzombie/Main.java index 484ea1e..e6e9dbb 100755 --- a/src/projectzombie/Main.java +++ b/src/projectzombie/Main.java @@ -2,6 +2,7 @@ package projectzombie; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; +import java.io.File; import java.io.IOException; import java.util.Random; @@ -62,6 +63,19 @@ public class Main { try { + Environment.init(args); + File global_dir = new File(Environment.gdir); + + // Make this directory if it doesn't exist + if(!global_dir.isDirectory()) + { + if(global_dir.exists()) { + global_dir.delete(); + } + + global_dir.mkdirs(); + } + Runtime runtime = Runtime.getRuntime(); int cores = runtime.availableProcessors(); @@ -84,7 +98,6 @@ public class Main MathHelpers.init(); Settings.init(); - Environment.init(args); Cheats.init(args); Items.init(); diff --git a/src/projectzombie/display/DisplayLighting.java b/src/projectzombie/display/DisplayLighting.java index 948d2a5..41c06d9 100755 --- a/src/projectzombie/display/DisplayLighting.java +++ b/src/projectzombie/display/DisplayLighting.java @@ -15,7 +15,7 @@ import gl_engine.vec.Vec2i; import projectzombie.Main; import projectzombie.entity.Entity; import projectzombie.entity.player.EntityPlayer; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/display/DisplayRender.java b/src/projectzombie/display/DisplayRender.java index da617c2..1278974 100755 --- a/src/projectzombie/display/DisplayRender.java +++ b/src/projectzombie/display/DisplayRender.java @@ -13,7 +13,7 @@ import gl_engine.matrix.Matrix4; import projectzombie.Main; import projectzombie.entity.player.EntityPlayer; import projectzombie.settings.SettingQuality; -import projectzombie.util.math.ColorRange; +import projectzombie.util.ColorRange; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.layergen.LayerGen; diff --git a/src/projectzombie/display/DisplayRenderUI.java b/src/projectzombie/display/DisplayRenderUI.java index 35e9c7f..1d628b3 100755 --- a/src/projectzombie/display/DisplayRenderUI.java +++ b/src/projectzombie/display/DisplayRenderUI.java @@ -14,8 +14,8 @@ import projectzombie.inventory.Inventory; import projectzombie.model.Model; import projectzombie.model.ModelGui; import projectzombie.text.Text; +import projectzombie.util.ItemStack; import projectzombie.util.gl.GlHelpers; -import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/Entity.java b/src/projectzombie/entity/Entity.java index 9c2f1dd..50bc962 100755 --- a/src/projectzombie/entity/Entity.java +++ b/src/projectzombie/entity/Entity.java @@ -5,6 +5,7 @@ import java.lang.reflect.InvocationTargetException; import java.util.Random; import projectzombie.util.ClassBdf; +import projectzombie.util.TileState; import bdf.types.BdfNamedList; import bdf.types.BdfObject; import gl_engine.MathHelpers; @@ -15,7 +16,6 @@ import projectzombie.Main; import projectzombie.init.Entities; import projectzombie.model.IModel; import projectzombie.tiles.Tile; -import projectzombie.util.math.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -294,7 +294,7 @@ public abstract class Entity implements ClassBdf isDead = true; } - public void activateTile(Vec2i tpos) + public boolean activateTile(Vec2i tpos) { // Get the tile position and the layer Layer layer = Main.world.getLayer(); @@ -302,8 +302,9 @@ public abstract class Entity implements ClassBdf TileState tile_back = layer.getBackTile(tpos); // Activate both tiles - tile_front.tile.onActivated(layer, tpos, this, tile_front); - tile_back.tile.onActivated(layer, tpos, this, tile_back); + return ( + tile_front.tile.onActivated(layer, tpos, this, tile_front) || + tile_back.tile.onActivated(layer, tpos, this, tile_back)); } public void activateSteppedOnTile() diff --git a/src/projectzombie/entity/EntityBoss.java b/src/projectzombie/entity/EntityBoss.java index efc2833..b5672e2 100755 --- a/src/projectzombie/entity/EntityBoss.java +++ b/src/projectzombie/entity/EntityBoss.java @@ -17,7 +17,7 @@ import projectzombie.init.Tiles; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.Model; import projectzombie.time.GameTimer; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.util.math.random.OpenSimplexNoise; import projectzombie.util.math.random.RandomHelpers; import projectzombie.world.chunk.Chunk; diff --git a/src/projectzombie/entity/EntityExplosion.java b/src/projectzombie/entity/EntityExplosion.java index 409a145..b35b928 100755 --- a/src/projectzombie/entity/EntityExplosion.java +++ b/src/projectzombie/entity/EntityExplosion.java @@ -13,7 +13,7 @@ import projectzombie.init.Models; import projectzombie.init.Sounds; import projectzombie.init.Tiles; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/EntityItem.java b/src/projectzombie/entity/EntityItem.java index 2106d5f..5737226 100755 --- a/src/projectzombie/entity/EntityItem.java +++ b/src/projectzombie/entity/EntityItem.java @@ -5,7 +5,7 @@ import bdf.types.BdfObject; import gl_engine.MathHelpers; import gl_engine.vec.Vec3d; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/EntityZombie.java b/src/projectzombie/entity/EntityZombie.java index 491d2da..b0fe0bc 100755 --- a/src/projectzombie/entity/EntityZombie.java +++ b/src/projectzombie/entity/EntityZombie.java @@ -157,6 +157,11 @@ public class EntityZombie extends Entity implements EntityAlive, EntityKillWithP } } + // Despawn + if(player_distance > 128) { + kill(); + } + // Increase time time += 0.001; } diff --git a/src/projectzombie/entity/player/EntityPlayer.java b/src/projectzombie/entity/player/EntityPlayer.java index e7b214b..417901a 100755 --- a/src/projectzombie/entity/player/EntityPlayer.java +++ b/src/projectzombie/entity/player/EntityPlayer.java @@ -35,8 +35,8 @@ import projectzombie.settings.Cheats; import projectzombie.task.Task; import projectzombie.task.TaskDeathScreen; import projectzombie.tiles.TileSapling; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -103,9 +103,6 @@ public class EntityPlayer extends Entity implements if(hydration > 1) { hydration = 1; } - - inventory.addItem(new ItemStack(Items.TORCH, 1)); - inventory.addItem(new ItemStack(Items.LANTERN, 1)); } public int getAmmo() { @@ -340,8 +337,8 @@ public class EntityPlayer extends Entity implements Vec2d movement = MathHelpers.moveTowards2(1, Math.toRadians(angle)); Vec2d place_pos = getPos().xz().add(movement); - if(is.isEmpty() || !is.item.onPlayerRightClick(is, Main.world.getLayer(), this, place_pos)) { - activateTile(getPos().xz().add(movement.multiply(0.5)).toInt()); + if(!activateTile(getPos().xz().add(movement.multiply(0.5)).toInt()) && !is.isEmpty()) { + is.item.onPlayerRightClick(is, Main.world.getLayer(), this, place_pos); } } diff --git a/src/projectzombie/entity/tileentity/TileEntityBlastFurnace.java b/src/projectzombie/entity/tileentity/TileEntityBlastFurnace.java index 351585d..5d99a71 100644 --- a/src/projectzombie/entity/tileentity/TileEntityBlastFurnace.java +++ b/src/projectzombie/entity/tileentity/TileEntityBlastFurnace.java @@ -15,8 +15,8 @@ import projectzombie.items.ItemSmeltable; import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.menu.MenuInventoryStorage; import projectzombie.menu.gui.GUIItemSlotGetter; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/tileentity/TileEntityCampfire.java b/src/projectzombie/entity/tileentity/TileEntityCampfire.java index c2aab41..74bbd3f 100644 --- a/src/projectzombie/entity/tileentity/TileEntityCampfire.java +++ b/src/projectzombie/entity/tileentity/TileEntityCampfire.java @@ -14,8 +14,8 @@ import projectzombie.items.ItemSmeltable; import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.menu.MenuInventoryStorage; import projectzombie.menu.gui.GUIItemSlotGetter; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/entity/tileentity/TileEntityClayPot.java b/src/projectzombie/entity/tileentity/TileEntityClayPot.java index ea31f0c..5b02f06 100644 --- a/src/projectzombie/entity/tileentity/TileEntityClayPot.java +++ b/src/projectzombie/entity/tileentity/TileEntityClayPot.java @@ -2,7 +2,7 @@ package projectzombie.entity.tileentity; import bdf.types.BdfNamedList; import bdf.types.BdfObject; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class TileEntityClayPot extends TileEntity { diff --git a/src/projectzombie/init/ItemModifiers.java b/src/projectzombie/init/ItemModifiers.java index 0448604..9d8fe02 100644 --- a/src/projectzombie/init/ItemModifiers.java +++ b/src/projectzombie/init/ItemModifiers.java @@ -8,6 +8,7 @@ import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierFluidStorage; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierTimer; +import projectzombie.items.modifier.ItemModifierTimerPaused; import projectzombie.items.modifier.ItemModifierWater; public class ItemModifiers @@ -33,5 +34,6 @@ public class ItemModifiers register(ItemModifierFluidStorage.class); register(ItemModifierWater.class); register(ItemModifierTimer.class); + register(ItemModifierTimerPaused.class); } } diff --git a/src/projectzombie/init/Items.java b/src/projectzombie/init/Items.java index 2d02448..1ad8e4d 100755 --- a/src/projectzombie/init/Items.java +++ b/src/projectzombie/init/Items.java @@ -11,6 +11,7 @@ import projectzombie.items.ItemCampfire; import projectzombie.items.ItemCharcoal; import projectzombie.items.ItemClayPot; import projectzombie.items.ItemClayPotWet; +import projectzombie.items.ItemCoal; import projectzombie.items.ItemEmpty; import projectzombie.items.ItemFlare; import projectzombie.items.ItemFlint; @@ -76,6 +77,7 @@ public class Items register(CLAY_POT); register(CLAY_POT_WET); register(TORCH); + register(COAL); } public static final Item AMMO = new ItemAmmo(); @@ -108,4 +110,5 @@ public class Items public static final Item CLAY_POT = new ItemClayPot(); public static final Item CLAY_POT_WET = new ItemClayPotWet(); public static final Item TORCH = new ItemTorch(); + public static final Item COAL = new ItemCoal(); } diff --git a/src/projectzombie/init/Models.java b/src/projectzombie/init/Models.java index 9b801ff..703b19b 100755 --- a/src/projectzombie/init/Models.java +++ b/src/projectzombie/init/Models.java @@ -28,7 +28,8 @@ public class Models public static final Model TILE_TREE = new ModelTree(); public static final Model TILE_TREE_SNOW = new ModelTreeSnow(); - public static final Model TILE_CAMPFIRE = new ModelCross(Resources.ATLAS.get("/tile/campfire.png")); + public static final Model TILE_CAMPFIRE_LIT = new ModelCross(Resources.ATLAS.get("/tile/campfire_lit.png"), 4, 20); + public static final Model TILE_CAMPFIRE_UNLIT = new ModelCross(Resources.ATLAS.get("/tile/campfire_unlit.png")); public static final Model TILE_BLAST_FURNACE = new ModelBox(Resources.ATLAS.get("/tile/blast_furnace.png")); public static final Model TILE_WORKBENCH = new ModelBox(Resources.ATLAS.get("/tile/workbench.png")); public static final Model TILE_CLAY_POT_EMPTY = new ModelBox(Resources.ATLAS.get("/tile/clay_pot_empty.png")); @@ -80,10 +81,12 @@ public class Models public static final Model TILE_LAVA = new ModelTile(Resources.ATLAS.get("/tile/lava.png"), 16, 50); public static final Model TILE_LAVA_FLOW = new ModelTile(Resources.ATLAS.get("/tile/lava_flow.png"), 16, 50); public static final Model TILE_LANTERN = new ModelVertical(Resources.ATLAS.get("/tile/lantern.png"), 4, 5); - public static final Model TILE_ORE_IRON = new ModelTile(Resources.ATLAS.get("/tile/ore_iron.png")); - public static final Model TILE_ORE_GOLD = new ModelTile(Resources.ATLAS.get("/tile/ore_gold.png")); - public static final Model TILE_ORE_TIN = new ModelTile(Resources.ATLAS.get("/tile/ore_tin.png")); - public static final Model TILE_ORE_COPPER = new ModelTile(Resources.ATLAS.get("/tile/ore_copper.png")); + public static final Model TILE_ROCK_IRON = new ModelRock(Resources.ATLAS.get("/tile/rock_iron.png")); + public static final Model TILE_ROCK_GOLD = new ModelRock(Resources.ATLAS.get("/tile/rock_gold.png")); + public static final Model TILE_ROCK_TIN = new ModelRock(Resources.ATLAS.get("/tile/rock_tin.png")); + public static final Model TILE_ROCK_COPPER = new ModelRock(Resources.ATLAS.get("/tile/rock_copper.png")); + public static final Model TILE_ROCK_COAL = new ModelRock(Resources.ATLAS.get("/tile/rock_coal.png")); + public static final Model TILE_ROCK_URANIUM = new ModelRock(Resources.ATLAS.get("/tile/rock_uranium.png")); public static final Model ENTITY_BOSS_IDLE = new ModelVertical(Resources.ATLAS.get("/entity/boss1/boss_still.png"), new Vec2d(4, 4)); public static final Model ENTITY_BOSS_FIRING = new ModelVertical(Resources.ATLAS.get("/entity/boss1/boss_firing.png"), new Vec2d(4, 4), 4, 50); @@ -145,7 +148,7 @@ public class Models public static final ModelItem ITEM_EMPTY = ModelItem.createEmpty(); public static final ModelItem ITEM_MISSING = new ModelItem(Resources.TEX_EMPTY); - public static final ModelItem ITEM_CAMPFIRE = new ModelItem(Resources.ATLAS.get("/tile/campfire.png")); + public static final ModelItem ITEM_CAMPFIRE = new ModelItem(Resources.ATLAS.get("/tile/campfire_unlit.png")); public static final ModelItem ITEM_BLAST_FURNACE = new ModelItem(Resources.ATLAS.get("/item/blast_furnace.png")); public static final ModelItem ITEM_WORKBENCH = new ModelItem(Resources.ATLAS.get("/item/workbench.png")); public static final ModelItem ITEM_GRAPPLING_HOOK = new ModelItem(Resources.ATLAS.get("/item/grappling_hook.png")); diff --git a/src/projectzombie/init/Recipes.java b/src/projectzombie/init/Recipes.java index f829829..5adf0ca 100644 --- a/src/projectzombie/init/Recipes.java +++ b/src/projectzombie/init/Recipes.java @@ -7,7 +7,7 @@ import projectzombie.inventory.recipe.Recipe; import projectzombie.inventory.recipe.RecipeBasic; import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierMeta; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class Recipes { @@ -66,6 +66,15 @@ public class Recipes Crafting.BASIC, }, new ItemStack(Items.WORKBENCH, 1))); + recipies.add(new RecipeBasic( + new ItemStack[] { + new ItemStack(Items.LOG, 1), + new ItemStack(Items.COAL, 1), + new ItemStack(Items.PLANT_FIBRE, 2), + }, new Crafting[] { + Crafting.BASIC, + }, new ItemStack(Items.TORCH, 1))); + // Workbench items diff --git a/src/projectzombie/init/Tiles.java b/src/projectzombie/init/Tiles.java index 4e3f65f..542de11 100755 --- a/src/projectzombie/init/Tiles.java +++ b/src/projectzombie/init/Tiles.java @@ -9,6 +9,7 @@ import projectzombie.tiles.TileCactus; import projectzombie.tiles.TileCampfire; import projectzombie.tiles.TileChest; import projectzombie.tiles.TileClayPot; +import projectzombie.tiles.TileCoal; import projectzombie.tiles.TileDirt; import projectzombie.tiles.TileGrass; import projectzombie.tiles.TileGrassBurnt; @@ -86,6 +87,7 @@ public class Tiles register(BLAST_FURNACE); register(CLAY_POT); register(ORE); + register(COAL); } public static final Tile GRASS = new TileGrass(); @@ -121,4 +123,5 @@ public class Tiles public static final Tile BLAST_FURNACE = new TileBlastFurnace(); public static final Tile CLAY_POT = new TileClayPot(); public static final Tile ORE = new TileOre(); + public static final Tile COAL = new TileCoal(); } diff --git a/src/projectzombie/input/types/InputGame.java b/src/projectzombie/input/types/InputGame.java index 442b779..e7670db 100755 --- a/src/projectzombie/input/types/InputGame.java +++ b/src/projectzombie/input/types/InputGame.java @@ -10,7 +10,7 @@ import projectzombie.menu.MenuInventory; import projectzombie.menu.MenuInventoryBasic; import projectzombie.menu.MenuInventoryStorage; import projectzombie.menu.gui.GUIItemSlotGetter; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.ChunkEventHandler; public class InputGame implements Input diff --git a/src/projectzombie/inventory/IInventory.java b/src/projectzombie/inventory/IInventory.java index 5559a43..5d21098 100755 --- a/src/projectzombie/inventory/IInventory.java +++ b/src/projectzombie/inventory/IInventory.java @@ -1,6 +1,6 @@ package projectzombie.inventory; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface IInventory { diff --git a/src/projectzombie/inventory/IInventoryArmor.java b/src/projectzombie/inventory/IInventoryArmor.java index cf5e23e..1ff6341 100644 --- a/src/projectzombie/inventory/IInventoryArmor.java +++ b/src/projectzombie/inventory/IInventoryArmor.java @@ -1,6 +1,6 @@ package projectzombie.inventory; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface IInventoryArmor { diff --git a/src/projectzombie/inventory/IInventoryClothing.java b/src/projectzombie/inventory/IInventoryClothing.java index bf77782..fec947b 100644 --- a/src/projectzombie/inventory/IInventoryClothing.java +++ b/src/projectzombie/inventory/IInventoryClothing.java @@ -1,6 +1,6 @@ package projectzombie.inventory; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface IInventoryClothing { diff --git a/src/projectzombie/inventory/Inventory.java b/src/projectzombie/inventory/Inventory.java index 3b33b6f..4cbafbd 100755 --- a/src/projectzombie/inventory/Inventory.java +++ b/src/projectzombie/inventory/Inventory.java @@ -1,6 +1,7 @@ package projectzombie.inventory; import projectzombie.util.ClassBdf; +import projectzombie.util.ItemStack; import bdf.types.BdfArray; import bdf.types.BdfNamedList; import bdf.types.BdfObject; @@ -9,7 +10,6 @@ import gl_engine.vec.Vec3d; import projectzombie.entity.EntityItem; import projectzombie.items.Item; import projectzombie.items.modifier.ItemModifier; -import projectzombie.util.math.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/inventory/InventoryArmor.java b/src/projectzombie/inventory/InventoryArmor.java index ec41194..545e9a6 100644 --- a/src/projectzombie/inventory/InventoryArmor.java +++ b/src/projectzombie/inventory/InventoryArmor.java @@ -1,9 +1,9 @@ package projectzombie.inventory; import projectzombie.util.ClassBdf; +import projectzombie.util.ItemStack; import bdf.types.BdfNamedList; import bdf.types.BdfObject; -import projectzombie.util.math.ItemStack; public class InventoryArmor implements ClassBdf, IInventoryArmor { diff --git a/src/projectzombie/inventory/InventoryClothing.java b/src/projectzombie/inventory/InventoryClothing.java index ffeaff5..58ed621 100644 --- a/src/projectzombie/inventory/InventoryClothing.java +++ b/src/projectzombie/inventory/InventoryClothing.java @@ -1,9 +1,9 @@ package projectzombie.inventory; import projectzombie.util.ClassBdf; +import projectzombie.util.ItemStack; import bdf.types.BdfNamedList; import bdf.types.BdfObject; -import projectzombie.util.math.ItemStack; public class InventoryClothing implements ClassBdf, IInventoryClothing { diff --git a/src/projectzombie/inventory/recipe/Recipe.java b/src/projectzombie/inventory/recipe/Recipe.java index e1d2e10..5426462 100644 --- a/src/projectzombie/inventory/recipe/Recipe.java +++ b/src/projectzombie/inventory/recipe/Recipe.java @@ -1,8 +1,8 @@ package projectzombie.inventory.recipe; import projectzombie.inventory.Inventory; +import projectzombie.util.ItemStack; import projectzombie.inventory.Crafting; -import projectzombie.util.math.ItemStack; public interface Recipe { diff --git a/src/projectzombie/inventory/recipe/RecipeBasic.java b/src/projectzombie/inventory/recipe/RecipeBasic.java index 2f3d0de..720e6bf 100644 --- a/src/projectzombie/inventory/recipe/RecipeBasic.java +++ b/src/projectzombie/inventory/recipe/RecipeBasic.java @@ -2,7 +2,7 @@ package projectzombie.inventory.recipe; import projectzombie.inventory.Crafting; import projectzombie.inventory.Inventory; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class RecipeBasic implements Recipe { diff --git a/src/projectzombie/items/Item.java b/src/projectzombie/items/Item.java index d056687..3abad39 100755 --- a/src/projectzombie/items/Item.java +++ b/src/projectzombie/items/Item.java @@ -11,7 +11,7 @@ import projectzombie.inventory.IInventory; import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemAbstractTool.java b/src/projectzombie/items/ItemAbstractTool.java index 14c33d6..3e40710 100644 --- a/src/projectzombie/items/ItemAbstractTool.java +++ b/src/projectzombie/items/ItemAbstractTool.java @@ -1,7 +1,7 @@ package projectzombie.items; import projectzombie.items.modifier.ItemModifierDamage; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public abstract class ItemAbstractTool extends Item implements ItemTool { diff --git a/src/projectzombie/items/ItemAcorn.java b/src/projectzombie/items/ItemAcorn.java index 02024a1..4c2d534 100644 --- a/src/projectzombie/items/ItemAcorn.java +++ b/src/projectzombie/items/ItemAcorn.java @@ -10,7 +10,7 @@ import projectzombie.init.Tiles; import projectzombie.model.Model; import projectzombie.model.ModelItem; import projectzombie.tiles.Tile; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemAmmo.java b/src/projectzombie/items/ItemAmmo.java index 8639193..358e197 100755 --- a/src/projectzombie/items/ItemAmmo.java +++ b/src/projectzombie/items/ItemAmmo.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemAmmo extends Item { diff --git a/src/projectzombie/items/ItemArmor.java b/src/projectzombie/items/ItemArmor.java index bcb6526..6b5d450 100644 --- a/src/projectzombie/items/ItemArmor.java +++ b/src/projectzombie/items/ItemArmor.java @@ -1,6 +1,6 @@ package projectzombie.items; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface ItemArmor { diff --git a/src/projectzombie/items/ItemAsh.java b/src/projectzombie/items/ItemAsh.java index 385a2eb..c472fcb 100644 --- a/src/projectzombie/items/ItemAsh.java +++ b/src/projectzombie/items/ItemAsh.java @@ -3,7 +3,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemAsh extends Item { diff --git a/src/projectzombie/items/ItemBlastFurnace.java b/src/projectzombie/items/ItemBlastFurnace.java index 6a0ba66..afac587 100644 --- a/src/projectzombie/items/ItemBlastFurnace.java +++ b/src/projectzombie/items/ItemBlastFurnace.java @@ -7,7 +7,7 @@ import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemBurnable.java b/src/projectzombie/items/ItemBurnable.java index a5a3f55..27fd9cc 100644 --- a/src/projectzombie/items/ItemBurnable.java +++ b/src/projectzombie/items/ItemBurnable.java @@ -1,6 +1,6 @@ package projectzombie.items; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface ItemBurnable { diff --git a/src/projectzombie/items/ItemCampfire.java b/src/projectzombie/items/ItemCampfire.java index a8bc72a..a714e79 100644 --- a/src/projectzombie/items/ItemCampfire.java +++ b/src/projectzombie/items/ItemCampfire.java @@ -7,7 +7,7 @@ import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -21,7 +21,7 @@ public class ItemCampfire extends Item @Override public Model getPlaceModel(ItemStack stack) { - return Models.TILE_CAMPFIRE; + return Models.TILE_CAMPFIRE_UNLIT; } @Override diff --git a/src/projectzombie/items/ItemCharcoal.java b/src/projectzombie/items/ItemCharcoal.java index a12a5cc..1401367 100644 --- a/src/projectzombie/items/ItemCharcoal.java +++ b/src/projectzombie/items/ItemCharcoal.java @@ -3,7 +3,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemCharcoal extends Item { diff --git a/src/projectzombie/items/ItemClayPot.java b/src/projectzombie/items/ItemClayPot.java index 0ab9cd9..1bacb3a 100644 --- a/src/projectzombie/items/ItemClayPot.java +++ b/src/projectzombie/items/ItemClayPot.java @@ -12,8 +12,8 @@ import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierWater; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.layer.Layer; public class ItemClayPot extends Item diff --git a/src/projectzombie/items/ItemClayPotWet.java b/src/projectzombie/items/ItemClayPotWet.java index c8c6607..c9cdec5 100644 --- a/src/projectzombie/items/ItemClayPotWet.java +++ b/src/projectzombie/items/ItemClayPotWet.java @@ -3,7 +3,7 @@ package projectzombie.items; import projectzombie.init.Items; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemClayPotWet extends Item implements ItemCookable { diff --git a/src/projectzombie/items/ItemClothing.java b/src/projectzombie/items/ItemClothing.java index e95d4b6..989f90d 100644 --- a/src/projectzombie/items/ItemClothing.java +++ b/src/projectzombie/items/ItemClothing.java @@ -1,6 +1,6 @@ package projectzombie.items; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface ItemClothing { diff --git a/src/projectzombie/items/ItemCoal.java b/src/projectzombie/items/ItemCoal.java new file mode 100644 index 0000000..47d2f8d --- /dev/null +++ b/src/projectzombie/items/ItemCoal.java @@ -0,0 +1,31 @@ +package projectzombie.items; + +import projectzombie.init.Items; +import projectzombie.init.Models; +import projectzombie.model.ModelItem; +import projectzombie.util.ItemStack; + +public class ItemCoal extends Item implements ItemBurnable +{ + + @Override + public ModelItem getModel(ItemStack stack) { + return Models.ITEM_COAL; + } + + @Override + public String getName(ItemStack stack) { + return "Coal"; + } + + @Override + public int getBurnTime(ItemStack stack) { + return 4800; + } + + @Override + public ItemStack[] getBurnProducts(ItemStack stack) { + return new ItemStack[] {new ItemStack(Items.ASH, 1)}; + } + +} diff --git a/src/projectzombie/items/ItemCookable.java b/src/projectzombie/items/ItemCookable.java index 9cbc8fc..0a80010 100644 --- a/src/projectzombie/items/ItemCookable.java +++ b/src/projectzombie/items/ItemCookable.java @@ -1,6 +1,6 @@ package projectzombie.items; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface ItemCookable { diff --git a/src/projectzombie/items/ItemEmpty.java b/src/projectzombie/items/ItemEmpty.java index 51e66f8..cce82f4 100755 --- a/src/projectzombie/items/ItemEmpty.java +++ b/src/projectzombie/items/ItemEmpty.java @@ -3,7 +3,7 @@ package projectzombie.items; import projectzombie.entity.Entity; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemFlare.java b/src/projectzombie/items/ItemFlare.java index 44c66be..f2553c9 100755 --- a/src/projectzombie/items/ItemFlare.java +++ b/src/projectzombie/items/ItemFlare.java @@ -7,7 +7,7 @@ import projectzombie.entity.EntityFlare; import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemFlint.java b/src/projectzombie/items/ItemFlint.java index 7c8221b..78e90f8 100644 --- a/src/projectzombie/items/ItemFlint.java +++ b/src/projectzombie/items/ItemFlint.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemFlint extends Item { diff --git a/src/projectzombie/items/ItemFlintHatchet.java b/src/projectzombie/items/ItemFlintHatchet.java index 1f9af75..d0a8ad9 100644 --- a/src/projectzombie/items/ItemFlintHatchet.java +++ b/src/projectzombie/items/ItemFlintHatchet.java @@ -5,7 +5,7 @@ import projectzombie.items.modifier.ItemModifier; import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemFlintHatchet extends ItemAbstractTool { diff --git a/src/projectzombie/items/ItemGrapplingHook.java b/src/projectzombie/items/ItemGrapplingHook.java index 281f091..a7e2dc3 100755 --- a/src/projectzombie/items/ItemGrapplingHook.java +++ b/src/projectzombie/items/ItemGrapplingHook.java @@ -9,7 +9,7 @@ import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifier; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemHealthPotion.java b/src/projectzombie/items/ItemHealthPotion.java index bc0f6af..ea65a1f 100755 --- a/src/projectzombie/items/ItemHealthPotion.java +++ b/src/projectzombie/items/ItemHealthPotion.java @@ -7,7 +7,7 @@ import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemHempSeed.java b/src/projectzombie/items/ItemHempSeed.java index bc6d11e..8e28344 100644 --- a/src/projectzombie/items/ItemHempSeed.java +++ b/src/projectzombie/items/ItemHempSeed.java @@ -8,7 +8,7 @@ import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemInfestation.java b/src/projectzombie/items/ItemInfestation.java index 5ca2c25..dcd07af 100644 --- a/src/projectzombie/items/ItemInfestation.java +++ b/src/projectzombie/items/ItemInfestation.java @@ -7,7 +7,7 @@ import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemLantern.java b/src/projectzombie/items/ItemLantern.java index 094f8c8..08cf543 100755 --- a/src/projectzombie/items/ItemLantern.java +++ b/src/projectzombie/items/ItemLantern.java @@ -9,7 +9,7 @@ import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemLog.java b/src/projectzombie/items/ItemLog.java index e60dd91..548628b 100644 --- a/src/projectzombie/items/ItemLog.java +++ b/src/projectzombie/items/ItemLog.java @@ -4,7 +4,7 @@ import projectzombie.init.Items; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemLog extends Item implements ItemBurnable { diff --git a/src/projectzombie/items/ItemMetal.java b/src/projectzombie/items/ItemMetal.java index 43bd3a6..0cf1910 100644 --- a/src/projectzombie/items/ItemMetal.java +++ b/src/projectzombie/items/ItemMetal.java @@ -4,7 +4,7 @@ import projectzombie.init.Items; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemMetal extends Item { diff --git a/src/projectzombie/items/ItemOre.java b/src/projectzombie/items/ItemOre.java index 74d388c..eadf476 100644 --- a/src/projectzombie/items/ItemOre.java +++ b/src/projectzombie/items/ItemOre.java @@ -4,7 +4,7 @@ import projectzombie.init.Items; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemOre extends Item implements ItemSmeltable { diff --git a/src/projectzombie/items/ItemPlantFibre.java b/src/projectzombie/items/ItemPlantFibre.java index fce33b6..1f49e61 100644 --- a/src/projectzombie/items/ItemPlantFibre.java +++ b/src/projectzombie/items/ItemPlantFibre.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemPlantFibre extends Item { diff --git a/src/projectzombie/items/ItemRock.java b/src/projectzombie/items/ItemRock.java index 2e96c58..8c27da1 100755 --- a/src/projectzombie/items/ItemRock.java +++ b/src/projectzombie/items/ItemRock.java @@ -3,7 +3,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemRock extends Item { diff --git a/src/projectzombie/items/ItemSmeltable.java b/src/projectzombie/items/ItemSmeltable.java index 5540a76..1a060de 100644 --- a/src/projectzombie/items/ItemSmeltable.java +++ b/src/projectzombie/items/ItemSmeltable.java @@ -1,6 +1,6 @@ package projectzombie.items; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface ItemSmeltable { diff --git a/src/projectzombie/items/ItemSpawn.java b/src/projectzombie/items/ItemSpawn.java index c5aac9e..b981165 100755 --- a/src/projectzombie/items/ItemSpawn.java +++ b/src/projectzombie/items/ItemSpawn.java @@ -4,7 +4,7 @@ import gl_engine.vec.Vec2d; import gl_engine.vec.Vec2i; import gl_engine.vec.Vec3d; import projectzombie.entity.player.EntityPlayer; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemStoneHatchet.java b/src/projectzombie/items/ItemStoneHatchet.java index 6315245..2ded1e0 100644 --- a/src/projectzombie/items/ItemStoneHatchet.java +++ b/src/projectzombie/items/ItemStoneHatchet.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemStoneHatchet extends ItemAbstractTool { diff --git a/src/projectzombie/items/ItemStonePick.java b/src/projectzombie/items/ItemStonePick.java index 81c7bb1..19b72f7 100644 --- a/src/projectzombie/items/ItemStonePick.java +++ b/src/projectzombie/items/ItemStonePick.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemStonePick extends ItemAbstractTool { diff --git a/src/projectzombie/items/ItemStoneShovel.java b/src/projectzombie/items/ItemStoneShovel.java index 7c02ecc..a2bc284 100644 --- a/src/projectzombie/items/ItemStoneShovel.java +++ b/src/projectzombie/items/ItemStoneShovel.java @@ -2,7 +2,7 @@ package projectzombie.items; import projectzombie.init.Models; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemStoneShovel extends ItemAbstractTool { diff --git a/src/projectzombie/items/ItemTnt.java b/src/projectzombie/items/ItemTnt.java index e3bc7ba..01b7d2f 100755 --- a/src/projectzombie/items/ItemTnt.java +++ b/src/projectzombie/items/ItemTnt.java @@ -8,7 +8,7 @@ import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/ItemTool.java b/src/projectzombie/items/ItemTool.java index 8f2cadc..5c85094 100644 --- a/src/projectzombie/items/ItemTool.java +++ b/src/projectzombie/items/ItemTool.java @@ -1,6 +1,6 @@ package projectzombie.items; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface ItemTool { diff --git a/src/projectzombie/items/ItemTorch.java b/src/projectzombie/items/ItemTorch.java index 6cf7e14..c05d3eb 100644 --- a/src/projectzombie/items/ItemTorch.java +++ b/src/projectzombie/items/ItemTorch.java @@ -4,11 +4,13 @@ import gl_engine.vec.Vec2d; import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifier; +import projectzombie.items.modifier.ItemModifierClickCooldown; import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierTimer; +import projectzombie.items.modifier.ItemModifierTimerPaused; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.layer.Layer; public class ItemTorch extends Item @@ -29,26 +31,72 @@ public class ItemTorch extends Item @Override public double getDamage(ItemStack stack) { - ItemModifierTimer timer = (ItemModifierTimer)stack.getModifier(ItemModifierTimer.class); - - if(timer == null) { - return 0; + if(ItemModifierMeta.getStackMeta(stack) == 0) + { + ItemModifierTimerPaused timer = (ItemModifierTimerPaused)stack.getModifier(ItemModifierTimerPaused.class); + + if(timer == null) { + return 0; + } + + return timer.getDamage(); } - return timer.getDamage(); + else + { + ItemModifierTimer timer = (ItemModifierTimer)stack.getModifier(ItemModifierTimer.class); + + if(timer == null) { + return 0; + } + + return timer.getDamage(); + } } @Override public boolean onPlayerRightClick(ItemStack stack, Layer layer, EntityPlayer player, Vec2d place_pos) { - if(ItemModifierMeta.getStackMeta(stack) == 1) { - return false; + ItemModifierClickCooldown cooldown = (ItemModifierClickCooldown) + stack.getModifier(ItemModifierClickCooldown.class); + + if(cooldown != null && !cooldown.canClick()) { + return true; } - stack.modifiers = new ItemModifier[] { - new ItemModifierMeta(1), - new ItemModifierTimer(12000), - }; + else if(cooldown == null) { + cooldown = new ItemModifierClickCooldown(500); + } + + cooldown.click(); + + if(ItemModifierMeta.getStackMeta(stack) == 0) + { + ItemModifierTimerPaused timer_p = (ItemModifierTimerPaused) + stack.getModifier(ItemModifierTimerPaused.class); + ItemModifierTimer timer; + + if(timer_p == null) { + timer = new ItemModifierTimer(12000); + } + + else { + timer = timer_p.resume(); + } + + stack.modifiers = new ItemModifier[] {new ItemModifierMeta(1), timer, cooldown}; + } + + else + { + ItemModifierTimer timer = (ItemModifierTimer)stack.getModifier(ItemModifierTimer.class); + + if(timer == null) { + timer = new ItemModifierTimer(12000); + } + + stack.modifiers = new ItemModifier[] {new ItemModifierMeta(0), timer.pause(), cooldown}; + } return true; } diff --git a/src/projectzombie/items/ItemWorkbench.java b/src/projectzombie/items/ItemWorkbench.java index 1b609bd..183437e 100644 --- a/src/projectzombie/items/ItemWorkbench.java +++ b/src/projectzombie/items/ItemWorkbench.java @@ -7,7 +7,7 @@ import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.layer.Layer; public class ItemWorkbench extends Item diff --git a/src/projectzombie/items/modifier/ItemModifierClickCooldown.java b/src/projectzombie/items/modifier/ItemModifierClickCooldown.java new file mode 100644 index 0000000..acff007 --- /dev/null +++ b/src/projectzombie/items/modifier/ItemModifierClickCooldown.java @@ -0,0 +1,46 @@ +package projectzombie.items.modifier; + +import bdf.types.BdfObject; + +public class ItemModifierClickCooldown extends ItemModifier +{ + long last; + long wait; + + public ItemModifierClickCooldown() { + wait = 500; + } + + public ItemModifierClickCooldown(long wait) { + this.wait = wait; + } + + public void click() { + last = System.currentTimeMillis(); + } + + public boolean canClick() { + return (System.currentTimeMillis() - last > wait); + } + + @Override + public void BdfClassLoad(BdfObject bdf) { + } + + @Override + public void BdfClassSave(BdfObject bdf) { + } + + @Override + public boolean isEqual(ItemModifier other) { + return true; + } + + @Override + public ItemModifier copy() { + ItemModifierClickCooldown copy = new ItemModifierClickCooldown(wait); + copy.last = last; + return copy; + } + +} diff --git a/src/projectzombie/items/modifier/ItemModifierMeta.java b/src/projectzombie/items/modifier/ItemModifierMeta.java index bb02e83..5479396 100644 --- a/src/projectzombie/items/modifier/ItemModifierMeta.java +++ b/src/projectzombie/items/modifier/ItemModifierMeta.java @@ -2,7 +2,7 @@ package projectzombie.items.modifier; import bdf.types.BdfNamedList; import bdf.types.BdfObject; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class ItemModifierMeta extends ItemModifier { diff --git a/src/projectzombie/items/modifier/ItemModifierTimer.java b/src/projectzombie/items/modifier/ItemModifierTimer.java index 3a03f58..36068b2 100644 --- a/src/projectzombie/items/modifier/ItemModifierTimer.java +++ b/src/projectzombie/items/modifier/ItemModifierTimer.java @@ -7,11 +7,11 @@ import projectzombie.time.GameTimer; public class ItemModifierTimer extends ItemModifier { - private long end; - private long start; + long end; + long start; public long getLeft() { - return GameTimer.getTime() - end; + return end - GameTimer.getTime(); } public double getDamage() { @@ -56,5 +56,8 @@ public class ItemModifierTimer extends ItemModifier timer.end = this.end; return timer; } - + + public ItemModifierTimerPaused pause() { + return new ItemModifierTimerPaused(end - start, getLeft()); + } } diff --git a/src/projectzombie/items/modifier/ItemModifierTimerPaused.java b/src/projectzombie/items/modifier/ItemModifierTimerPaused.java new file mode 100644 index 0000000..c8bc4fd --- /dev/null +++ b/src/projectzombie/items/modifier/ItemModifierTimerPaused.java @@ -0,0 +1,65 @@ +package projectzombie.items.modifier; + +import bdf.types.BdfNamedList; +import bdf.types.BdfObject; +import projectzombie.time.GameTimer; + +public class ItemModifierTimerPaused extends ItemModifier +{ + long left; + long total; + + public ItemModifierTimerPaused(BdfObject bdf) { + BdfClassLoad(bdf); + } + + public ItemModifierTimerPaused(long total, long left) { + this.total = total; + this.left = left; + } + + @Override + public void BdfClassLoad(BdfObject bdf) { + BdfNamedList nl = bdf.getNamedList(); + left = nl.get("left").getLong(); + total = nl.get("total").getLong(); + } + + @Override + public void BdfClassSave(BdfObject bdf) { + BdfNamedList nl = bdf.getNamedList(); + nl.set("left", bdf.newObject().setLong(left)); + nl.set("total", bdf.newObject().setLong(total)); + } + + @Override + public boolean isEqual(ItemModifier other) { + return true; + } + + @Override + public ItemModifier copy() { + return new ItemModifierTimerPaused(total, left); + } + + public ItemModifierTimer resume() + { + long now = GameTimer.getTime(); + long end = now + left; + + ItemModifierTimer timer = new ItemModifierTimer(0); + timer.start = end - total; + timer.end = end; + + return timer; + } + + public long getLeft() { + return left; + } + + public double getDamage() { + return 1 - (double)left / (double)total; + } + +} diff --git a/src/projectzombie/items/spawner/ItemSpawnDummy.java b/src/projectzombie/items/spawner/ItemSpawnDummy.java index bec1df1..ae303e6 100644 --- a/src/projectzombie/items/spawner/ItemSpawnDummy.java +++ b/src/projectzombie/items/spawner/ItemSpawnDummy.java @@ -5,7 +5,7 @@ import projectzombie.entity.EntityDummy; import projectzombie.init.Models; import projectzombie.items.ItemSpawn; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/items/spawner/ItemSpawnZombie.java b/src/projectzombie/items/spawner/ItemSpawnZombie.java index 333204b..23a899b 100755 --- a/src/projectzombie/items/spawner/ItemSpawnZombie.java +++ b/src/projectzombie/items/spawner/ItemSpawnZombie.java @@ -5,7 +5,7 @@ import projectzombie.entity.EntityZombie; import projectzombie.init.Models; import projectzombie.items.ItemSpawn; import projectzombie.model.ModelItem; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/menu/MenuInventory.java b/src/projectzombie/menu/MenuInventory.java index 7e84c65..3923fc4 100644 --- a/src/projectzombie/menu/MenuInventory.java +++ b/src/projectzombie/menu/MenuInventory.java @@ -20,7 +20,7 @@ import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIItemSlotGetterStorage; import projectzombie.model.Model; import projectzombie.model.ModelGui; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public abstract class MenuInventory extends Menu { diff --git a/src/projectzombie/menu/MenuInventoryBasic.java b/src/projectzombie/menu/MenuInventoryBasic.java index f4c45ef..5af6ab3 100644 --- a/src/projectzombie/menu/MenuInventoryBasic.java +++ b/src/projectzombie/menu/MenuInventoryBasic.java @@ -13,7 +13,7 @@ import projectzombie.menu.gui.GUIContainerSlider; import projectzombie.menu.gui.GUIItemSlot; import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIRecipeCard; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class MenuInventoryBasic extends MenuInventory { diff --git a/src/projectzombie/menu/MenuInventoryStorage.java b/src/projectzombie/menu/MenuInventoryStorage.java index 8017b00..e8549cf 100644 --- a/src/projectzombie/menu/MenuInventoryStorage.java +++ b/src/projectzombie/menu/MenuInventoryStorage.java @@ -13,7 +13,7 @@ import projectzombie.menu.gui.GUIContainerSlider; import projectzombie.menu.gui.GUIItemSlot; import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIRecipeCard; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class MenuInventoryStorage extends MenuInventory { diff --git a/src/projectzombie/menu/gui/GUIItemHolder.java b/src/projectzombie/menu/gui/GUIItemHolder.java index f7bfd04..1ad67dc 100644 --- a/src/projectzombie/menu/gui/GUIItemHolder.java +++ b/src/projectzombie/menu/gui/GUIItemHolder.java @@ -11,7 +11,7 @@ import projectzombie.entity.EntityItem; import projectzombie.init.Models; import projectzombie.model.Model; import projectzombie.text.Text; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; import projectzombie.world.layer.Layer; public class GUIItemHolder implements GUIComponent diff --git a/src/projectzombie/menu/gui/GUIItemSlot.java b/src/projectzombie/menu/gui/GUIItemSlot.java index 6651a07..eb7b168 100644 --- a/src/projectzombie/menu/gui/GUIItemSlot.java +++ b/src/projectzombie/menu/gui/GUIItemSlot.java @@ -11,7 +11,7 @@ import projectzombie.init.Models; import projectzombie.model.Model; import projectzombie.model.ModelItem; import projectzombie.text.Text; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class GUIItemSlot implements GUIComponent { diff --git a/src/projectzombie/menu/gui/GUIItemSlotGetter.java b/src/projectzombie/menu/gui/GUIItemSlotGetter.java index be40de6..8c92d1b 100644 --- a/src/projectzombie/menu/gui/GUIItemSlotGetter.java +++ b/src/projectzombie/menu/gui/GUIItemSlotGetter.java @@ -1,6 +1,6 @@ package projectzombie.menu.gui; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public interface GUIItemSlotGetter { public boolean isAllowed(ItemStack stack); diff --git a/src/projectzombie/menu/gui/GUIItemSlotGetterStorage.java b/src/projectzombie/menu/gui/GUIItemSlotGetterStorage.java index ce54b89..7b49c4c 100644 --- a/src/projectzombie/menu/gui/GUIItemSlotGetterStorage.java +++ b/src/projectzombie/menu/gui/GUIItemSlotGetterStorage.java @@ -1,7 +1,7 @@ package projectzombie.menu.gui; import projectzombie.inventory.IInventory; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class GUIItemSlotGetterStorage implements GUIItemSlotGetter { diff --git a/src/projectzombie/menu/gui/GUIItemSlotReadonly.java b/src/projectzombie/menu/gui/GUIItemSlotReadonly.java index e177e8a..b238d7b 100644 --- a/src/projectzombie/menu/gui/GUIItemSlotReadonly.java +++ b/src/projectzombie/menu/gui/GUIItemSlotReadonly.java @@ -1,6 +1,6 @@ package projectzombie.menu.gui; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class GUIItemSlotReadonly extends GUIItemSlot { diff --git a/src/projectzombie/menu/gui/GUIRecipeCard.java b/src/projectzombie/menu/gui/GUIRecipeCard.java index 677d109..682fe41 100644 --- a/src/projectzombie/menu/gui/GUIRecipeCard.java +++ b/src/projectzombie/menu/gui/GUIRecipeCard.java @@ -7,7 +7,7 @@ import projectzombie.inventory.Crafting; import projectzombie.inventory.Inventory; import projectzombie.inventory.recipe.Recipe; import projectzombie.model.ModelGui; -import projectzombie.util.math.ItemStack; +import projectzombie.util.ItemStack; public class GUIRecipeCard implements GUIContainer { diff --git a/src/projectzombie/task/TaskLadderDown.java b/src/projectzombie/task/TaskLadderDown.java index aa891ac..764bb56 100644 --- a/src/projectzombie/task/TaskLadderDown.java +++ b/src/projectzombie/task/TaskLadderDown.java @@ -7,7 +7,7 @@ import gl_engine.vec.Vec3d; import projectzombie.Main; import projectzombie.entity.Entity; import projectzombie.entity.player.EntityPlayer; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/tiles/Tile.java b/src/projectzombie/tiles/Tile.java index 430bddb..d8023c9 100755 --- a/src/projectzombie/tiles/Tile.java +++ b/src/projectzombie/tiles/Tile.java @@ -4,8 +4,8 @@ import gl_engine.vec.Vec2i; import projectzombie.entity.Entity; import projectzombie.items.ItemTool; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -29,7 +29,8 @@ public abstract class Tile return new TileState(this, 0); } - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + return false; } public ItemStack[] getTileDrops(TileState state) { diff --git a/src/projectzombie/tiles/TileBlastFurnace.java b/src/projectzombie/tiles/TileBlastFurnace.java index 0d042bc..788a76f 100644 --- a/src/projectzombie/tiles/TileBlastFurnace.java +++ b/src/projectzombie/tiles/TileBlastFurnace.java @@ -13,8 +13,8 @@ import projectzombie.inventory.Inventory; import projectzombie.items.ItemTool; import projectzombie.items.ItemToolType; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -39,7 +39,7 @@ public class TileBlastFurnace extends Tile } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); TileEntityBlastFurnace te = (TileEntityBlastFurnace)layer.getTileEntity(tpos); @@ -50,6 +50,8 @@ public class TileBlastFurnace extends Tile } te.onOpened(); + + return true; } @Override diff --git a/src/projectzombie/tiles/TileBossPortal.java b/src/projectzombie/tiles/TileBossPortal.java index 5971ae2..2eccba8 100755 --- a/src/projectzombie/tiles/TileBossPortal.java +++ b/src/projectzombie/tiles/TileBossPortal.java @@ -13,7 +13,7 @@ import projectzombie.entity.player.EntityPlayer; import projectzombie.init.LayerGenerators; import projectzombie.init.Models; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.layer.Layer; import projectzombie.world.layer.layergen.LayerGenBossArena; @@ -36,7 +36,7 @@ public class TileBossPortal extends Tile } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); if(entity instanceof EntityPlayer) @@ -91,6 +91,8 @@ public class TileBossPortal extends Tile } }); } + + return true; } @Override diff --git a/src/projectzombie/tiles/TileCactus.java b/src/projectzombie/tiles/TileCactus.java index 7fd775c..a2791d3 100644 --- a/src/projectzombie/tiles/TileCactus.java +++ b/src/projectzombie/tiles/TileCactus.java @@ -4,7 +4,7 @@ import java.util.Random; import projectzombie.init.Models; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; public class TileCactus extends Tile implements TileBulletBreakable { diff --git a/src/projectzombie/tiles/TileCampfire.java b/src/projectzombie/tiles/TileCampfire.java index 1c0852d..a26f382 100644 --- a/src/projectzombie/tiles/TileCampfire.java +++ b/src/projectzombie/tiles/TileCampfire.java @@ -4,6 +4,7 @@ import gl_engine.MathHelpers; import gl_engine.vec.Vec2i; import gl_engine.vec.Vec3d; import projectzombie.entity.Entity; +import projectzombie.entity.particle.ParticleSmoke; import projectzombie.entity.tileentity.TileEntityCampfire; import projectzombie.init.Models; import projectzombie.init.Tiles; @@ -11,8 +12,8 @@ import projectzombie.inventory.Inventory; import projectzombie.items.ItemTool; import projectzombie.items.ItemToolType; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -33,11 +34,21 @@ public class TileCampfire extends Tile @Override public Model getModel(byte meta) { - return Models.TILE_CAMPFIRE; + return meta == 0 ? Models.TILE_CAMPFIRE_UNLIT : Models.TILE_CAMPFIRE_LIT; } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public void tickRandomly(Layer layer, Chunk chunk, TileState state, Vec2i pos) + { + super.tickRandomly(layer, chunk, state, pos); + + if(state.meta != 0) { + chunk.spawnEntity(new ParticleSmoke(new Vec3d(pos.x + 0.5, 0, pos.y + 0.5), new Vec3d(0, 0, 0))); + } + } + + @Override + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); TileEntityCampfire te = (TileEntityCampfire)layer.getTileEntity(tpos); @@ -48,6 +59,8 @@ public class TileCampfire extends Tile } te.onOpened(); + + return true; } @Override diff --git a/src/projectzombie/tiles/TileChest.java b/src/projectzombie/tiles/TileChest.java index 0c3e673..78294fe 100755 --- a/src/projectzombie/tiles/TileChest.java +++ b/src/projectzombie/tiles/TileChest.java @@ -11,8 +11,8 @@ import projectzombie.init.Items; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.util.math.random.RandomHelpers; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -34,7 +34,7 @@ public class TileChest extends Tile implements TileBulletBreakable } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); Chunk chunk = layer.getChunk(tpos); @@ -79,6 +79,8 @@ public class TileChest extends Tile implements TileBulletBreakable } layer.breakFrontTile(tpos); + + return true; } @Override diff --git a/src/projectzombie/tiles/TileClayPot.java b/src/projectzombie/tiles/TileClayPot.java index 314c628..cd82530 100644 --- a/src/projectzombie/tiles/TileClayPot.java +++ b/src/projectzombie/tiles/TileClayPot.java @@ -14,8 +14,8 @@ import projectzombie.items.ItemToolType; import projectzombie.items.modifier.ItemModifierFluidStorage; import projectzombie.items.modifier.ItemModifierWater; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -51,7 +51,7 @@ public class TileClayPot extends Tile } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); TileEntityClayPot te = (TileEntityClayPot)layer.getTileEntity(tpos); @@ -64,7 +64,7 @@ public class TileClayPot extends Tile double volume = te.getVolume(); if(volume <= 0) { - return; + return true; } if(entity instanceof EntityPlayer) @@ -86,6 +86,8 @@ public class TileClayPot extends Tile te.setVolume(volume); } } + + return true; } @Override diff --git a/src/projectzombie/tiles/TileCoal.java b/src/projectzombie/tiles/TileCoal.java new file mode 100644 index 0000000..d623597 --- /dev/null +++ b/src/projectzombie/tiles/TileCoal.java @@ -0,0 +1,34 @@ +package projectzombie.tiles; + +import projectzombie.init.Models; +import projectzombie.items.ItemTool; +import projectzombie.items.ItemToolType; +import projectzombie.model.Model; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; + +public class TileCoal extends Tile +{ + public TileCoal() + { + this.tileSolid = true; + this.tileHitbox = 0.4; + this.hardness = 500; + } + + @Override + public boolean canTileBreak(TileState state, ItemStack stack, ItemTool tool) { + return tool != null && tool.toolType(stack) == ItemToolType.PICK; + } + + @Override + public boolean canTileSpeedBreak(TileState state, ItemStack stack, ItemTool tool) { + return canTileBreak(state, stack, tool); + } + + @Override + public Model getModel(byte meta) { + return Models.TILE_ROCK_COAL; + } + +} diff --git a/src/projectzombie/tiles/TileGrass.java b/src/projectzombie/tiles/TileGrass.java index 2e12daf..ddcae5d 100755 --- a/src/projectzombie/tiles/TileGrass.java +++ b/src/projectzombie/tiles/TileGrass.java @@ -4,7 +4,7 @@ import gl_engine.vec.Vec2i; import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/tiles/TileGrassInfested.java b/src/projectzombie/tiles/TileGrassInfested.java index 63af1cb..4cc51ad 100644 --- a/src/projectzombie/tiles/TileGrassInfested.java +++ b/src/projectzombie/tiles/TileGrassInfested.java @@ -4,7 +4,7 @@ import gl_engine.vec.Vec2i; import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/tiles/TileHemp.java b/src/projectzombie/tiles/TileHemp.java index de17354..2a4673e 100644 --- a/src/projectzombie/tiles/TileHemp.java +++ b/src/projectzombie/tiles/TileHemp.java @@ -9,8 +9,8 @@ import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.items.ItemTool; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -42,7 +42,7 @@ public class TileHemp extends Tile } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); if(state.meta > 3) @@ -57,7 +57,11 @@ public class TileHemp extends Tile Items.PLANT_FIBRE, fibre))); layer.setFrontTile(new TileState(Tiles.HEMP, (byte)3), tpos); + + return true; } + + return false; } @Override diff --git a/src/projectzombie/tiles/TileIce.java b/src/projectzombie/tiles/TileIce.java index 1fd7124..d320285 100644 --- a/src/projectzombie/tiles/TileIce.java +++ b/src/projectzombie/tiles/TileIce.java @@ -2,7 +2,7 @@ package projectzombie.tiles; import projectzombie.init.Models; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; public class TileIce extends TileStone { diff --git a/src/projectzombie/tiles/TileLadder.java b/src/projectzombie/tiles/TileLadder.java index 2edc093..9eaf89a 100755 --- a/src/projectzombie/tiles/TileLadder.java +++ b/src/projectzombie/tiles/TileLadder.java @@ -3,7 +3,7 @@ package projectzombie.tiles; import gl_engine.vec.Vec2i; import projectzombie.init.Models; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; public class TileLadder extends Tile { diff --git a/src/projectzombie/tiles/TileLadderUp.java b/src/projectzombie/tiles/TileLadderUp.java index 44e7f24..8bbd426 100755 --- a/src/projectzombie/tiles/TileLadderUp.java +++ b/src/projectzombie/tiles/TileLadderUp.java @@ -7,7 +7,7 @@ import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.model.Model; import projectzombie.task.TaskLadderUp; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.layer.Layer; public class TileLadderUp extends Tile @@ -20,7 +20,7 @@ public class TileLadderUp extends Tile } @Override - public void onActivated(Layer layer, Vec2i pos, Entity entity, TileState state) + public boolean onActivated(Layer layer, Vec2i pos, Entity entity, TileState state) { // Call super super.onActivated(layer, pos, entity, state); @@ -30,10 +30,12 @@ public class TileLadderUp extends Tile { // Cast to player EntityPlayer player = (EntityPlayer)entity; - if(player.in_animation) return; + if(player.in_animation) return true; player.addTask(new TaskLadderUp(player, state.meta)); } + + return true; } @Override diff --git a/src/projectzombie/tiles/TileLantern.java b/src/projectzombie/tiles/TileLantern.java index 224bd1f..0e662bd 100755 --- a/src/projectzombie/tiles/TileLantern.java +++ b/src/projectzombie/tiles/TileLantern.java @@ -8,8 +8,8 @@ import projectzombie.init.Items; import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.layer.Layer; public class TileLantern extends Tile @@ -26,12 +26,14 @@ public class TileLantern extends Tile } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); layer.setFrontTile(Tiles.VOID.getDefaultState(), tpos); layer.spawnEntity(new EntityItem(tpos.toDouble().xny(), new Vec3d(0, 0, 0), new ItemStack(Items.LANTERN, 1))); + + return true; } @Override diff --git a/src/projectzombie/tiles/TileLava.java b/src/projectzombie/tiles/TileLava.java index a9c7fe5..35e24af 100755 --- a/src/projectzombie/tiles/TileLava.java +++ b/src/projectzombie/tiles/TileLava.java @@ -9,7 +9,7 @@ import projectzombie.entity.EntityAlive; import projectzombie.entity.particle.ParticleLava; import projectzombie.init.Models; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/tiles/TileLavaFlow.java b/src/projectzombie/tiles/TileLavaFlow.java index d5ee883..fd31bf8 100755 --- a/src/projectzombie/tiles/TileLavaFlow.java +++ b/src/projectzombie/tiles/TileLavaFlow.java @@ -7,7 +7,7 @@ import gl_engine.vec.Vec3d; import projectzombie.entity.particle.ParticleSmoke; import projectzombie.init.Models; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.util.math.random.RandomHelpers; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/tiles/TileOre.java b/src/projectzombie/tiles/TileOre.java index a4de408..e708b1b 100644 --- a/src/projectzombie/tiles/TileOre.java +++ b/src/projectzombie/tiles/TileOre.java @@ -1,19 +1,60 @@ package projectzombie.tiles; +import projectzombie.init.Items; import projectzombie.init.Models; +import projectzombie.items.ItemTool; +import projectzombie.items.ItemToolType; +import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.Model; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; public class TileOre extends Tile { + public TileOre() + { + this.tileSolid = true; + this.tileHitbox = 0.4; + this.hardness = 500; + } + @Override + public boolean canTileBreak(TileState state, ItemStack stack, ItemTool tool) + { + if(tool == null || tool.toolType(stack) != ItemToolType.PICK) { + return false; + } + + switch(state.meta) + { + case 0: return tool.toolPower(stack) > 0; + case 1: return tool.toolPower(stack) > 1; + case 2: return tool.toolPower(stack) > 1; + case 3: return tool.toolPower(stack) > 1; + case 4: return tool.toolPower(stack) > 1; + default: return false; + } + } + + @Override + public boolean canTileSpeedBreak(TileState state, ItemStack stack, ItemTool tool) { + return canTileBreak(state, stack, tool); + } + + @Override + public ItemStack[] getTileDrops(TileState state) { + return new ItemStack[] {new ItemStack(Items.ORE, 1, new ItemModifierMeta(state.meta))}; + } + @Override public Model getModel(byte meta) { switch(meta) { - case 0: return Models.TILE_ORE_IRON; - case 1: return Models.TILE_ORE_COPPER; - case 2: return Models.TILE_ORE_TIN; - case 3: return Models.TILE_ORE_GOLD; + case 0: return Models.TILE_ROCK_IRON; + case 1: return Models.TILE_ROCK_COPPER; + case 2: return Models.TILE_ROCK_TIN; + case 3: return Models.TILE_ROCK_GOLD; + case 4: return Models.TILE_ROCK_URANIUM; default: return Models.TILE_MISSING; } } diff --git a/src/projectzombie/tiles/TilePortalDown.java b/src/projectzombie/tiles/TilePortalDown.java index 4cb6115..7e1c51c 100755 --- a/src/projectzombie/tiles/TilePortalDown.java +++ b/src/projectzombie/tiles/TilePortalDown.java @@ -7,7 +7,7 @@ import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.model.Model; import projectzombie.task.TaskLadderDown; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.layer.Layer; public class TilePortalDown extends Tile @@ -19,7 +19,7 @@ public class TilePortalDown extends Tile } @Override - public void onActivated(Layer layer, Vec2i pos, Entity entity, TileState state) + public boolean onActivated(Layer layer, Vec2i pos, Entity entity, TileState state) { // Call super super.onActivated(layer, pos, entity, state); @@ -29,10 +29,12 @@ public class TilePortalDown extends Tile { // Cast to player EntityPlayer player = (EntityPlayer)entity; - if(player.in_animation) return; + if(player.in_animation) return true; player.addTask(new TaskLadderDown(player, state.meta)); } + + return true; } @Override diff --git a/src/projectzombie/tiles/TileRock.java b/src/projectzombie/tiles/TileRock.java index a282c63..d6ce662 100755 --- a/src/projectzombie/tiles/TileRock.java +++ b/src/projectzombie/tiles/TileRock.java @@ -5,14 +5,14 @@ import projectzombie.init.Models; import projectzombie.items.ItemTool; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; public class TileRock extends Tile implements TileBulletBreakable { - public TileRock() { - + public TileRock() + { // Set some settings this.tileSolid = true; this.tileHitbox = 0.4; diff --git a/src/projectzombie/tiles/TileSapling.java b/src/projectzombie/tiles/TileSapling.java index ffd5c4d..cdda9ae 100644 --- a/src/projectzombie/tiles/TileSapling.java +++ b/src/projectzombie/tiles/TileSapling.java @@ -4,7 +4,7 @@ import gl_engine.vec.Vec2i; import projectzombie.init.Models; import projectzombie.init.Tiles; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; diff --git a/src/projectzombie/tiles/TileTallGrass.java b/src/projectzombie/tiles/TileTallGrass.java index 9e8b272..79c4f06 100644 --- a/src/projectzombie/tiles/TileTallGrass.java +++ b/src/projectzombie/tiles/TileTallGrass.java @@ -4,8 +4,8 @@ import projectzombie.init.Items; import projectzombie.init.Models; import projectzombie.items.ItemTool; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; public class TileTallGrass extends Tile { diff --git a/src/projectzombie/tiles/TileTree.java b/src/projectzombie/tiles/TileTree.java index 1718e39..ba844b4 100755 --- a/src/projectzombie/tiles/TileTree.java +++ b/src/projectzombie/tiles/TileTree.java @@ -6,8 +6,8 @@ import projectzombie.items.ItemTool; import projectzombie.items.ItemToolType; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; public class TileTree extends Tile implements TileBulletBreakable { diff --git a/src/projectzombie/tiles/TileWall.java b/src/projectzombie/tiles/TileWall.java index 8c494eb..5ce13a6 100755 --- a/src/projectzombie/tiles/TileWall.java +++ b/src/projectzombie/tiles/TileWall.java @@ -2,7 +2,7 @@ package projectzombie.tiles; import projectzombie.init.Models; import projectzombie.model.Model; -import projectzombie.util.math.TileState; +import projectzombie.util.TileState; public class TileWall extends Tile { diff --git a/src/projectzombie/tiles/TileWater.java b/src/projectzombie/tiles/TileWater.java index fd1e20a..529f582 100755 --- a/src/projectzombie/tiles/TileWater.java +++ b/src/projectzombie/tiles/TileWater.java @@ -10,8 +10,8 @@ import projectzombie.items.ItemTool; import projectzombie.items.ItemToolType; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.chunk.Chunk; import projectzombie.world.layer.Layer; @@ -36,12 +36,14 @@ public class TileWater extends Tile } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); if(entity instanceof EntityPlayer) { ((EntityPlayer) entity).rehydrate(); } + + return true; } @Override diff --git a/src/projectzombie/tiles/TileWorkbench.java b/src/projectzombie/tiles/TileWorkbench.java index 30f5d26..d5b99a3 100644 --- a/src/projectzombie/tiles/TileWorkbench.java +++ b/src/projectzombie/tiles/TileWorkbench.java @@ -9,8 +9,8 @@ import projectzombie.items.ItemTool; import projectzombie.items.ItemToolType; import projectzombie.menu.MenuInventoryBasic; import projectzombie.model.Model; -import projectzombie.util.math.ItemStack; -import projectzombie.util.math.TileState; +import projectzombie.util.ItemStack; +import projectzombie.util.TileState; import projectzombie.world.layer.Layer; public class TileWorkbench extends Tile @@ -37,10 +37,12 @@ public class TileWorkbench extends Tile } @Override - public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { + public boolean onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) { super.onActivated(layer, tpos, entity, state); Main.menu = new MenuInventoryBasic(Main.menu, Crafting.WOODEN_WORKBENCH); + + return true; } } diff --git a/src/projectzombie/util/math/ColorRange.java b/src/projectzombie/util/ColorRange.java similarity index 92% rename from src/projectzombie/util/math/ColorRange.java rename to src/projectzombie/util/ColorRange.java index 34def8b..2d462ea 100755 --- a/src/projectzombie/util/math/ColorRange.java +++ b/src/projectzombie/util/ColorRange.java @@ -1,4 +1,4 @@ -package projectzombie.util.math; +package projectzombie.util; import gl_engine.MathHelpers; import gl_engine.vec.Vec3d; diff --git a/src/projectzombie/util/math/ItemStack.java b/src/projectzombie/util/ItemStack.java similarity index 85% rename from src/projectzombie/util/math/ItemStack.java rename to src/projectzombie/util/ItemStack.java index 6926c24..f286051 100755 --- a/src/projectzombie/util/math/ItemStack.java +++ b/src/projectzombie/util/ItemStack.java @@ -1,6 +1,7 @@ -package projectzombie.util.math; +package projectzombie.util; + +import java.util.ArrayList; -import projectzombie.util.ClassBdf; import bdf.types.BdfArray; import bdf.types.BdfNamedList; import bdf.types.BdfObject; @@ -120,11 +121,18 @@ public class ItemStack implements ClassBdf count = nl.get("count").getInteger(); item = Items.items.get(nl.get("item").getInteger()); - BdfArray modifiers = nl.get("modifiers").getArray(); + BdfArray modifiers_bdf = nl.get("modifiers").getArray(); + ArrayList modifiers = new ArrayList(); + + for(int i=0;i pool_size) + if(pool_particle_count >= pool_size) { changed = true; - while(pool_particle_count > pool_size) { + while(pool_particle_count >= pool_size) { pool_size *= 2; } } diff --git a/src/projectzombie/world/chunk/Chunk.java b/src/projectzombie/world/chunk/Chunk.java index 2ae7e82..9c7db1c 100755 --- a/src/projectzombie/world/chunk/Chunk.java +++ b/src/projectzombie/world/chunk/Chunk.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Random; import projectzombie.util.ClassBdf; +import projectzombie.util.TileState; import bdf.types.BdfArray; import bdf.types.BdfNamedList; import bdf.types.BdfObject; @@ -30,7 +31,6 @@ import projectzombie.model.IModel; import projectzombie.model.Model; import projectzombie.model.ModelChunk; import projectzombie.tiles.Tile; -import projectzombie.util.math.TileState; import projectzombie.util.math.random.RandomHelpers; import projectzombie.world.layer.Layer; @@ -102,6 +102,13 @@ public class Chunk implements ClassBdf byte[] a_t = nl.get("temperature").getByteArray(); byte[] a_h = nl.get("humidity").getByteArray(); + if( + tb.length != CHUNK_INDEX || tf.length != CHUNK_INDEX || + mb.length != CHUNK_INDEX || mf.length != CHUNK_INDEX || + a_t.length != CHUNK_INDEX || a_h.length != CHUNK_INDEX) { + return; + } + for(int i=0;i 0.45; } - if(noise_n > noise_w || cavern) { + if(noise_n > noise_w || cavern) + { chunk.setBackTile(floor.getDefaultState(), pos); + + if((floor == Tiles.STONE || floor == Tiles.SANDSTONE) && rand.nextDouble() > 0.99) { + chunk.setFrontTile(ores[(int)(rand.nextDouble() * ores.length)], pos); + } } else { diff --git a/src/projectzombie/world/layer/layergen/LayerGenEarth.java b/src/projectzombie/world/layer/layergen/LayerGenEarth.java index 673e89a..8da7c40 100755 --- a/src/projectzombie/world/layer/layergen/LayerGenEarth.java +++ b/src/projectzombie/world/layer/layergen/LayerGenEarth.java @@ -11,8 +11,8 @@ import projectzombie.entity.Entity; import projectzombie.entity.EntityZombie; import projectzombie.init.Tiles; import projectzombie.time.GameTimer; -import projectzombie.util.math.ColorRange; -import projectzombie.util.math.TileState; +import projectzombie.util.ColorRange; +import projectzombie.util.TileState; import projectzombie.util.math.random.NoiseGenerator; import projectzombie.util.math.random.NoiseGeneratorSimplex; import projectzombie.util.math.random.RandomHelpers; @@ -70,7 +70,6 @@ public class LayerGenEarth extends LayerGen new NoiseGeneratorSimplex(lrand), // Wind new NoiseGeneratorSimplex(lrand), // Wind new NoiseGeneratorSimplex(lrand, 4), // Water - new NoiseGeneratorSimplex(lrand, 2), // Rocks }; } @@ -91,9 +90,9 @@ public class LayerGenEarth extends LayerGen Vec2d pos = new Vec2d(c_pos.x * 16 + x, c_pos.y * 16 + y); Vec2i tpos = pos.toInt(); - double rocks = layer.noise_gens[5].eval(pos.x / 16.0, pos.y / 16.0); double temperature = getTemperatureStatic(layer, pos); double humidity = getHumidity(layer, pos); + boolean rockIsOre = rand.nextDouble() > 0.95; chunk.setTemperature(tpos, temperature); chunk.setHumidity(tpos, humidity); @@ -122,12 +121,7 @@ public class LayerGenEarth extends LayerGen chunk.setBackTile(Tiles.SAND.getDefaultState(), tpos); rock_type = (byte)2; - if(rocks > 0.8) { - chunk.setBackTile(Tiles.SANDSTONE_WALL.getDefaultState(), tpos); - placed_stone = true; - } - - else if(rand.nextDouble() > MathHelpers.map(humidity, 0, 0.5, 0.98, 0.95)) { + if(rand.nextDouble() > MathHelpers.map(humidity, 0, 0.5, 0.98, 0.95)) { chunk.setFrontTile(Tiles.CACTUS.getDefaultState(), tpos); } } @@ -136,12 +130,7 @@ public class LayerGenEarth extends LayerGen { chunk.setBackTile(Tiles.GRASS.getDefaultState(), tpos); - if(rocks > 0.8) { - chunk.setBackTile(Tiles.WALL.getDefaultState(), tpos); - placed_stone = true; - } - - else if(rand.nextDouble() > MathHelpers.map(humidity, 0, 1, 0.99, 0.9)) { + if(rand.nextDouble() > MathHelpers.map(humidity, 0, 1, 0.99, 0.9)) { chunk.setFrontTile(Tiles.TREE.getDefaultState(), tpos); } @@ -160,8 +149,17 @@ public class LayerGenEarth extends LayerGen } } - if(!placed_stone && rand.nextDouble() > 0.98) { - chunk.setFrontTile(new TileState(Tiles.ROCK, rock_type), tpos); + if(!placed_stone && rand.nextDouble() > 0.98) + { + if((rock_type == 0 || rock_type == 2) && rockIsOre) + { + // Set coal ore + chunk.setFrontTile(Tiles.COAL.getDefaultState(), tpos); + } + + else { + chunk.setFrontTile(new TileState(Tiles.ROCK, rock_type), tpos); + } } } } diff --git a/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java b/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java index b1bec15..f6e9d32 100755 --- a/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java +++ b/src/projectzombie/world/layer/layergen/LayerGenLavaCaves.java @@ -10,8 +10,8 @@ import projectzombie.Main; import projectzombie.entity.Entity; import projectzombie.entity.EntityZombieArmored; import projectzombie.init.Tiles; -import projectzombie.util.math.ColorRange; -import projectzombie.util.math.TileState; +import projectzombie.util.ColorRange; +import projectzombie.util.TileState; import projectzombie.util.math.random.NoiseGenerator; import projectzombie.util.math.random.NoiseGeneratorSimplex; import projectzombie.util.math.random.RandomHelpers; diff --git a/src/resources/texture/item/coal.png b/src/resources/texture/item/coal.png new file mode 100644 index 0000000000000000000000000000000000000000..7d02e1f903411b73c0efae43d1973c6a18f81424 GIT binary patch literal 2156 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s-=2nG7lmsP~D-;yvr)B1( zDwI?fq$;FVWTr7NRNPt{9=++Y2G8H?T4|gf3M{7|Ca$Vt-~30=On_azcK2$vkQ~Wo zx#u2AjgRlg^ZvWYFZu03L{tAg>AyQ(D5;7z?X>&2XHntvQkxl?d(IxNa$z&i5wQ z*piY7FXpb8VEepDv@0a%`N^-1y)HLbn`umMCasSRXT=Qz@@QsLA8Gpq%{O*f0UstaSa@xRq?*~gopX2_WPy3gxGCHAt#*x`a zEnds$vG(>iCpTX$UGsglmcSA|R<4P+(n{Sf-&^=GiuuJwj)@9deU6-7uPh_oBPAWu zR=rZO%(iU|SdbU}onu~h=gHvt*X~_eeWFVHRPVLvlb*_C|LfqM<=m-jo%T&fra@Uf zfA8lvd&Te1juF!Ki`dh_(mAP#SFhlMqZ5bW5|4{n{7+siJ|d9p)2Xm>;gVgG*7;ja z*1Y}3D1E+ayG*gxEW4wkdiy*$Ri}llytOKK(Jw92D-o9)3o@2l+&S28|AfQcCg^fZ z_O_kJ&YEW~JUUG*yZP$zAKcdpHn^z=*Ur_sRwCxIjO)$Y7VGp=5|$yymKrbM^qp%g ze8KY7nbLDUD!N>1rIW1912!5j6WPVwDXsS|?#y4o`~wgBD;Ce6(d>8k|3MjzQvZ8) z8^V5DhWi~`r}bur)at9(4OF-${Av`FU3~fSxu=>R1a|0KT|X24ttM>irTM=ZOTMJ< zc)c-m&Bw1%i$Cx)K3``gGTG6oBE#i^u?_~0KoenuW`JzEAk2uGMC9@x-cNnD$<(I7QnQ`xMcUkTQ z>(ie)G|nfSo>p7XoWXT1pY!LTRkgYjZ{06T*cX^oANpZ?b^2Kb{)R(~9n#chxvOmr z-*`AI?u+Whv;LKQ<_a$-W>+qL=4`ihq2#_IbRp&q7PS<_Xt5 zKGXg6y>PL2qphJu{mN7KIJRlLFaPl+$u<95!I`|&#)bb~w;fCVmgTVf`PY8ATJxUW z%&YzP+IUr;yxjNV)wD0Ot?!i9oSnYwd>*>zWhNf~w5-maVS-{o4J=TET0_Gk+)P zyxGqkrf%^0P5igQeuMRTG2iF29xu|kUAfNla=g9ZKjx&uy|AkJq;LF%C5oPf zg(5NBe0E~1`Si~1vf9Db^nm%u$%~#BUA=6~HMewpJn*#c&-Xv}-{*1vc%8azmTYpv zsz^62L2;v-p^87c@>(7q=2)hZ_NsW%jF$A;yTR&LV|&sozyFQg>vb-r!Czrs>aIk= zd;$ObD68kSk2tiwxIS8bT;V9LQuk!nn@`fun-15_lQg`vvhoqf#(<3EoxPD413J|^ z7k8}++-LuI)1k`l%~9(%J+uAE?QEHwI`j1wwuuLnrYSfz^k{i$9Cqp{>lG2!wCb<^ z!7j7kLvLn`szH&?0w&Q(kJ-`{NdS@>~YkOp7Lz8l|;3kcj{l`_5k&u-h>W1IpN zZ0oj6+aJW9X6Lzn>y{US0{7VT)1pwGa-xX;tY zF~s6@?c}?D%7#3x_UiNG1(>H+u?DH$``=i>o#(LlrOL*=;&-QPdb4iniM~h4KX0gi z`tzq}rXdgW*05)l$L<;$2YD@-vToz<#jCDF6_zi{RO;kd)irbBDi;=pwWcmC<>@l+ zN=(L!uX&xDnHnh|Sj4|;=@bFMAg?Xg3^r%Cf3`_ZW5~Jf=Ed2|@hdQNS*BCy;_~FQ zE!Q&EZhXJ{%b`_Xnope)XQ>@4d}ER{OHEErE+90|*X7U|3mLwWSDH#1OE=_7pWbxD zqOa%iiGA;<1QmR@@7}OZ`(52a1*I91#~&NEB`Q2WvumBp5q^V)nXC$e7gxqq?6%%| z?RD3`^rcfI+8kY4p1jMs&DOBHp80#Ve9~G`SUtaH*Y<2VMobx$+_NoFnMM{f391_lNOPgg&ebxsLQ0I{MDfdBvi literal 0 HcmV?d00001 diff --git a/src/resources/texture/item/rock_iron.png b/src/resources/texture/item/rock_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..2efb2f73bc89012baf0be1ee97a9dc5fad1c5ada GIT binary patch literal 2722 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/list.txt b/src/resources/texture/list.txt index 679911f..16da499 100644 --- a/src/resources/texture/list.txt +++ b/src/resources/texture/list.txt @@ -1,4 +1,5 @@ ./tile/hemp6.png +./tile/rock_gold.png ./tile/hemp7.png ./tile/hemp1.png ./tile/rock.png @@ -10,6 +11,7 @@ ./tile/water.png ./tile/sandstone_wall.png ./tile/ladder_up.png +./tile/rock_copper.png ./tile/cactus4.png ./tile/tall_grass.png ./tile/cactus2.png @@ -17,6 +19,7 @@ ./tile/tree_branch_leaves.png ./tile/dirt.png ./tile/wall.png +./tile/rock_tin.png ./tile/tree_base.png ./tile/cactus1.png ./tile/sapling4.png @@ -26,12 +29,15 @@ ./tile/stone.png ./tile/snow.png ./tile/boss_portal.png +./tile/rock_coal.png ./tile/hemp4.png ./tile/sand.png -./tile/campfire.png +./tile/rock_iron.png ./tile/lantern.png ./tile/ice.png +./tile/rock_uranium.png ./tile/sapling1.png +./tile/campfire_lit.png ./tile/grass_burnt.png ./tile/chest.png ./tile/hemp2.png @@ -40,6 +46,7 @@ ./tile/lava.png ./tile/tree_leaves.png ./tile/hemp5.png +./tile/campfire_unlit.png ./tile/lava_flow.png ./tile/grass.png ./tile/tree_branch.png @@ -50,11 +57,15 @@ ./list.txt ./item/log.png ./item/rock.png +./item/stone_shovel.png +./item/coal.png ./item/acorn.png ./item/clay.png +./item/stone_pick.png ./item/ammo_box.png ./item/plant_fibre.png ./item/torch_lit.png +./item/stone_hatchet.png ./item/flint_hatchet.png ./item/hemp_seed.png ./item/shield_upgrade.png diff --git a/src/resources/texture/tile/campfire.png b/src/resources/texture/tile/campfire.png deleted file mode 100644 index 3d82566ecb1fe96d829a29a8a504df10b97ddc9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE%s}^6GKw_Kg@88+JyT|CX_l(JEZMKYExyytK z4JXHnGOy=Y#Lmd0tY&D)RQY^^f+L z{VsZ~F{%bdIt!S1H@#;6-+cdW)X$Tg`kEr_yW(Y@CyQ{rVd|arxJKUE?=i~-#EHnGRNV`%no%Q>~~$#TsnpAY<&tPK{E*uh$Leb2pF zzb$GRE?o)z#Aac^a*S)r-g^)49{hIipY7#0@7W`_7R~KFCpDXafq^Z_+ueoXKL{?^ zyL>VO0|RG)M`SSr1Gg{;GcwGYBf-GHz+U3%>&pIwgN;{?TRw1-E&~IDWQl7;iF1B# zZfaf$gL6@8Vo7R>LV0FMhJw4NZ$Nk>pEv^p!#z(I#}JFtZzpc-I^-bG_CNM|tO2{A z$d-%joGi?aM-QcM+9b133FCn^+ZQhg$^{IZYn|NnoDng3j` z&bAA+nXgrL)?>QG<}cbVyN-BrO^j^PZvFFm)*;vVtUD%E>$aX}?VK*G@=|%pr3GE@ zb{+LLuSip3Kisic>df zGcV+8>+DaK`DA;$A34SD6TEEEvTIx{R_^f zFZjkIa@hFu<|F^k=xlv)T=&d%zEj0Z@7SN47j#7-a*x`);2j}LKb3Qa2R$;&T^M-& zPrh(%?c2ERY}Z7>zI?Pg|1>UjPra1=)O2~{?>{AeT7TG}{qo57q9r}521T_=yVq^c zsOvf#y=&k9=XIObvh&TqGf7 zo|~>am;B=uv*ta!pD$lbjfL! z)z8fCefZ6pWye@&YsdV_Gbd$9&7qhZ3A=yUx}5(f8~stmswn>1_g;_npa1RQoif9E zvxL0oK~<3{;`NyvuWTE2R95_4-7>>To!RcWL1c=DA=l1@95Zfxl>GYq-h{)oveQ(A zExkgDoHtHdGsWn~#gGF5rwy0S*_?7#_4*wZucD9{9bFf5FR$?2+_g$jceV{>{Z&fanCZ?CrPmm9(7V|RVKl%3D~qsQdagoTTHtZwlb z`@O0-btN)wZthRkDPd7Jbt8A3TD3ZN!?wqM*7-MgonE(lZ|Yh5)Zbq}@<)F5zjo;4 zl)KCGBOkAN_4l^y9)pgjJw2^YPVR_eV<_1$C-&%a5uM^`n^&`~QeqdIscU{Y{w(({ zvCE$n^Z!rV{r$|};CpkH*gw<#V^VxB=)1ge`KM=L|0ZnD-(=>y?fA(Xv8`g4weuDq z+Uv#LDlKvTrQh{9<#%%5^G@CijhrpLIzzp{x%%!--i_y{ER(C^S#fC2?P(&nGVHFr zJMn#uRvMHT@9(gcP^P6DO)$KidXYO*p zxU_W5*7O&t8|3b%UAn2(wL0e9P2YEKjCp*2X1(z?TX^G^H1|B~wd=y8ecRu!iZ&{L zA84(=>fG71)U6ZK-stI;?aaPgJIQ3?4(=!C*wi^+`>Nd#R+F&)vbL_XY3|v3kuyKo zh^x$ZFE7pdzEU^IDrxRcqe`Y%I}P$Rs^?q{ExU9%Grh9lO?Ny6)8Cb*FY!t9Tt6X z_eMzLiwzlX4YsW@u8y&to~fC2;`V{tDjmHOzMGnC(kv56t-OC&iD{be*}&3R6_quG zZ1;-Gn)PlPu36;TD|GtSoMoQ6tG~<&-e1PIXX6QZfz(Dpg?E_;?)X?7+j2%k+F3_> zb^A%)5AEe<{>qyb9|>Lgw9BY&HnnW!kDr(Kf`Luq)h+96m=$8OYUcc2aat=sM7P1ip`*Lu$py9}lMXUo*|7b< zlry27U7yOL?F|d6mr0pTbrjTVU8|AjoS^P>CU;I+%dWJ%*4f()1GS%Y>CA07 z(R8CFqnFKNhV|CAbrb7$hPS3E@>zCY-hs+(TXnzHtv z)xjvu8!|l#ZQ=nb2UH{`%bt($O?n{q(s$#rD?86`+qh8q_yxXOFE?f$xiaN*z(!@BlQkN8%?CFN9v7?1+_^xTf$^M* z{MJ;l=u*3unpX);SKB8YJ(#gr&Trlam9mWB`(F!+Oq8Dps~!n@@IYsxWSVvd-&ZT2 z$U@H*oXNY5e`LQ<$$zYLe!iR9-=$wozRhAxkd~I)bF0ZATlEHmj7!?VR}BUglSFj0 z)W;mik)FFgIn5?c}$ z|GjeEDikK5wN|{dc-*nfRXZfDZ5Na;s*ueR-(85Eu!OFCKZRgJq3#8Khx@6kcv=piF z@I5?xqUm?Ao$16@{nM7r+1a;LG-_ z@lEVKJ&amQr_OpR-n=biq3fyL3c_y|pLCz-`OAB9ztZi%le5+8r##7Lx%oF>V!q?H zIkf^QN5jcKJlXQjR+(Jh>b<7h zFm`d_l6K2oWdXi7e6O#$T`BT8mB*l~-_RjfKKnu4M>e^qr!7CV2yL*;j#0|w(|x@D z_Zc_0+pjW~h_`bySsto>U+2m_xsvtuCeBHgtv|IgK69ycPk6j_{b5%R{?*5o&b)k( zpsaI$p==rd%1?pL+S51MADwli)XZb*Aur3hZcJ(!%O|claL-Tr&fPO7GgBq97L?^I zdY|!k`rK%ZzlBHMT$r)aTxz44;b-U5PV$BiH5bf|Rrn>a`TL$_{TteZ)xLZd(42BU zYe(1r2F;h}K3(KpVYA|^-OV3trGcf#^XH_xvsAFO9I-e&NA814m#X7}(|-=@%`5BJ zw5?B4($=zN!;#sa?KOF-!XxZ0d*n~s{4;#{-m={P(p%=cRgbt7Z~bH~y0PZEtKBl$ zj0D@WZ3`GTJ^relz1x1?`9DuN7WJj@*qwcEwc>KrEw0GlF%=Faj=d!p4Nh_LyWjHg zv}9*)H+Xq^qf?fJB|FDgI|qjoPt7=Uc+YRVXxFwxE^=Q@di>yq&Hzo^5T=ULQx#=O~vsrolmS^iixNc6L z)V{MtZe`z{w>$I_`VQ^e{d9l1_T9U0jZQf%)40{J{*+UEU)#By;|_cKJg+2u{;==f zp7rv#Ha4Ug>v&b`-B?+(U3vM$q$9rlb&=o2cpiRWS`_c@%(#x{#EbJUzrB4Sq9l7( zVbQr04r^{}h&g=T{X)BYId^6H!?(RE`ei;W%lC3ldz_guy^urXQIGQ*hZU?lbtWCL znEQC9=Y!hZ)8bl-(~Xlhs9AgqaBgrBJeec6$oay~-5DFEo%B<7#sG zYxWDf>26jQv5(uP_a|W~zXESj6vq@x*@T7(Iroomh$`}FxV~nsn9q{^RZ|@t8KQq% zIb;jo_r1jRO|0|nHQCtvU(Wo$XS6$d=JL5hk3-KGhjPWA{?lvn`undH?^fGQdM?8g zP&YV0q%`fwYIqROhvP~&R7aPfy=6(pQkd{pPy?Wt8<7>*( z*Yz;_sLq=nkrFg}t=g4oFY3xf^4K>7`7Zr5>2Fq#{kJ`QyPJIee>YBHPf2_$wZr@X z%gJNG!j)_4CMM+?il(x+v3`sbx&Lda;kJD@YIA#ne=IiI&uQ%Yc==+!@4Gkm6<*G9d+3cLjr}DRLzqj4ru`+4-H&MOC7gk3-WuDBz$9ZA#fp_IXf7Wxo zsZ&4re-#o(pY_{=)fZ>XPz?PYmU&r(;g0fw_knZs9BhgtF8TdF7QOJz?f|QaC$8%| z^_16m8cvxK;5(hGO7PLoJie9eGlLU33>R%%U$C;dZN-Dn?f2y_MSQ!;A-(^++d{^r z=Q6X(_FBIP><~`&@#vkl^xl122g|jRT#IX$Ugg~uvPO2xk_gqvbce(w#t6X$$)cyl zY+je{{LkL*P_y??!;D}C2F8|5XXgMIk1HI-RqCGXdh<#8 z`J%&h^CV4;URFNR*ck98VP|vX$$-w~9m!p*0{7X!-gKz4dvnyvjn`~{aywV%rp|nA z(mvsc(liC9h90R?D-Jl#3F{RR&b;Mc@q=A-Jlw_g5s*=H6G8|Lt++wr*!#`Bk4za904qa%k|{CckMJ!ZY~ zhDP;RBNcb93tz;!4*Zs^4d#2XpY_+ZJNKe~ThuZbT?u`~W?{kN)-`4CyN~bYoxAtX z_VTOu>>e>i(+EZzkx!g~ zf$6=ci(^Q{;kVPzXA3)u9Je?2HJhcuDbk~^dGSkoT#*LXw5$attulKxJ>EL?(<02`O%&alY%_cXBSjSl|EdMyvP56vq$mgoolc4 zD1;dcUoS}J5*4=y5_>Q5DN<$nrKIR{@02~47{6J=>%aJ!_MwdFLgDPS!Yd3E+CIBD9cyFVw5$G1K6^CF%=*3W{zhIS{u&+lGw zaIyQ*F4s;eMWuxb_F+D6iX^>RF2@`+YufTsGo6= z6x0i?6lj=|S-g9}->VBwHP?uBW?S53jI&uGy>rSm?cZ}f+$Novdw6wX{98A--BV1K z1&KGx%h^ecd;yJ8ZR5?~1Idd*Ck5GRyMCY=^6_nx`#%wUl3K=7z-D z2ea9q$F2w|w|c(0W4c|$B}RLbstVY3q1Jn z;Bp0*={bH&w}=GlOrK^pll`{--|Kf z%6M-psat2w9vo|4zv)zSeqG0t>Fn!FS3KJ`&F+Is)Yp9zJPxcizaUv=_n|a?#Z$-o lELqOqTWiFAmVY^zAHWdCCbj77E(Qh$22WQ%mvv4FO#rseC%pgw literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/campfire_unlit.png b/src/resources/texture/tile/campfire_unlit.png new file mode 100644 index 0000000000000000000000000000000000000000..d71eff6cb0e719ee79ce3a32fd8190ac5a9c78f7 GIT binary patch literal 2117 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 literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/rock_gold.png b/src/resources/texture/tile/rock_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d632665c3fc66530f27fb344f1251338b10f27 GIT binary patch literal 2009 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 Z{(EVlYbSSNH3I_!gQu&X%Q~loCIG_~!H)m{ literal 0 HcmV?d00001 diff --git a/src/resources/texture/tile/rock_iron.png b/src/resources/texture/tile/rock_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..bcd594a6747095ed2bc657509438a755f2749a20 GIT binary patch literal 2009 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 QU|?YIboFyt=akR{0CLW&t^fc4 literal 0 HcmV?d00001