Sync workspace with server

This commit is contained in:
jsrobson10 2020-09-15 19:58:53 +10:00
parent ce06e1bb53
commit 1e1cc5fb5b
142 changed files with 603 additions and 208 deletions

2
.gitignore vendored
View File

@ -1,3 +1,3 @@
/bin/ /bin/
/run/
hs_err_pid* hs_err_pid*
*.bdf

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2,6 +2,7 @@ package projectzombie;
import java.awt.Toolkit; import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.Clipboard;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Random; import java.util.Random;
@ -62,6 +63,19 @@ public class Main
{ {
try 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(); Runtime runtime = Runtime.getRuntime();
int cores = runtime.availableProcessors(); int cores = runtime.availableProcessors();
@ -84,7 +98,6 @@ public class Main
MathHelpers.init(); MathHelpers.init();
Settings.init(); Settings.init();
Environment.init(args);
Cheats.init(args); Cheats.init(args);
Items.init(); Items.init();

View File

@ -15,7 +15,7 @@ import gl_engine.vec.Vec2i;
import projectzombie.Main; import projectzombie.Main;
import projectzombie.entity.Entity; import projectzombie.entity.Entity;
import projectzombie.entity.player.EntityPlayer; import projectzombie.entity.player.EntityPlayer;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.chunk.ChunkEventHandler;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -13,7 +13,7 @@ import gl_engine.matrix.Matrix4;
import projectzombie.Main; import projectzombie.Main;
import projectzombie.entity.player.EntityPlayer; import projectzombie.entity.player.EntityPlayer;
import projectzombie.settings.SettingQuality; import projectzombie.settings.SettingQuality;
import projectzombie.util.math.ColorRange; import projectzombie.util.ColorRange;
import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.chunk.ChunkEventHandler;
import projectzombie.world.layer.layergen.LayerGen; import projectzombie.world.layer.layergen.LayerGen;

View File

@ -14,8 +14,8 @@ import projectzombie.inventory.Inventory;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelGui; import projectzombie.model.ModelGui;
import projectzombie.text.Text; import projectzombie.text.Text;
import projectzombie.util.ItemStack;
import projectzombie.util.gl.GlHelpers; import projectzombie.util.gl.GlHelpers;
import projectzombie.util.math.ItemStack;
import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.chunk.ChunkEventHandler;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -5,6 +5,7 @@ import java.lang.reflect.InvocationTargetException;
import java.util.Random; import java.util.Random;
import projectzombie.util.ClassBdf; import projectzombie.util.ClassBdf;
import projectzombie.util.TileState;
import bdf.types.BdfNamedList; import bdf.types.BdfNamedList;
import bdf.types.BdfObject; import bdf.types.BdfObject;
import gl_engine.MathHelpers; import gl_engine.MathHelpers;
@ -15,7 +16,6 @@ import projectzombie.Main;
import projectzombie.init.Entities; import projectzombie.init.Entities;
import projectzombie.model.IModel; import projectzombie.model.IModel;
import projectzombie.tiles.Tile; import projectzombie.tiles.Tile;
import projectzombie.util.math.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -294,7 +294,7 @@ public abstract class Entity implements ClassBdf
isDead = true; isDead = true;
} }
public void activateTile(Vec2i tpos) public boolean activateTile(Vec2i tpos)
{ {
// Get the tile position and the layer // Get the tile position and the layer
Layer layer = Main.world.getLayer(); Layer layer = Main.world.getLayer();
@ -302,8 +302,9 @@ public abstract class Entity implements ClassBdf
TileState tile_back = layer.getBackTile(tpos); TileState tile_back = layer.getBackTile(tpos);
// Activate both tiles // Activate both tiles
tile_front.tile.onActivated(layer, tpos, this, tile_front); return (
tile_back.tile.onActivated(layer, tpos, this, tile_back); tile_front.tile.onActivated(layer, tpos, this, tile_front) ||
tile_back.tile.onActivated(layer, tpos, this, tile_back));
} }
public void activateSteppedOnTile() public void activateSteppedOnTile()

View File

@ -17,7 +17,7 @@ import projectzombie.init.Tiles;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.time.GameTimer; import projectzombie.time.GameTimer;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.random.OpenSimplexNoise; import projectzombie.util.math.random.OpenSimplexNoise;
import projectzombie.util.math.random.RandomHelpers; import projectzombie.util.math.random.RandomHelpers;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;

View File

@ -13,7 +13,7 @@ import projectzombie.init.Models;
import projectzombie.init.Sounds; import projectzombie.init.Sounds;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -5,7 +5,7 @@ import bdf.types.BdfObject;
import gl_engine.MathHelpers; import gl_engine.MathHelpers;
import gl_engine.vec.Vec3d; import gl_engine.vec.Vec3d;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -157,6 +157,11 @@ public class EntityZombie extends Entity implements EntityAlive, EntityKillWithP
} }
} }
// Despawn
if(player_distance > 128) {
kill();
}
// Increase time // Increase time
time += 0.001; time += 0.001;
} }

View File

@ -35,8 +35,8 @@ import projectzombie.settings.Cheats;
import projectzombie.task.Task; import projectzombie.task.Task;
import projectzombie.task.TaskDeathScreen; import projectzombie.task.TaskDeathScreen;
import projectzombie.tiles.TileSapling; import projectzombie.tiles.TileSapling;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -103,9 +103,6 @@ public class EntityPlayer extends Entity implements
if(hydration > 1) { if(hydration > 1) {
hydration = 1; hydration = 1;
} }
inventory.addItem(new ItemStack(Items.TORCH, 1));
inventory.addItem(new ItemStack(Items.LANTERN, 1));
} }
public int getAmmo() { public int getAmmo() {
@ -340,8 +337,8 @@ public class EntityPlayer extends Entity implements
Vec2d movement = MathHelpers.moveTowards2(1, Math.toRadians(angle)); Vec2d movement = MathHelpers.moveTowards2(1, Math.toRadians(angle));
Vec2d place_pos = getPos().xz().add(movement); Vec2d place_pos = getPos().xz().add(movement);
if(is.isEmpty() || !is.item.onPlayerRightClick(is, Main.world.getLayer(), this, place_pos)) { if(!activateTile(getPos().xz().add(movement.multiply(0.5)).toInt()) && !is.isEmpty()) {
activateTile(getPos().xz().add(movement.multiply(0.5)).toInt()); is.item.onPlayerRightClick(is, Main.world.getLayer(), this, place_pos);
} }
} }

View File

@ -15,8 +15,8 @@ import projectzombie.items.ItemSmeltable;
import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.menu.MenuInventoryStorage; import projectzombie.menu.MenuInventoryStorage;
import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIItemSlotGetter;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -14,8 +14,8 @@ import projectzombie.items.ItemSmeltable;
import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.menu.MenuInventoryStorage; import projectzombie.menu.MenuInventoryStorage;
import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIItemSlotGetter;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -2,7 +2,7 @@ package projectzombie.entity.tileentity;
import bdf.types.BdfNamedList; import bdf.types.BdfNamedList;
import bdf.types.BdfObject; import bdf.types.BdfObject;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class TileEntityClayPot extends TileEntity public class TileEntityClayPot extends TileEntity
{ {

View File

@ -8,6 +8,7 @@ import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.items.modifier.ItemModifierFluidStorage; import projectzombie.items.modifier.ItemModifierFluidStorage;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.items.modifier.ItemModifierTimer; import projectzombie.items.modifier.ItemModifierTimer;
import projectzombie.items.modifier.ItemModifierTimerPaused;
import projectzombie.items.modifier.ItemModifierWater; import projectzombie.items.modifier.ItemModifierWater;
public class ItemModifiers public class ItemModifiers
@ -33,5 +34,6 @@ public class ItemModifiers
register(ItemModifierFluidStorage.class); register(ItemModifierFluidStorage.class);
register(ItemModifierWater.class); register(ItemModifierWater.class);
register(ItemModifierTimer.class); register(ItemModifierTimer.class);
register(ItemModifierTimerPaused.class);
} }
} }

View File

@ -11,6 +11,7 @@ import projectzombie.items.ItemCampfire;
import projectzombie.items.ItemCharcoal; import projectzombie.items.ItemCharcoal;
import projectzombie.items.ItemClayPot; import projectzombie.items.ItemClayPot;
import projectzombie.items.ItemClayPotWet; import projectzombie.items.ItemClayPotWet;
import projectzombie.items.ItemCoal;
import projectzombie.items.ItemEmpty; import projectzombie.items.ItemEmpty;
import projectzombie.items.ItemFlare; import projectzombie.items.ItemFlare;
import projectzombie.items.ItemFlint; import projectzombie.items.ItemFlint;
@ -76,6 +77,7 @@ public class Items
register(CLAY_POT); register(CLAY_POT);
register(CLAY_POT_WET); register(CLAY_POT_WET);
register(TORCH); register(TORCH);
register(COAL);
} }
public static final Item AMMO = new ItemAmmo(); 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 = new ItemClayPot();
public static final Item CLAY_POT_WET = new ItemClayPotWet(); public static final Item CLAY_POT_WET = new ItemClayPotWet();
public static final Item TORCH = new ItemTorch(); public static final Item TORCH = new ItemTorch();
public static final Item COAL = new ItemCoal();
} }

View File

@ -28,7 +28,8 @@ public class Models
public static final Model TILE_TREE = new ModelTree(); public static final Model TILE_TREE = new ModelTree();
public static final Model TILE_TREE_SNOW = new ModelTreeSnow(); 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_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_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")); 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 = 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_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_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_ROCK_IRON = new ModelRock(Resources.ATLAS.get("/tile/rock_iron.png"));
public static final Model TILE_ORE_GOLD = new ModelTile(Resources.ATLAS.get("/tile/ore_gold.png")); public static final Model TILE_ROCK_GOLD = new ModelRock(Resources.ATLAS.get("/tile/rock_gold.png"));
public static final Model TILE_ORE_TIN = new ModelTile(Resources.ATLAS.get("/tile/ore_tin.png")); public static final Model TILE_ROCK_TIN = new ModelRock(Resources.ATLAS.get("/tile/rock_tin.png"));
public static final Model TILE_ORE_COPPER = new ModelTile(Resources.ATLAS.get("/tile/ore_copper.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_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); 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_EMPTY = ModelItem.createEmpty();
public static final ModelItem ITEM_MISSING = new ModelItem(Resources.TEX_EMPTY); 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_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_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")); public static final ModelItem ITEM_GRAPPLING_HOOK = new ModelItem(Resources.ATLAS.get("/item/grappling_hook.png"));

View File

@ -7,7 +7,7 @@ import projectzombie.inventory.recipe.Recipe;
import projectzombie.inventory.recipe.RecipeBasic; import projectzombie.inventory.recipe.RecipeBasic;
import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class Recipes public class Recipes
{ {
@ -66,6 +66,15 @@ public class Recipes
Crafting.BASIC, Crafting.BASIC,
}, new ItemStack(Items.WORKBENCH, 1))); }, 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 // Workbench items

View File

@ -9,6 +9,7 @@ import projectzombie.tiles.TileCactus;
import projectzombie.tiles.TileCampfire; import projectzombie.tiles.TileCampfire;
import projectzombie.tiles.TileChest; import projectzombie.tiles.TileChest;
import projectzombie.tiles.TileClayPot; import projectzombie.tiles.TileClayPot;
import projectzombie.tiles.TileCoal;
import projectzombie.tiles.TileDirt; import projectzombie.tiles.TileDirt;
import projectzombie.tiles.TileGrass; import projectzombie.tiles.TileGrass;
import projectzombie.tiles.TileGrassBurnt; import projectzombie.tiles.TileGrassBurnt;
@ -86,6 +87,7 @@ public class Tiles
register(BLAST_FURNACE); register(BLAST_FURNACE);
register(CLAY_POT); register(CLAY_POT);
register(ORE); register(ORE);
register(COAL);
} }
public static final Tile GRASS = new TileGrass(); 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 BLAST_FURNACE = new TileBlastFurnace();
public static final Tile CLAY_POT = new TileClayPot(); public static final Tile CLAY_POT = new TileClayPot();
public static final Tile ORE = new TileOre(); public static final Tile ORE = new TileOre();
public static final Tile COAL = new TileCoal();
} }

View File

@ -10,7 +10,7 @@ import projectzombie.menu.MenuInventory;
import projectzombie.menu.MenuInventoryBasic; import projectzombie.menu.MenuInventoryBasic;
import projectzombie.menu.MenuInventoryStorage; import projectzombie.menu.MenuInventoryStorage;
import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIItemSlotGetter;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.chunk.ChunkEventHandler;
public class InputGame implements Input public class InputGame implements Input

View File

@ -1,6 +1,6 @@
package projectzombie.inventory; package projectzombie.inventory;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface IInventory public interface IInventory
{ {

View File

@ -1,6 +1,6 @@
package projectzombie.inventory; package projectzombie.inventory;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface IInventoryArmor public interface IInventoryArmor
{ {

View File

@ -1,6 +1,6 @@
package projectzombie.inventory; package projectzombie.inventory;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface IInventoryClothing public interface IInventoryClothing
{ {

View File

@ -1,6 +1,7 @@
package projectzombie.inventory; package projectzombie.inventory;
import projectzombie.util.ClassBdf; import projectzombie.util.ClassBdf;
import projectzombie.util.ItemStack;
import bdf.types.BdfArray; import bdf.types.BdfArray;
import bdf.types.BdfNamedList; import bdf.types.BdfNamedList;
import bdf.types.BdfObject; import bdf.types.BdfObject;
@ -9,7 +10,6 @@ import gl_engine.vec.Vec3d;
import projectzombie.entity.EntityItem; import projectzombie.entity.EntityItem;
import projectzombie.items.Item; import projectzombie.items.Item;
import projectzombie.items.modifier.ItemModifier; import projectzombie.items.modifier.ItemModifier;
import projectzombie.util.math.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -1,9 +1,9 @@
package projectzombie.inventory; package projectzombie.inventory;
import projectzombie.util.ClassBdf; import projectzombie.util.ClassBdf;
import projectzombie.util.ItemStack;
import bdf.types.BdfNamedList; import bdf.types.BdfNamedList;
import bdf.types.BdfObject; import bdf.types.BdfObject;
import projectzombie.util.math.ItemStack;
public class InventoryArmor implements ClassBdf, IInventoryArmor public class InventoryArmor implements ClassBdf, IInventoryArmor
{ {

View File

@ -1,9 +1,9 @@
package projectzombie.inventory; package projectzombie.inventory;
import projectzombie.util.ClassBdf; import projectzombie.util.ClassBdf;
import projectzombie.util.ItemStack;
import bdf.types.BdfNamedList; import bdf.types.BdfNamedList;
import bdf.types.BdfObject; import bdf.types.BdfObject;
import projectzombie.util.math.ItemStack;
public class InventoryClothing implements ClassBdf, IInventoryClothing public class InventoryClothing implements ClassBdf, IInventoryClothing
{ {

View File

@ -1,8 +1,8 @@
package projectzombie.inventory.recipe; package projectzombie.inventory.recipe;
import projectzombie.inventory.Inventory; import projectzombie.inventory.Inventory;
import projectzombie.util.ItemStack;
import projectzombie.inventory.Crafting; import projectzombie.inventory.Crafting;
import projectzombie.util.math.ItemStack;
public interface Recipe public interface Recipe
{ {

View File

@ -2,7 +2,7 @@ package projectzombie.inventory.recipe;
import projectzombie.inventory.Crafting; import projectzombie.inventory.Crafting;
import projectzombie.inventory.Inventory; import projectzombie.inventory.Inventory;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class RecipeBasic implements Recipe public class RecipeBasic implements Recipe
{ {

View File

@ -11,7 +11,7 @@ import projectzombie.inventory.IInventory;
import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -1,7 +1,7 @@
package projectzombie.items; package projectzombie.items;
import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public abstract class ItemAbstractTool extends Item implements ItemTool public abstract class ItemAbstractTool extends Item implements ItemTool
{ {

View File

@ -10,7 +10,7 @@ import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.tiles.Tile; import projectzombie.tiles.Tile;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -2,7 +2,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemAmmo extends Item public class ItemAmmo extends Item
{ {

View File

@ -1,6 +1,6 @@
package projectzombie.items; package projectzombie.items;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface ItemArmor public interface ItemArmor
{ {

View File

@ -3,7 +3,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemAsh extends Item public class ItemAsh extends Item
{ {

View File

@ -7,7 +7,7 @@ import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -1,6 +1,6 @@
package projectzombie.items; package projectzombie.items;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface ItemBurnable public interface ItemBurnable
{ {

View File

@ -7,7 +7,7 @@ import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -21,7 +21,7 @@ public class ItemCampfire extends Item
@Override @Override
public Model getPlaceModel(ItemStack stack) { public Model getPlaceModel(ItemStack stack) {
return Models.TILE_CAMPFIRE; return Models.TILE_CAMPFIRE_UNLIT;
} }
@Override @Override

View File

@ -3,7 +3,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemCharcoal extends Item public class ItemCharcoal extends Item
{ {

View File

@ -12,8 +12,8 @@ import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.items.modifier.ItemModifierWater; import projectzombie.items.modifier.ItemModifierWater;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
public class ItemClayPot extends Item public class ItemClayPot extends Item

View File

@ -3,7 +3,7 @@ package projectzombie.items;
import projectzombie.init.Items; import projectzombie.init.Items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemClayPotWet extends Item implements ItemCookable public class ItemClayPotWet extends Item implements ItemCookable
{ {

View File

@ -1,6 +1,6 @@
package projectzombie.items; package projectzombie.items;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface ItemClothing public interface ItemClothing
{ {

View File

@ -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)};
}
}

View File

@ -1,6 +1,6 @@
package projectzombie.items; package projectzombie.items;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface ItemCookable public interface ItemCookable
{ {

View File

@ -3,7 +3,7 @@ package projectzombie.items;
import projectzombie.entity.Entity; import projectzombie.entity.Entity;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -7,7 +7,7 @@ import projectzombie.entity.EntityFlare;
import projectzombie.entity.player.EntityPlayer; import projectzombie.entity.player.EntityPlayer;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -2,7 +2,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemFlint extends Item public class ItemFlint extends Item
{ {

View File

@ -5,7 +5,7 @@ import projectzombie.items.modifier.ItemModifier;
import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemFlintHatchet extends ItemAbstractTool public class ItemFlintHatchet extends ItemAbstractTool
{ {

View File

@ -9,7 +9,7 @@ import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifier; import projectzombie.items.modifier.ItemModifier;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -7,7 +7,7 @@ import projectzombie.entity.player.EntityPlayer;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -8,7 +8,7 @@ import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -7,7 +7,7 @@ import projectzombie.entity.player.EntityPlayer;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -9,7 +9,7 @@ import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -4,7 +4,7 @@ import projectzombie.init.Items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemLog extends Item implements ItemBurnable public class ItemLog extends Item implements ItemBurnable
{ {

View File

@ -4,7 +4,7 @@ import projectzombie.init.Items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemMetal extends Item public class ItemMetal extends Item
{ {

View File

@ -4,7 +4,7 @@ import projectzombie.init.Items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemOre extends Item implements ItemSmeltable public class ItemOre extends Item implements ItemSmeltable
{ {

View File

@ -2,7 +2,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemPlantFibre extends Item public class ItemPlantFibre extends Item
{ {

View File

@ -3,7 +3,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemRock extends Item public class ItemRock extends Item
{ {

View File

@ -1,6 +1,6 @@
package projectzombie.items; package projectzombie.items;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface ItemSmeltable public interface ItemSmeltable
{ {

View File

@ -4,7 +4,7 @@ import gl_engine.vec.Vec2d;
import gl_engine.vec.Vec2i; import gl_engine.vec.Vec2i;
import gl_engine.vec.Vec3d; import gl_engine.vec.Vec3d;
import projectzombie.entity.player.EntityPlayer; import projectzombie.entity.player.EntityPlayer;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -2,7 +2,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemStoneHatchet extends ItemAbstractTool public class ItemStoneHatchet extends ItemAbstractTool
{ {

View File

@ -2,7 +2,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemStonePick extends ItemAbstractTool public class ItemStonePick extends ItemAbstractTool
{ {

View File

@ -2,7 +2,7 @@ package projectzombie.items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemStoneShovel extends ItemAbstractTool public class ItemStoneShovel extends ItemAbstractTool
{ {

View File

@ -8,7 +8,7 @@ import projectzombie.entity.player.EntityPlayer;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -1,6 +1,6 @@
package projectzombie.items; package projectzombie.items;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface ItemTool public interface ItemTool
{ {

View File

@ -4,11 +4,13 @@ import gl_engine.vec.Vec2d;
import projectzombie.entity.player.EntityPlayer; import projectzombie.entity.player.EntityPlayer;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifier; import projectzombie.items.modifier.ItemModifier;
import projectzombie.items.modifier.ItemModifierClickCooldown;
import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierDamage;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.items.modifier.ItemModifierTimer; import projectzombie.items.modifier.ItemModifierTimer;
import projectzombie.items.modifier.ItemModifierTimerPaused;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
public class ItemTorch extends Item public class ItemTorch extends Item
@ -29,7 +31,9 @@ public class ItemTorch extends Item
@Override @Override
public double getDamage(ItemStack stack) public double getDamage(ItemStack stack)
{ {
ItemModifierTimer timer = (ItemModifierTimer)stack.getModifier(ItemModifierTimer.class); if(ItemModifierMeta.getStackMeta(stack) == 0)
{
ItemModifierTimerPaused timer = (ItemModifierTimerPaused)stack.getModifier(ItemModifierTimerPaused.class);
if(timer == null) { if(timer == null) {
return 0; return 0;
@ -38,17 +42,61 @@ public class ItemTorch extends Item
return timer.getDamage(); return timer.getDamage();
} }
else
{
ItemModifierTimer timer = (ItemModifierTimer)stack.getModifier(ItemModifierTimer.class);
if(timer == null) {
return 0;
}
return timer.getDamage();
}
}
@Override @Override
public boolean onPlayerRightClick(ItemStack stack, Layer layer, EntityPlayer player, Vec2d place_pos) public boolean onPlayerRightClick(ItemStack stack, Layer layer, EntityPlayer player, Vec2d place_pos)
{ {
if(ItemModifierMeta.getStackMeta(stack) == 1) { ItemModifierClickCooldown cooldown = (ItemModifierClickCooldown)
return false; stack.getModifier(ItemModifierClickCooldown.class);
if(cooldown != null && !cooldown.canClick()) {
return true;
} }
stack.modifiers = new ItemModifier[] { else if(cooldown == null) {
new ItemModifierMeta(1), cooldown = new ItemModifierClickCooldown(500);
new ItemModifierTimer(12000), }
};
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; return true;
} }

View File

@ -7,7 +7,7 @@ import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
public class ItemWorkbench extends Item public class ItemWorkbench extends Item

View File

@ -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;
}
}

View File

@ -2,7 +2,7 @@ package projectzombie.items.modifier;
import bdf.types.BdfNamedList; import bdf.types.BdfNamedList;
import bdf.types.BdfObject; import bdf.types.BdfObject;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class ItemModifierMeta extends ItemModifier public class ItemModifierMeta extends ItemModifier
{ {

View File

@ -7,11 +7,11 @@ import projectzombie.time.GameTimer;
public class ItemModifierTimer extends ItemModifier public class ItemModifierTimer extends ItemModifier
{ {
private long end; long end;
private long start; long start;
public long getLeft() { public long getLeft() {
return GameTimer.getTime() - end; return end - GameTimer.getTime();
} }
public double getDamage() { public double getDamage() {
@ -57,4 +57,7 @@ public class ItemModifierTimer extends ItemModifier
return timer; return timer;
} }
public ItemModifierTimerPaused pause() {
return new ItemModifierTimerPaused(end - start, getLeft());
}
} }

View File

@ -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;
}
}

View File

@ -5,7 +5,7 @@ import projectzombie.entity.EntityDummy;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.ItemSpawn; import projectzombie.items.ItemSpawn;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -5,7 +5,7 @@ import projectzombie.entity.EntityZombie;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.ItemSpawn; import projectzombie.items.ItemSpawn;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -20,7 +20,7 @@ import projectzombie.menu.gui.GUIItemSlotGetter;
import projectzombie.menu.gui.GUIItemSlotGetterStorage; import projectzombie.menu.gui.GUIItemSlotGetterStorage;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelGui; import projectzombie.model.ModelGui;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public abstract class MenuInventory extends Menu public abstract class MenuInventory extends Menu
{ {

View File

@ -13,7 +13,7 @@ import projectzombie.menu.gui.GUIContainerSlider;
import projectzombie.menu.gui.GUIItemSlot; import projectzombie.menu.gui.GUIItemSlot;
import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIItemSlotGetter;
import projectzombie.menu.gui.GUIRecipeCard; import projectzombie.menu.gui.GUIRecipeCard;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class MenuInventoryBasic extends MenuInventory public class MenuInventoryBasic extends MenuInventory
{ {

View File

@ -13,7 +13,7 @@ import projectzombie.menu.gui.GUIContainerSlider;
import projectzombie.menu.gui.GUIItemSlot; import projectzombie.menu.gui.GUIItemSlot;
import projectzombie.menu.gui.GUIItemSlotGetter; import projectzombie.menu.gui.GUIItemSlotGetter;
import projectzombie.menu.gui.GUIRecipeCard; import projectzombie.menu.gui.GUIRecipeCard;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class MenuInventoryStorage extends MenuInventory public class MenuInventoryStorage extends MenuInventory
{ {

View File

@ -11,7 +11,7 @@ import projectzombie.entity.EntityItem;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.text.Text; import projectzombie.text.Text;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
public class GUIItemHolder implements GUIComponent public class GUIItemHolder implements GUIComponent

View File

@ -11,7 +11,7 @@ import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.model.ModelItem; import projectzombie.model.ModelItem;
import projectzombie.text.Text; import projectzombie.text.Text;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class GUIItemSlot implements GUIComponent public class GUIItemSlot implements GUIComponent
{ {

View File

@ -1,6 +1,6 @@
package projectzombie.menu.gui; package projectzombie.menu.gui;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public interface GUIItemSlotGetter { public interface GUIItemSlotGetter {
public boolean isAllowed(ItemStack stack); public boolean isAllowed(ItemStack stack);

View File

@ -1,7 +1,7 @@
package projectzombie.menu.gui; package projectzombie.menu.gui;
import projectzombie.inventory.IInventory; import projectzombie.inventory.IInventory;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class GUIItemSlotGetterStorage implements GUIItemSlotGetter public class GUIItemSlotGetterStorage implements GUIItemSlotGetter
{ {

View File

@ -1,6 +1,6 @@
package projectzombie.menu.gui; package projectzombie.menu.gui;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class GUIItemSlotReadonly extends GUIItemSlot public class GUIItemSlotReadonly extends GUIItemSlot
{ {

View File

@ -7,7 +7,7 @@ import projectzombie.inventory.Crafting;
import projectzombie.inventory.Inventory; import projectzombie.inventory.Inventory;
import projectzombie.inventory.recipe.Recipe; import projectzombie.inventory.recipe.Recipe;
import projectzombie.model.ModelGui; import projectzombie.model.ModelGui;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
public class GUIRecipeCard implements GUIContainer public class GUIRecipeCard implements GUIContainer
{ {

View File

@ -7,7 +7,7 @@ import gl_engine.vec.Vec3d;
import projectzombie.Main; import projectzombie.Main;
import projectzombie.entity.Entity; import projectzombie.entity.Entity;
import projectzombie.entity.player.EntityPlayer; import projectzombie.entity.player.EntityPlayer;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.chunk.ChunkEventHandler;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -4,8 +4,8 @@ import gl_engine.vec.Vec2i;
import projectzombie.entity.Entity; import projectzombie.entity.Entity;
import projectzombie.items.ItemTool; import projectzombie.items.ItemTool;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -29,7 +29,8 @@ public abstract class Tile
return new TileState(this, 0); 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) { public ItemStack[] getTileDrops(TileState state) {

View File

@ -13,8 +13,8 @@ import projectzombie.inventory.Inventory;
import projectzombie.items.ItemTool; import projectzombie.items.ItemTool;
import projectzombie.items.ItemToolType; import projectzombie.items.ItemToolType;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -39,7 +39,7 @@ public class TileBlastFurnace extends Tile
} }
@Override @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); super.onActivated(layer, tpos, entity, state);
TileEntityBlastFurnace te = (TileEntityBlastFurnace)layer.getTileEntity(tpos); TileEntityBlastFurnace te = (TileEntityBlastFurnace)layer.getTileEntity(tpos);
@ -50,6 +50,8 @@ public class TileBlastFurnace extends Tile
} }
te.onOpened(); te.onOpened();
return true;
} }
@Override @Override

View File

@ -13,7 +13,7 @@ import projectzombie.entity.player.EntityPlayer;
import projectzombie.init.LayerGenerators; import projectzombie.init.LayerGenerators;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.ChunkEventHandler; import projectzombie.world.chunk.ChunkEventHandler;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
import projectzombie.world.layer.layergen.LayerGenBossArena; import projectzombie.world.layer.layergen.LayerGenBossArena;
@ -36,7 +36,7 @@ public class TileBossPortal extends Tile
} }
@Override @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); super.onActivated(layer, tpos, entity, state);
if(entity instanceof EntityPlayer) if(entity instanceof EntityPlayer)
@ -91,6 +91,8 @@ public class TileBossPortal extends Tile
} }
}); });
} }
return true;
} }
@Override @Override

View File

@ -4,7 +4,7 @@ import java.util.Random;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
public class TileCactus extends Tile implements TileBulletBreakable public class TileCactus extends Tile implements TileBulletBreakable
{ {

View File

@ -4,6 +4,7 @@ import gl_engine.MathHelpers;
import gl_engine.vec.Vec2i; import gl_engine.vec.Vec2i;
import gl_engine.vec.Vec3d; import gl_engine.vec.Vec3d;
import projectzombie.entity.Entity; import projectzombie.entity.Entity;
import projectzombie.entity.particle.ParticleSmoke;
import projectzombie.entity.tileentity.TileEntityCampfire; import projectzombie.entity.tileentity.TileEntityCampfire;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
@ -11,8 +12,8 @@ import projectzombie.inventory.Inventory;
import projectzombie.items.ItemTool; import projectzombie.items.ItemTool;
import projectzombie.items.ItemToolType; import projectzombie.items.ItemToolType;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -33,11 +34,21 @@ public class TileCampfire extends Tile
@Override @Override
public Model getModel(byte meta) { public Model getModel(byte meta) {
return Models.TILE_CAMPFIRE; return meta == 0 ? Models.TILE_CAMPFIRE_UNLIT : Models.TILE_CAMPFIRE_LIT;
} }
@Override @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); super.onActivated(layer, tpos, entity, state);
TileEntityCampfire te = (TileEntityCampfire)layer.getTileEntity(tpos); TileEntityCampfire te = (TileEntityCampfire)layer.getTileEntity(tpos);
@ -48,6 +59,8 @@ public class TileCampfire extends Tile
} }
te.onOpened(); te.onOpened();
return true;
} }
@Override @Override

View File

@ -11,8 +11,8 @@ import projectzombie.init.Items;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierMeta;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.util.math.random.RandomHelpers; import projectzombie.util.math.random.RandomHelpers;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -34,7 +34,7 @@ public class TileChest extends Tile implements TileBulletBreakable
} }
@Override @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); super.onActivated(layer, tpos, entity, state);
Chunk chunk = layer.getChunk(tpos); Chunk chunk = layer.getChunk(tpos);
@ -79,6 +79,8 @@ public class TileChest extends Tile implements TileBulletBreakable
} }
layer.breakFrontTile(tpos); layer.breakFrontTile(tpos);
return true;
} }
@Override @Override

View File

@ -14,8 +14,8 @@ import projectzombie.items.ItemToolType;
import projectzombie.items.modifier.ItemModifierFluidStorage; import projectzombie.items.modifier.ItemModifierFluidStorage;
import projectzombie.items.modifier.ItemModifierWater; import projectzombie.items.modifier.ItemModifierWater;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -51,7 +51,7 @@ public class TileClayPot extends Tile
} }
@Override @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); super.onActivated(layer, tpos, entity, state);
TileEntityClayPot te = (TileEntityClayPot)layer.getTileEntity(tpos); TileEntityClayPot te = (TileEntityClayPot)layer.getTileEntity(tpos);
@ -64,7 +64,7 @@ public class TileClayPot extends Tile
double volume = te.getVolume(); double volume = te.getVolume();
if(volume <= 0) { if(volume <= 0) {
return; return true;
} }
if(entity instanceof EntityPlayer) if(entity instanceof EntityPlayer)
@ -86,6 +86,8 @@ public class TileClayPot extends Tile
te.setVolume(volume); te.setVolume(volume);
} }
} }
return true;
} }
@Override @Override

View File

@ -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;
}
}

View File

@ -4,7 +4,7 @@ import gl_engine.vec.Vec2i;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -4,7 +4,7 @@ import gl_engine.vec.Vec2i;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;

View File

@ -9,8 +9,8 @@ import projectzombie.init.Models;
import projectzombie.init.Tiles; import projectzombie.init.Tiles;
import projectzombie.items.ItemTool; import projectzombie.items.ItemTool;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.ItemStack; import projectzombie.util.ItemStack;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
import projectzombie.world.chunk.Chunk; import projectzombie.world.chunk.Chunk;
import projectzombie.world.layer.Layer; import projectzombie.world.layer.Layer;
@ -42,7 +42,7 @@ public class TileHemp extends Tile
} }
@Override @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); super.onActivated(layer, tpos, entity, state);
if(state.meta > 3) if(state.meta > 3)
@ -57,7 +57,11 @@ public class TileHemp extends Tile
Items.PLANT_FIBRE, fibre))); Items.PLANT_FIBRE, fibre)));
layer.setFrontTile(new TileState(Tiles.HEMP, (byte)3), tpos); layer.setFrontTile(new TileState(Tiles.HEMP, (byte)3), tpos);
return true;
} }
return false;
} }
@Override @Override

View File

@ -2,7 +2,7 @@ package projectzombie.tiles;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
public class TileIce extends TileStone public class TileIce extends TileStone
{ {

View File

@ -3,7 +3,7 @@ package projectzombie.tiles;
import gl_engine.vec.Vec2i; import gl_engine.vec.Vec2i;
import projectzombie.init.Models; import projectzombie.init.Models;
import projectzombie.model.Model; import projectzombie.model.Model;
import projectzombie.util.math.TileState; import projectzombie.util.TileState;
public class TileLadder extends Tile public class TileLadder extends Tile
{ {

Some files were not shown because too many files have changed in this diff Show More