ProjectZombie/src/projectzombie/tiles/TileHemp.java

68 lines
1.8 KiB
Java

package projectzombie.tiles;
import gl_engine.vec.Vec2i;
import gl_engine.vec.Vec3d;
import projectzombie.entity.Entity;
import projectzombie.entity.EntityItem;
import projectzombie.init.Items;
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.world.chunk.Chunk;
import projectzombie.world.layer.Layer;
public class TileHemp extends Tile
{
public TileHemp() {
this.hardness = 5000;
}
@Override
public void tickRandomly(Layer layer, Chunk chunk, TileState state, Vec2i pos) {
super.tickRandomly(layer, chunk, state, pos);
if(Math.random() > 0.9) {
if(state.meta < 7) {
layer.setFrontTile(new TileState(this, state.meta + 1), pos);
}
}
}
@Override
public Model getModel(byte meta)
{
if(meta >= Models.TILE_HEMP.length) {
return Models.TILE_HEMP[7];
}
return Models.TILE_HEMP[meta];
}
@Override
public void onActivated(Layer layer, Vec2i tpos, Entity entity, TileState state) {
super.onActivated(layer, tpos, entity, state);
if(state.meta > 3)
{
int seeds = (int)(Math.random() * (state.meta - 4)) + (state.meta - 4);
int fibre = (int)(Math.random() * (state.meta - 3) * 2) + (state.meta - 3) * 2;
layer.spawnEntity(new EntityItem(tpos.toDouble().xny(), new Vec3d(0, 0, 0), new ItemStack(
Items.HEMP_SEED, seeds)));
layer.spawnEntity(new EntityItem(tpos.toDouble().xny(), new Vec3d(0, 0, 0), new ItemStack(
Items.PLANT_FIBRE, fibre)));
layer.setFrontTile(new TileState(Tiles.HEMP, (byte)3), tpos);
}
}
@Override
public boolean canTileBreak(TileState state, ItemStack stack, ItemTool tool) {
return true;
}
}