diff options
Diffstat (limited to 'src/Java/gtPlusPlus')
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; } |