mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-13 16:54:06 +00:00
Added the Red String Comparator and Spoofer.
This commit is contained in:
1 parent
e60717ed76
commit
f99883c93c
11 files changed
+198
-3
No files matched your search
@@ -140,6 +140,11 @@ public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvid
|
||||
return ItemBlockSpecialFlower.ofType(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canPlaceBlockOn(Block block) {
|
||||
return super.canPlaceBlockOn(block) || block == ModBlocks.redStringRelay;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5, EntityPlayer par6EntityPlayer) {
|
||||
if(!par6EntityPlayer.capabilities.isCreativeMode)
|
||||
|
||||
@@ -70,9 +70,11 @@ import vazkii.botania.common.block.decor.stairs.prismarine.BlockPrismarineBrickS
|
||||
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.BlockRedStringComparator;
|
||||
import vazkii.botania.common.block.string.BlockRedStringContainer;
|
||||
import vazkii.botania.common.block.string.BlockRedStringDispenser;
|
||||
import vazkii.botania.common.block.string.BlockRedStringFertilizer;
|
||||
import vazkii.botania.common.block.string.BlockRedStringRelay;
|
||||
import vazkii.botania.common.block.subtile.SubTileManastar;
|
||||
import vazkii.botania.common.block.subtile.SubTilePureDaisy;
|
||||
import vazkii.botania.common.block.subtile.functional.SubTileAgricarnation;
|
||||
@@ -131,9 +133,11 @@ import vazkii.botania.common.block.tile.mana.TilePool;
|
||||
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.TileRedStringComparator;
|
||||
import vazkii.botania.common.block.tile.string.TileRedStringContainer;
|
||||
import vazkii.botania.common.block.tile.string.TileRedStringDispenser;
|
||||
import vazkii.botania.common.block.tile.string.TileRedStringFertilizer;
|
||||
import vazkii.botania.common.block.tile.string.TileRedStringRelay;
|
||||
import vazkii.botania.common.core.handler.ConfigHandler;
|
||||
import vazkii.botania.common.item.ModItems;
|
||||
import vazkii.botania.common.lib.LibBlockNames;
|
||||
@@ -191,6 +195,8 @@ public final class ModBlocks {
|
||||
public static Block redStringContainer;
|
||||
public static Block redStringDispenser;
|
||||
public static Block redStringFertilizer;
|
||||
public static Block redStringComparator;
|
||||
public static Block redStringRelay;
|
||||
|
||||
public static Block livingwoodStairs;
|
||||
public static Block livingwoodSlab;
|
||||
@@ -316,6 +322,8 @@ public final class ModBlocks {
|
||||
redStringContainer = new BlockRedStringContainer();
|
||||
redStringDispenser = new BlockRedStringDispenser();
|
||||
redStringFertilizer = new BlockRedStringFertilizer();
|
||||
redStringComparator = new BlockRedStringComparator();
|
||||
redStringRelay = new BlockRedStringRelay();
|
||||
|
||||
livingwoodStairs = new BlockLivingwoodStairs();
|
||||
livingwoodSlab = new BlockLivingwoodSlab(false);
|
||||
@@ -499,6 +507,8 @@ public final class ModBlocks {
|
||||
registerTile(TileRedStringContainer.class, LibBlockNames.RED_STRING_CONTAINER);
|
||||
registerTile(TileRedStringDispenser.class, LibBlockNames.RED_STRING_DISPENSER);
|
||||
registerTile(TileRedStringFertilizer.class, LibBlockNames.RED_STRING_FERTILIZER);
|
||||
registerTile(TileRedStringComparator.class, LibBlockNames.RED_STRING_COMPARATOR);
|
||||
registerTile(TileRedStringRelay.class, LibBlockNames.RED_STRING_RELAY);
|
||||
|
||||
BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_PUREDAISY, SubTilePureDaisy.class);
|
||||
BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_MANASTAR, SubTileManastar.class);
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
* 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 16, 2014, 10:19:28 PM (GMT)]
|
||||
*/
|
||||
package vazkii.botania.common.block.string;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import vazkii.botania.common.block.tile.string.TileRedString;
|
||||
import vazkii.botania.common.block.tile.string.TileRedStringComparator;
|
||||
import vazkii.botania.common.lib.LibBlockNames;
|
||||
|
||||
public class BlockRedStringComparator extends BlockRedString {
|
||||
|
||||
public BlockRedStringComparator() {
|
||||
super(LibBlockNames.RED_STRING_COMPARATOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasComparatorInputOverride() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
|
||||
return ((TileRedStringComparator) world.getTileEntity(x, y, z)).getComparatorValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileRedString createNewTileEntity(World world, int meta) {
|
||||
return new TileRedStringComparator();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* 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 16, 2014, 10:46:48 PM (GMT)]
|
||||
*/
|
||||
package vazkii.botania.common.block.string;
|
||||
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import vazkii.botania.common.block.tile.string.TileRedString;
|
||||
import vazkii.botania.common.block.tile.string.TileRedStringRelay;
|
||||
import vazkii.botania.common.lib.LibBlockNames;
|
||||
|
||||
public class BlockRedStringRelay extends BlockRedString {
|
||||
|
||||
public BlockRedStringRelay() {
|
||||
super(LibBlockNames.RED_STRING_RELAY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileRedString createNewTileEntity(World world, int meta) {
|
||||
return new TileRedStringRelay();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.IIcon;
|
||||
import vazkii.botania.api.BotaniaAPI;
|
||||
@@ -24,6 +25,7 @@ import vazkii.botania.api.lexicon.LexiconEntry;
|
||||
import vazkii.botania.api.subtile.ISubTileContainer;
|
||||
import vazkii.botania.api.subtile.SubTileEntity;
|
||||
import vazkii.botania.api.wand.IWandBindable;
|
||||
import vazkii.botania.common.block.tile.string.TileRedStringRelay;
|
||||
|
||||
public class TileSpecialFlower extends TileMod implements IWandBindable, ISubTileContainer {
|
||||
|
||||
@@ -63,8 +65,28 @@ public class TileSpecialFlower extends TileMod implements IWandBindable, ISubTil
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
if(subTile != null)
|
||||
if(subTile != null) {
|
||||
TileEntity tileBelow = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord);
|
||||
if(tileBelow instanceof TileRedStringRelay) {
|
||||
ChunkCoordinates coords = ((TileRedStringRelay) tileBelow).getBinding();
|
||||
if(coords != null) {
|
||||
int currX = xCoord;
|
||||
int currY = yCoord;
|
||||
int currZ = zCoord;
|
||||
xCoord = coords.posX;
|
||||
yCoord = coords.posY;
|
||||
zCoord = coords.posZ;
|
||||
subTile.onUpdate();
|
||||
xCoord = currX;
|
||||
yCoord = currY;
|
||||
zCoord = currZ;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
subTile.onUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,7 +26,7 @@ public abstract class TileRedString extends TileMod implements ITileBound {
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(getBlockMetadata());
|
||||
ForgeDirection dir = getOrientation();
|
||||
int x = xCoord;
|
||||
int y = yCoord;
|
||||
int z = zCoord;
|
||||
@@ -78,6 +78,10 @@ public abstract class TileRedString extends TileMod implements ITileBound {
|
||||
this.binding = binding;
|
||||
}
|
||||
|
||||
public ForgeDirection getOrientation() {
|
||||
return ForgeDirection.getOrientation(getBlockMetadata());
|
||||
}
|
||||
|
||||
public TileEntity getTileAtBinding() {
|
||||
ChunkCoordinates binding = getBinding();
|
||||
return binding == null ? null : worldObj.getTileEntity(binding.posX, binding.posY, binding.posZ);
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
* 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 16, 2014, 10:22:01 PM (GMT)]
|
||||
*/
|
||||
package vazkii.botania.common.block.tile.string;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileRedStringComparator extends TileRedString {
|
||||
|
||||
int comparatorValue = 0;
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
super.updateEntity();
|
||||
|
||||
ChunkCoordinates binding = getBinding();
|
||||
ForgeDirection dir = getOrientation();
|
||||
Block block = getBlockAtBinding();
|
||||
int origVal = comparatorValue;
|
||||
|
||||
if(block.hasComparatorInputOverride()) {
|
||||
int val = block.getComparatorInputOverride(worldObj, binding.posX, binding.posY, binding.posZ, dir.getOpposite().ordinal());
|
||||
comparatorValue = val;
|
||||
} else comparatorValue = 0;
|
||||
|
||||
if(origVal != comparatorValue)
|
||||
worldObj.func_147453_f(xCoord, yCoord, zCoord, worldObj.getBlock(xCoord, yCoord, zCoord));
|
||||
}
|
||||
|
||||
public int getComparatorValue() {
|
||||
return comparatorValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptBlock(int x, int y, int z) {
|
||||
Block block = worldObj.getBlock(x, y, z);
|
||||
return block.hasComparatorInputOverride();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* 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 16, 2014, 10:52:21 PM (GMT)]
|
||||
*/
|
||||
package vazkii.botania.common.block.tile.string;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockFlower;
|
||||
|
||||
public class TileRedStringRelay extends TileRedString {
|
||||
|
||||
@Override
|
||||
public boolean acceptBlock(int x, int y, int z) {
|
||||
if(x == xCoord && y == yCoord + 1 && z == zCoord)
|
||||
return false;
|
||||
|
||||
Block block = worldObj.getBlock(x, y, z);
|
||||
return block instanceof BlockFlower;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -114,6 +114,7 @@ public final class BotaniaCreativeTab extends CreativeTabs {
|
||||
addBlock(ModBlocks.redStringContainer);
|
||||
addBlock(ModBlocks.redStringDispenser);
|
||||
addBlock(ModBlocks.redStringFertilizer);
|
||||
addBlock(ModBlocks.redStringComparator);
|
||||
|
||||
addBlock(ModBlocks.shinyFlower);
|
||||
addBlock(ModBlocks.miniIsland);
|
||||
|
||||
@@ -64,6 +64,8 @@ public final class LibBlockNames {
|
||||
public static final String RED_STRING_CONTAINER = "redStringContainer";
|
||||
public static final String RED_STRING_DISPENSER = "redStringDispenser";
|
||||
public static final String RED_STRING_FERTILIZER = "redStringFertilizer";
|
||||
public static final String RED_STRING_COMPARATOR = "redStringComparator";
|
||||
public static final String RED_STRING_RELAY = "redStringRelay";
|
||||
|
||||
public static final String SUBTILE_PUREDAISY = "puredaisy";
|
||||
public static final String SUBTILE_MANASTAR = "manastar";
|
||||
|
||||
Reference in new issue
Block a user