Merge branch 'development' of https://github.com/aidancbrady/Mekanism into development
This commit is contained in:
commit
7634c29df9
8 changed files with 246 additions and 25 deletions
|
@ -161,7 +161,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
|
|||
*/
|
||||
@Mod(modid = "Mekanism", name = "Mekanism", version = "7.1.0", guiFactory = "mekanism.client.gui.ConfigGuiFactory",
|
||||
dependencies = "after:ForgeMultipart;after:BuildCraftAPI|power;after:BuildCraftAPI|tools;after:BuildCraftAPI|transport;after:IC2API;after:CoFHAPI|energy;after:ComputerCraft;after:Galacticraft API;" +
|
||||
"after:MineFactoryReloaded;after:MetallurgyCore;after:EnderIO;after:ExtraUtilities;after:Railcraft")
|
||||
"after:MineFactoryReloaded;after:MetallurgyCore;after:EnderIO;after:ExtraUtilities;after:Railcraft;after:Forestry")
|
||||
public class Mekanism
|
||||
{
|
||||
/** Mekanism Packet Pipeline */
|
||||
|
|
|
@ -802,4 +802,37 @@ public class BlockBasic extends Block
|
|||
return super.shouldSideBeRendered(world, x, y, z, side);
|
||||
}
|
||||
}
|
||||
|
||||
public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
ForgeDirection[] valid = new ForgeDirection[6];
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(basicTile.canSetFacing(dir.ordinal()))
|
||||
{
|
||||
valid[dir.ordinal()] = dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
if(basicTile.canSetFacing(axis.ordinal()))
|
||||
{
|
||||
basicTile.setFacing((short)axis.ordinal());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -13,10 +13,16 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import cpw.mods.fml.common.Optional.Interface;
|
||||
import cpw.mods.fml.common.Optional.Method;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class BlockBounding extends Block
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
||||
|
||||
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
|
||||
public class BlockBounding extends Block implements IPeripheralProvider
|
||||
{
|
||||
public BlockBounding()
|
||||
{
|
||||
|
@ -52,11 +58,11 @@ public class BlockBounding extends Block
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z)
|
||||
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
|
||||
{
|
||||
try {
|
||||
TileEntityBoundingBlock tileEntity = (TileEntityBoundingBlock)world.getTileEntity(x, y, z);
|
||||
return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).removedByPlayer(world, player, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ);
|
||||
return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).removedByPlayer(world, player, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, willHarvest);
|
||||
} catch(Exception e) {
|
||||
return false;
|
||||
}
|
||||
|
@ -122,4 +128,18 @@ public class BlockBounding extends Block
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Method(modid = "ComputerCraft")
|
||||
public IPeripheral getPeripheral(World world, int x, int y, int z, int side)
|
||||
{
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
|
||||
if(te != null && te instanceof IPeripheral)
|
||||
{
|
||||
return (IPeripheral)te;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,8 +33,12 @@ import net.minecraft.world.IBlockAccess;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
||||
|
||||
import cpw.mods.fml.common.ModAPIManager;
|
||||
import cpw.mods.fml.common.Optional.Interface;
|
||||
import cpw.mods.fml.common.Optional.Method;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
@ -46,7 +50,8 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
* @author AidanBrady
|
||||
*
|
||||
*/
|
||||
public class BlockEnergyCube extends BlockContainer
|
||||
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
|
||||
public class BlockEnergyCube extends BlockContainer implements IPeripheralProvider
|
||||
{
|
||||
public IIcon[][] icons = new IIcon[256][256];
|
||||
|
||||
|
@ -321,4 +326,51 @@ public class BlockEnergyCube extends BlockContainer
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
ForgeDirection[] valid = new ForgeDirection[6];
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(basicTile.canSetFacing(dir.ordinal()))
|
||||
{
|
||||
valid[dir.ordinal()] = dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
if(basicTile.canSetFacing(axis.ordinal()))
|
||||
{
|
||||
basicTile.setFacing((short)axis.ordinal());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Method(modid = "ComputerCraft")
|
||||
public IPeripheral getPeripheral(World world, int x, int y, int z, int side)
|
||||
{
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
|
||||
if(te != null && te instanceof IPeripheral)
|
||||
{
|
||||
return (IPeripheral)te;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,8 @@ import net.minecraft.tileentity.TileEntity;
|
|||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
|
||||
import cpw.mods.fml.common.ModAPIManager;
|
||||
|
@ -235,4 +237,37 @@ public class BlockGasTank extends BlockContainer
|
|||
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
ForgeDirection[] valid = new ForgeDirection[6];
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(basicTile.canSetFacing(dir.ordinal()))
|
||||
{
|
||||
valid[dir.ordinal()] = dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
if(basicTile.canSetFacing(axis.ordinal()))
|
||||
{
|
||||
basicTile.setFacing((short)axis.ordinal());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1279,4 +1279,37 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
ForgeDirection[] valid = new ForgeDirection[6];
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(basicTile.canSetFacing(dir.ordinal()))
|
||||
{
|
||||
valid[dir.ordinal()] = dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
if(basicTile.canSetFacing(axis.ordinal()))
|
||||
{
|
||||
basicTile.setFacing((short)axis.ordinal());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package mekanism.common.item;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
|
@ -14,6 +15,8 @@ import mekanism.common.network.PacketTileEntity.TileEntityMessage;
|
|||
import mekanism.common.tile.TileEntityBasicBlock;
|
||||
import mekanism.common.tile.TileEntityElectricChest;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
|
@ -65,6 +68,7 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench
|
|||
{
|
||||
if(!world.isRemote)
|
||||
{
|
||||
Block block = world.getBlock(x, y, z);
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
|
||||
if(tile instanceof IConfigurable)
|
||||
|
@ -172,28 +176,19 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench
|
|||
}
|
||||
else if(getState(stack) == 2)
|
||||
{
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicBlock = (TileEntityBasicBlock)tile;
|
||||
int newSide = basicBlock.facing;
|
||||
ForgeDirection axis = ForgeDirection.getOrientation(side);
|
||||
List<ForgeDirection> l = Arrays.asList(block.getValidRotations(world, x, y, z));
|
||||
|
||||
if(!player.isSneaking())
|
||||
if(!player.isSneaking() && l.contains(axis))
|
||||
{
|
||||
newSide = side;
|
||||
block.rotateBlock(world, x, y, z, axis);
|
||||
}
|
||||
else {
|
||||
newSide = ForgeDirection.OPPOSITES[side];
|
||||
}
|
||||
|
||||
if(basicBlock.canSetFacing(newSide))
|
||||
{
|
||||
basicBlock.setFacing((short)newSide);
|
||||
world.playSoundEffect(x, y, z, "random.click", 1.0F, 1.0F);
|
||||
else if(player.isSneaking() && l.contains(axis.getOpposite())) {
|
||||
block.rotateBlock(world, x, y, z, axis.getOpposite());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(getState(stack) == 3)
|
||||
{
|
||||
if(!world.isRemote && player.isSneaking())
|
||||
|
|
|
@ -40,7 +40,12 @@ import net.minecraft.world.IBlockAccess;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
||||
|
||||
import cpw.mods.fml.common.ModAPIManager;
|
||||
import cpw.mods.fml.common.Optional.Interface;
|
||||
import cpw.mods.fml.common.Optional.Method;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
@ -55,7 +60,8 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
* @author AidanBrady
|
||||
*
|
||||
*/
|
||||
public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
||||
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
|
||||
public class BlockGenerator extends BlockContainer implements ISpecialBounds, IPeripheralProvider
|
||||
{
|
||||
public Random machineRand = new Random();
|
||||
|
||||
|
@ -608,4 +614,51 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
ForgeDirection[] valid = new ForgeDirection[6];
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
{
|
||||
if(basicTile.canSetFacing(dir.ordinal()))
|
||||
{
|
||||
valid[dir.ordinal()] = dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
TileEntityBasicBlock basicTile = (TileEntityBasicBlock)tile;
|
||||
if(basicTile.canSetFacing(axis.ordinal()))
|
||||
{
|
||||
basicTile.setFacing((short)axis.ordinal());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Method(modid = "ComputerCraft")
|
||||
public IPeripheral getPeripheral(World world, int x, int y, int z, int side)
|
||||
{
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
|
||||
if(te != null && te instanceof IPeripheral)
|
||||
{
|
||||
return (IPeripheral)te;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue