aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/api/interfaces/ITileTooltip.java7
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/FishTrap.java15
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java16
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java16
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java13
-rw-r--r--src/Java/gtPlusPlus/core/handler/PacketHandler.java70
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockBasicTile.java38
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_General.java9
-rw-r--r--src/Java/gtPlusPlus/core/recipe/common/CI.java21
-rw-r--r--src/Java/gtPlusPlus/core/util/item/ItemUtils.java2
10 files changed, 199 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/api/interfaces/ITileTooltip.java b/src/Java/gtPlusPlus/api/interfaces/ITileTooltip.java
new file mode 100644
index 0000000000..08866c2712
--- /dev/null
+++ b/src/Java/gtPlusPlus/api/interfaces/ITileTooltip.java
@@ -0,0 +1,7 @@
+package gtPlusPlus.api.interfaces;
+
+public interface ITileTooltip {
+
+ public abstract int getTooltipID();
+
+}
diff --git a/src/Java/gtPlusPlus/core/block/machine/FishTrap.java b/src/Java/gtPlusPlus/core/block/machine/FishTrap.java
index fad1dff490..a08d50d27a 100644
--- a/src/Java/gtPlusPlus/core/block/machine/FishTrap.java
+++ b/src/Java/gtPlusPlus/core/block/machine/FishTrap.java
@@ -5,7 +5,9 @@ import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.GTplusplus;
+import gtPlusPlus.api.interfaces.ITileTooltip;
import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.itemblock.ItemBlockBasicTile;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.tileentities.general.TileEntityFishTrap;
import gtPlusPlus.core.util.inventory.InventoryUtils;
@@ -22,7 +24,7 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
-public class FishTrap extends BlockContainer
+public class FishTrap extends BlockContainer implements ITileTooltip
{
@SideOnly(Side.CLIENT)
private IIcon textureTop;
@@ -31,6 +33,15 @@ public class FishTrap extends BlockContainer
@SideOnly(Side.CLIENT)
private IIcon textureFront;
+ /**
+ * Determines which tooltip is displayed within the itemblock.
+ */
+ private final int mTooltipID = 0;
+
+ @Override
+ public int getTooltipID() {
+ return this.mTooltipID;
+ }
@SuppressWarnings("deprecation")
public FishTrap()
@@ -38,7 +49,7 @@ public class FishTrap extends BlockContainer
super(Material.iron);
this.setBlockName("blockFishTrap");
this.setCreativeTab(AddToCreativeTab.tabMachines);
- GameRegistry.registerBlock(this, "blockFishTrap");
+ GameRegistry.registerBlock(this, ItemBlockBasicTile.class, "blockFishTrap");
LanguageRegistry.addName(this, "Fish Catcher");
}
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java
index bd41980325..46d5994a66 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_ModularityTable.java
@@ -5,8 +5,10 @@ import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.GTplusplus;
+import gtPlusPlus.api.interfaces.ITileTooltip;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.itemblock.ItemBlockBasicTile;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.tileentities.machines.TileEntityModularityTable;
import net.minecraft.block.BlockContainer;
@@ -19,7 +21,7 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
-public class Machine_ModularityTable extends BlockContainer
+public class Machine_ModularityTable extends BlockContainer implements ITileTooltip
{
@SideOnly(Side.CLIENT)
private IIcon textureTop;
@@ -28,13 +30,23 @@ public class Machine_ModularityTable extends BlockContainer
@SideOnly(Side.CLIENT)
private IIcon textureFront;
+ /**
+ * Determines which tooltip is displayed within the itemblock.
+ */
+ private final int mTooltipID = 1;
+
+ @Override
+ public int getTooltipID() {
+ return this.mTooltipID;
+ }
+
@SuppressWarnings("deprecation")
public Machine_ModularityTable()
{
super(Material.iron);
this.setBlockName("blockModularity");
this.setCreativeTab(AddToCreativeTab.tabMachines);
- GameRegistry.registerBlock(this, "blockModularity");
+ GameRegistry.registerBlock(this, ItemBlockBasicTile.class, "blockModularity");
LanguageRegistry.addName(this, "Modularity Configurator");
}
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java
index 712d32aba7..4d48e7e793 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_ProjectTable.java
@@ -6,8 +6,10 @@ import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.GTplusplus;
+import gtPlusPlus.api.interfaces.ITileTooltip;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.core.item.base.itemblock.ItemBlockBasicTile;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.tileentities.machines.TileEntityProjectTable;
@@ -26,7 +28,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO")
-public class Machine_ProjectTable extends BlockContainer
+public class Machine_ProjectTable extends BlockContainer implements ITileTooltip
{
@SideOnly(Side.CLIENT)
private IIcon textureTop;
@@ -35,13 +37,23 @@ public class Machine_ProjectTable extends BlockContainer
@SideOnly(Side.CLIENT)
private IIcon textureFront;
+ /**
+ * Determines which tooltip is displayed within the itemblock.
+ */
+ private final int mTooltipID = 3;
+
+ @Override
+ public int getTooltipID() {
+ return this.mTooltipID;
+ }
+
@SuppressWarnings("deprecation")
public Machine_ProjectTable()
{
super(Material.iron);
this.setBlockName("blockProjectBench");
this.setCreativeTab(AddToCreativeTab.tabMachines);
- GameRegistry.registerBlock(this, "blockProjectBench");
+ GameRegistry.registerBlock(this, ItemBlockBasicTile.class, "blockProjectBench");
LanguageRegistry.addName(this, "Project Workbench");
}
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java b/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java
index 4cad0977ed..ca51b8948c 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_TradeTable.java
@@ -3,6 +3,7 @@ package gtPlusPlus.core.block.machine;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.GTplusplus;
+import gtPlusPlus.api.interfaces.ITileTooltip;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.base.BlockBaseNBT;
import gtPlusPlus.core.lib.CORE;
@@ -16,7 +17,7 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
-public class Machine_TradeTable extends BlockBaseNBT
+public class Machine_TradeTable extends BlockBaseNBT implements ITileTooltip
{
@SideOnly(Side.CLIENT)
private IIcon textureTop;
@@ -25,6 +26,16 @@ public class Machine_TradeTable extends BlockBaseNBT
@SideOnly(Side.CLIENT)
private IIcon textureFront;
+ /**
+ * Determines which tooltip is displayed within the itemblock.
+ */
+ private final int mTooltipID = 2;
+
+ @Override
+ public int getTooltipID() {
+ return this.mTooltipID;
+ }
+
public Machine_TradeTable(){
super(Material.leaves, "blockTradeBench", "Trade-o-Mat");
}
diff --git a/src/Java/gtPlusPlus/core/handler/PacketHandler.java b/src/Java/gtPlusPlus/core/handler/PacketHandler.java
new file mode 100644
index 0000000000..45eae28abc
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/handler/PacketHandler.java
@@ -0,0 +1,70 @@
+package gtPlusPlus.core.handler;
+
+import cpw.mods.fml.common.network.ByteBufUtils;
+import cpw.mods.fml.common.network.NetworkRegistry;
+import cpw.mods.fml.common.network.simpleimpl.IMessage;
+import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
+import cpw.mods.fml.common.network.simpleimpl.MessageContext;
+import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
+import cpw.mods.fml.relauncher.Side;
+import io.netty.buffer.ByteBuf;
+import net.minecraft.entity.player.EntityPlayerMP;
+
+public class PacketHandler {
+
+ public static SimpleNetworkWrapper packetLightning;
+
+ public PacketHandler(){
+ packetLightning = NetworkRegistry.INSTANCE.newSimpleChannel("gtpp_Lightning");
+ packetLightning.registerMessage(Packet_Lightning_Handler.class, Packet_Lightning.class, 0, Side.SERVER);
+ }
+
+
+
+
+ /**
+ * Internal Packet Handlers
+ * @author Alkalus
+ *
+ */
+
+ private class Packet_Lightning implements IMessage{
+
+ public void sendTo(IMessage msg, EntityPlayerMP player){
+ packetLightning.sendTo(msg, player);
+ }
+
+ public void sendToServer(String string){
+ packetLightning.sendToServer(new Packet_Lightning(string));
+ }
+
+ private String text;
+
+ public Packet_Lightning(String text) {
+ this.text = text;
+ }
+
+ @Override
+ public void fromBytes(ByteBuf buf) {
+ text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects
+ }
+
+ @Override
+ public void toBytes(ByteBuf buf) {
+ ByteBufUtils.writeUTF8String(buf, text);
+ }
+
+ }
+
+ private class Packet_Lightning_Handler implements IMessageHandler<Packet_Lightning, IMessage>{
+
+ @Override
+ public IMessage onMessage(Packet_Lightning message, MessageContext ctx) {
+ System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName()));
+ return null; // no response in this case
+ }
+
+ }
+
+
+}
diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockBasicTile.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockBasicTile.java
new file mode 100644
index 0000000000..35be477618
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockBasicTile.java
@@ -0,0 +1,38 @@
+package gtPlusPlus.core.item.base.itemblock;
+
+import java.util.List;
+
+import gtPlusPlus.api.interfaces.ITileTooltip;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+
+public class ItemBlockBasicTile extends ItemBlock{
+
+ private final int mID;
+
+ public ItemBlockBasicTile(final Block block) {
+ super(block);
+ this.mID = ((ITileTooltip) block).getTooltipID();
+ }
+
+ @Override
+ public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) {
+ if (this.mID == 0){ //Fishtrap
+ list.add("This trap catches fish faster if surrounded by more water blocks.");
+ }
+ else if (this.mID == 1){ //Modularity
+ list.add("Used to construct modular armour & bauble upgrades..");
+ }
+ else if (this.mID == 2){ //Trade
+ list.add("Allows for SMP trade-o-mat type trading.");
+ }
+ else if (this.mID == 3){ //Project
+ list.add("Scan any crafting recipe in this to mass fabricate them in the Autocrafter..");
+ }
+ //super.addInformation(stack, aPlayer, list, bool);
+ }
+
+
+}
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
index 19cf6da51c..6bbe28dd6e 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_General.java
@@ -122,6 +122,15 @@ public class RECIPES_General {
Logger.INFO("Added a recipe for the Fish Trap.");
}
+ //Mining Explosive
+ if (RecipeUtils.recipeBuilder(
+ CI.explosiveITNT, CI.explosiveTNT, CI.explosiveITNT,
+ CI.explosiveTNT, "frameGtWroughtIron", CI.explosiveTNT,
+ "dustSulfur", CI.explosiveTNT, "dustSulfur",
+ ItemUtils.getSimpleStack(ModBlocks.blockMiningExplosive))){
+ Logger.INFO("Added a recipe for Mining Explosives.");
+ }
+
//Alkalus Coin
if (RecipeUtils.recipeBuilder(
diff --git a/src/Java/gtPlusPlus/core/recipe/common/CI.java b/src/Java/gtPlusPlus/core/recipe/common/CI.java
index 9159025922..f9dc105792 100644
--- a/src/Java/gtPlusPlus/core/recipe/common/CI.java
+++ b/src/Java/gtPlusPlus/core/recipe/common/CI.java
@@ -11,6 +11,9 @@ import gtPlusPlus.core.recipe.LOADER_Machine_Components;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import ic2.core.Ic2Items;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
public class CI {
@@ -162,8 +165,26 @@ public class CI {
public static String craftingToolCrowbar = "craftingToolCrowbar";
public static String craftingToolWireCutter = "craftingToolWirecutter";
public static String craftingToolSolderingIron = "craftingToolSolderingIron";
+
+ //Explosives
+ public static ItemStack explosivePowderKeg;
+ public static ItemStack explosiveTNT;
+ public static ItemStack explosiveITNT;
public static void Init(){
+
+ //Set Explosives
+ if (ItemList.valueOf("Block_Powderbarrel") != null){
+ explosivePowderKeg = ItemList.valueOf("Block_Powderbarrel").get(1);
+ }
+ else {
+ explosivePowderKeg = ItemUtils.getSimpleStack(Items.gunpowder);
+ }
+ explosiveTNT = ItemUtils.getSimpleStack(Blocks.tnt);
+ explosiveITNT = Ic2Items.industrialTnt.copy();
+
+
+
//Tiered Components
component_Plate = new String[]{
diff --git a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
index be75de893a..3d21a845bc 100644
--- a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
+++ b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
@@ -51,7 +51,7 @@ public class ItemUtils {
public static ItemStack getSimpleStack(final Item x, final int i){
try {
final ItemStack r = new ItemStack(x, i);
- return r;
+ return r.copy();
} catch(final Throwable e){
return null;
}