remove sensitive cable

This commit is contained in:
Raoul Van den Berge
2016-01-02 17:41:52 +01:00
parent 811035d17a
commit 7b38bce072
12 changed files with 71 additions and 172 deletions

View File

@@ -1,12 +1,6 @@
package storagecraft.block;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import storagecraft.tile.TileCable;
@@ -15,35 +9,11 @@ import java.util.List;
public class BlockCable extends BlockBase
{
public static final PropertyBool SENSITIVE = PropertyBool.create("sensitive");
public BlockCable()
{
super("cable");
}
@Override
protected BlockState createBlockState()
{
return new BlockState(this, new IProperty[]
{
DIRECTION,
SENSITIVE
});
}
@Override
public IBlockState getStateFromMeta(int meta)
{
return getDefaultState().withProperty(SENSITIVE, meta == 1);
}
@Override
public int getMetaFromState(IBlockState state)
{
return ((Boolean) state.getValue(SENSITIVE)) ? 1 : 0;
}
@Override
public boolean hasTileEntity(IBlockState state)
{
@@ -56,15 +26,6 @@ public class BlockCable extends BlockBase
return new TileCable();
}
@Override
public void getSubBlocks(Item item, CreativeTabs tab, List subItems)
{
for (int i = 0; i < 2; i++)
{
subItems.add(new ItemStack(item, 1, i));
}
}
@Override
public int getRenderType()
{
@@ -76,4 +37,10 @@ public class BlockCable extends BlockBase
{
return false;
}
@Override
public boolean isFullCube() { return false; }
@Override
public boolean isVisuallyOpaque() { return false; }
}

View File

@@ -1,11 +0,0 @@
package storagecraft.item;
import net.minecraft.block.Block;
public class ItemBlockCable extends ItemBlockBase
{
public ItemBlockCable(Block block)
{
super(block);
}
}

View File

@@ -7,10 +7,16 @@ import net.minecraft.client.resources.model.ModelBakery;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.ForgeHooksClient;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.client.event.ModelBakeEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import storagecraft.StorageCraft;
import storagecraft.StorageCraftBlocks;
import storagecraft.StorageCraftItems;
import storagecraft.block.EnumControllerType;
@@ -61,12 +67,22 @@ public class ClientProxy extends CommonProxy
"storagecraft:wireless_grid_disconnected"
);
ModelBakery.addVariantName(Item.getItemFromBlock(StorageCraftBlocks.CABLE),
"storagecraft:cable",
"storagecraft:cable_sensitive"
);
ForgeHooksClient.registerTESRItemStack(Item.getItemFromBlock(StorageCraftBlocks.CABLE), 0, TileCable.class);
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(StorageCraftBlocks.CABLE), 0, new ModelResourceLocation("storagecraft:cable", "inventory"));
MinecraftForge.EVENT_BUS.register(BakeEventHandler.instance);
}
ClientRegistry.bindTileEntitySpecialRenderer(TileCable.class, new BlockCableRenderer());
public static class BakeEventHandler
{
public static final BakeEventHandler instance = new BakeEventHandler();
public BakeEventHandler() {}
@SubscribeEvent
public void onModelBakeEvent(ModelBakeEvent event)
{
event.modelManager.getBlockModelShapes().registerBuiltInBlocks(StorageCraftBlocks.CABLE);
}
}
@Override
@@ -74,6 +90,8 @@ public class ClientProxy extends CommonProxy
{
super.init(e);
ClientRegistry.bindTileEntitySpecialRenderer(TileCable.class, new BlockCableRenderer());
ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
// Items
@@ -128,7 +146,5 @@ public class ClientProxy extends CommonProxy
mesher.register(Item.getItemFromBlock(StorageCraftBlocks.SOLDERER), 0, new ModelResourceLocation("storagecraft:solderer", "inventory"));
mesher.register(Item.getItemFromBlock(StorageCraftBlocks.WIRELESS_TRANSMITTER), 0, new ModelResourceLocation("storagecraft:wireless_transmitter", "inventory"));
mesher.register(Item.getItemFromBlock(StorageCraftBlocks.DETECTOR), 0, new ModelResourceLocation("storagecraft:detector", "inventory"));
mesher.register(Item.getItemFromBlock(StorageCraftBlocks.CABLE), 0, new ModelResourceLocation("storagecraft:cable", "inventory"));
mesher.register(Item.getItemFromBlock(StorageCraftBlocks.CABLE), 1, new ModelResourceLocation("storagecraft:cable_sensitive", "inventory"));
}
}

View File

@@ -51,7 +51,7 @@ public class CommonProxy
GameRegistry.registerTileEntity(TileConstructor.class, "constructor");
GameRegistry.registerBlock(StorageCraftBlocks.CONTROLLER, ItemBlockController.class, "controller");
GameRegistry.registerBlock(StorageCraftBlocks.CABLE, ItemBlockCable.class, "cable");
GameRegistry.registerBlock(StorageCraftBlocks.CABLE, "cable");
GameRegistry.registerBlock(StorageCraftBlocks.GRID, ItemBlockGrid.class, "grid");
GameRegistry.registerBlock(StorageCraftBlocks.DRIVE, "drive");
GameRegistry.registerBlock(StorageCraftBlocks.EXTERNAL_STORAGE, "external_storage");
@@ -140,7 +140,7 @@ public class CommonProxy
SoldererRegistry.addRecipe(new SoldererRecipeDrive());
// Cable
GameRegistry.addRecipe(new ItemStack(StorageCraftBlocks.CABLE, 6, 0),
GameRegistry.addRecipe(new ItemStack(StorageCraftBlocks.CABLE, 6),
"EEE",
"GRG",
"EEE",
@@ -149,12 +149,6 @@ public class CommonProxy
'R', new ItemStack(Items.redstone)
);
// Sensitive Cable
GameRegistry.addShapelessRecipe(new ItemStack(StorageCraftBlocks.CABLE, 1, 1),
new ItemStack(StorageCraftBlocks.CABLE, 1, 0),
new ItemStack(Items.redstone)
);
// Grid
GameRegistry.addRecipe(new ItemStack(StorageCraftBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
"ECE",

View File

@@ -16,7 +16,7 @@ public class BlockCableRenderer extends TileEntitySpecialRenderer
GL11.glPushMatrix();
GL11.glTranslatef((float) x, (float) y, (float) z);
CABLE_MODEL.render((TileCable) tile, 0.0625F);
CABLE_MODEL.render(tile);
GL11.glPopMatrix();
}

View File

@@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
import storagecraft.tile.TileCable;
@@ -11,8 +12,6 @@ import storagecraft.tile.TileCable;
public class CableModel extends ModelBase
{
public static final ResourceLocation CABLE_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable.png");
public static final ResourceLocation CABLE_UNPOWERED_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable_sensitive_unpowered.png");
public static final ResourceLocation CABLE_POWERED_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable_sensitive_powered.png");
private ModelRenderer core;
private ModelRenderer up;
@@ -53,59 +52,45 @@ public class CableModel extends ModelBase
west.setTextureSize(16, 16);
}
public void render(TileCable cable, float x)
public void render(TileEntity tile)
{
if (cable.isSensitiveCable())
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
core.render(0.0625F);
if (tile != null)
{
if (cable.isPowered())
TileCable cable = (TileCable) tile;
if (cable.hasConnection(EnumFacing.UP))
{
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_POWERED_RESOURCE);
up.render(0.0625F);
}
else
if (cable.hasConnection(EnumFacing.DOWN))
{
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_UNPOWERED_RESOURCE);
down.render(0.0625F);
}
}
else
{
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
}
core.render(x);
if (cable.hasConnection(EnumFacing.NORTH))
{
north.render(0.0625F);
}
if (cable.isSensitiveCable())
{
Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE);
}
if (cable.hasConnection(EnumFacing.EAST))
{
east.render(0.0625F);
}
if (cable.hasConnection(EnumFacing.UP))
{
up.render(x);
}
if (cable.hasConnection(EnumFacing.SOUTH))
{
south.render(0.0625F);
}
if (cable.hasConnection(EnumFacing.DOWN))
{
down.render(x);
}
if (cable.hasConnection(EnumFacing.NORTH))
{
north.render(x);
}
if (cable.hasConnection(EnumFacing.EAST))
{
east.render(x);
}
if (cable.hasConnection(EnumFacing.SOUTH))
{
south.render(x);
}
if (cable.hasConnection(EnumFacing.WEST))
{
west.render(x);
if (cable.hasConnection(EnumFacing.WEST))
{
west.render(0.0625F);
}
}
}
}

View File

@@ -18,39 +18,24 @@ public class TileCable extends TileBase
public boolean hasConnection(EnumFacing dir)
{
if (!isCable(worldObj, pos.offset(dir)))
if (!isEnabled())
{
TileEntity tile = worldObj.getTileEntity(pos.offset(dir));
return tile instanceof TileMachine || tile instanceof TileController;
return false;
}
return true;
}
public boolean isPowered()
{
return worldObj.isBlockPowered(pos);
}
public boolean isSensitiveCable()
{
if (worldObj.getBlockState(pos).getBlock() == StorageCraftBlocks.CABLE)
if (isCable(worldObj, pos.offset(dir)))
{
return (Boolean) worldObj.getBlockState(pos).getValue(BlockCable.SENSITIVE);
return true;
}
return false;
TileEntity tile = worldObj.getTileEntity(pos.offset(dir));
return tile instanceof TileMachine || tile instanceof TileController;
}
public boolean isEnabled()
{
if (isSensitiveCable())
{
return !isPowered();
}
return true;
return !worldObj.isBlockPowered(pos);
}
public void addMachines(List<BlockPos> visited, List<TileMachine> machines, TileController controller)

View File

@@ -59,8 +59,7 @@ sidebutton.storagecraft:detector.mode.2=Above the amount
block.storagecraft:controller.0.name=Controller
block.storagecraft:controller.1.name=Creative Controller
block.storagecraft:cable.0.name=Cable
block.storagecraft:cable.1.name=Sensitive Cable
block.storagecraft:cable.name=Cable
block.storagecraft:grid.0.name=Grid
block.storagecraft:grid.1.name=Crafting Grid
block.storagecraft:drive.name=Drive

View File

@@ -1,18 +0,0 @@
{
"parent": "builtin/generated",
"textures": {
"layer0": "storagecraft:items/cable"
},
"display": {
"thirdperson": {
"rotation": [-90, 0, 0],
"translation": [0, 1, -3],
"scale": [0.55, 0.55, 0.55]
},
"firstperson": {
"rotation": [0, -135, 25],
"translation": [0, 4, 2],
"scale": [1.7, 1.7, 1.7]
}
}
}

View File

@@ -1,18 +0,0 @@
{
"parent": "builtin/generated",
"textures": {
"layer0": "storagecraft:items/cable_sensitive"
},
"display": {
"thirdperson": {
"rotation": [-90, 0, 0],
"translation": [0, 1, -3],
"scale": [0.55, 0.55, 0.55]
},
"firstperson": {
"rotation": [0, -135, 25],
"translation": [0, 4, 2],
"scale": [1.7, 1.7, 1.7]
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B