Red String dispenser.

This commit is contained in:
Lizbeth Rika committed 2014-11-14 23:38:40 +00:00
1 parent c3a3b93da1
commit 7df0c1c57f
6 files changed
+89

No files matched your search

@@ -39,6 +39,7 @@ public class ClientTickHandler {
public void clientTickEnd(ClientTickEvent event) {
if(event.phase == Phase.END) {
LightningBolt.update();
RedStringRenderer.tick();
if(Minecraft.getMinecraft().theWorld == null)
ManaNetworkHandler.instance.clear();
@@ -71,6 +71,7 @@ import vazkii.botania.common.block.decor.stairs.prismarine.BlockPrismarineStairs
import vazkii.botania.common.block.dispenser.BehaviourSeeds;
import vazkii.botania.common.block.dispenser.BehaviourWand;
import vazkii.botania.common.block.string.BlockRedStringContainer;
import vazkii.botania.common.block.string.BlockRedStringDispenser;
import vazkii.botania.common.block.subtile.SubTileManastar;
import vazkii.botania.common.block.subtile.SubTilePureDaisy;
import vazkii.botania.common.block.subtile.functional.SubTileAgricarnation;
@@ -130,6 +131,7 @@ import vazkii.botania.common.block.tile.mana.TileRFGenerator;
import vazkii.botania.common.block.tile.mana.TileSpreader;
import vazkii.botania.common.block.tile.mana.TileTurntable;
import vazkii.botania.common.block.tile.string.TileRedStringContainer;
import vazkii.botania.common.block.tile.string.TileRedStringDispenser;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.lib.LibBlockNames;
@@ -185,6 +187,7 @@ public final class ModBlocks {
public static Block manaGlass;
public static Block terraPlate;
public static Block redStringContainer;
public static Block redStringDispenser;
public static Block livingwoodStairs;
public static Block livingwoodSlab;
@@ -308,6 +311,7 @@ public final class ModBlocks {
manaGlass = new BlockManaGlass();
terraPlate = new BlockTerraPlate();
redStringContainer = new BlockRedStringContainer();
redStringDispenser = new BlockRedStringDispenser();
livingwoodStairs = new BlockLivingwoodStairs();
livingwoodSlab = new BlockLivingwoodSlab(false);
@@ -489,6 +493,7 @@ public final class ModBlocks {
registerTile(TileBrewery.class, LibBlockNames.BREWERY);
registerTile(TileTerraPlate.class, LibBlockNames.TERRA_PLATE);
registerTile(TileRedStringContainer.class, LibBlockNames.RED_STRING_CONTAINER);
registerTile(TileRedStringDispenser.class, LibBlockNames.RED_STRING_DISPENSER);
BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_PUREDAISY, SubTilePureDaisy.class);
BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_MANASTAR, SubTileManastar.class);
@@ -0,0 +1,45 @@
/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under a
* Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
* (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB)
*
* File Created @ [Nov 14, 2014, 10:59:20 PM (GMT)]
*/
package vazkii.botania.common.block.string;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import vazkii.botania.common.block.tile.string.TileRedString;
import vazkii.botania.common.block.tile.string.TileRedStringContainer;
import vazkii.botania.common.block.tile.string.TileRedStringDispenser;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockRedStringDispenser extends BlockRedString {
public BlockRedStringDispenser() {
super(LibBlockNames.RED_STRING_DISPENSER);
}
@Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
boolean power = world.isBlockIndirectlyGettingPowered(x, y, z) || world.isBlockIndirectlyGettingPowered(x, y + 1, z);
int meta = world.getBlockMetadata(x, y, z);
boolean powered = (meta & 8) != 0;
if(power && !powered) {
((TileRedStringDispenser) world.getTileEntity(x, y, z)).tickDispenser();
world.setBlockMetadataWithNotify(x, y, z, meta | 8, 4);
} else if(!power && powered)
world.setBlockMetadataWithNotify(x, y, z, meta & -9, 4);
}
@Override
public TileRedString createNewTileEntity(World world, int meta) {
return new TileRedStringDispenser();
}
}
@@ -0,0 +1,36 @@
/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under a
* Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
* (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB)
*
* File Created @ [Nov 14, 2014, 11:00:16 PM (GMT)]
*/
package vazkii.botania.common.block.tile.string;
import net.minecraft.inventory.IInventory;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityDispenser;
import net.minecraft.util.ChunkCoordinates;
public class TileRedStringDispenser extends TileRedStringContainer {
@Override
public boolean acceptBlock(int x, int y, int z) {
TileEntity tile = worldObj.getTileEntity(x, y, z);
return tile != null && tile instanceof TileEntityDispenser;
}
public void tickDispenser() {
ChunkCoordinates bind = getBinding();
if(bind != null) {
TileEntity tile = worldObj.getTileEntity(bind.posX, bind.posY, bind.posZ);
if(tile instanceof TileEntityDispenser)
worldObj.scheduleBlockUpdate(bind.posX, bind.posY, bind.posZ, tile.getBlockType(), tile.getBlockType().tickRate(worldObj));
}
}
}
@@ -112,6 +112,7 @@ public final class BotaniaCreativeTab extends CreativeTabs {
addBlock(ModBlocks.pistonRelay);
addBlock(ModBlocks.redStringContainer);
addBlock(ModBlocks.redStringDispenser);
addBlock(ModBlocks.shinyFlower);
addBlock(ModBlocks.miniIsland);
@@ -62,6 +62,7 @@ public final class LibBlockNames {
public static final String MANA_GLASS = "manaGlass";
public static final String TERRA_PLATE = "terraPlate";
public static final String RED_STRING_CONTAINER = "redStringContainer";
public static final String RED_STRING_DISPENSER = "redStringDispenser";
public static final String SUBTILE_PUREDAISY = "puredaisy";
public static final String SUBTILE_MANASTAR = "manastar";