From 32fade11802c1db6ea9d2caa310d571e5f034111 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 19 Apr 2023 21:40:18 -0500 Subject: [PATCH] first test of the new RBMK card component shiz --- .../inventory/recipes/AssemblerRecipes.java | 31 ++++---- src/main/java/com/hbm/items/ModItems.java | 5 ++ .../hbm/items/special/DriverItemCCard.java | 39 ++++++++++ .../java/com/hbm/items/special/ItemCCard.java | 68 ++++++++++++++++++ .../textures/items/rbmk_component_card.png | Bin 0 -> 549 bytes 5 files changed, 128 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/DriverItemCCard.java create mode 100644 src/main/java/com/hbm/items/special/ItemCCard.java create mode 100644 src/main/resources/assets/hbm/textures/items/rbmk_component_card.png diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index c067c89db..536d86df7 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1,18 +1,5 @@ package com.hbm.inventory.recipes; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -21,7 +8,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.OreDictManager; -import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -33,7 +19,6 @@ import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.items.weapon.ItemAmmoHIMARS; import com.hbm.main.MainRegistry; - import cpw.mods.fml.common.Loader; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -42,6 +27,15 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.*; +import java.util.Map.Entry; + +import static com.hbm.inventory.OreDictManager.*; + public class AssemblerRecipes { public static File config; @@ -439,6 +433,13 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); + makeRecipe(new ComparableStack(ModItems.rbmk_component_card, 1), new AStack[] { + new ComparableStack(ModItems.circuit_red_copper, 2), + new OreDictStack(STEEL.plate(), 4), + new ComparableStack(ModItems.wire_gold, 8), + new OreDictStack(ANY_PLASTIC.ingot(), 4), + new OreDictStack(U238.nugget(), 1) + }, 50); makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d63f62630..250e6579c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2430,6 +2430,8 @@ public class ModItems { public static Item nothing; public static Item void_anim; + public static Item rbmk_component_card; + public static Item bob_metalworks; public static Item bob_assembly; public static Item bob_chemistry; @@ -5439,6 +5441,8 @@ public class ModItems { nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); + rbmk_component_card = new ItemCCard().setUnlocalizedName("rbmk_component_card").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rbmk_component_card"); + bob_metalworks = new Item().setUnlocalizedName("bob_metalworks").setTextureName(RefStrings.MODID + ":bob_metalworks"); bob_assembly = new Item().setUnlocalizedName("bob_assembly").setTextureName(RefStrings.MODID + ":bob_assembly"); bob_chemistry = new Item().setUnlocalizedName("bob_chemistry").setTextureName(RefStrings.MODID + ":bob_chemistry"); @@ -8036,6 +8040,7 @@ public class ModItems { GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_component_card, rbmk_component_card.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); GameRegistry.registerItem(bob_chemistry, bob_chemistry.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/DriverItemCCard.java b/src/main/java/com/hbm/items/special/DriverItemCCard.java new file mode 100644 index 000000000..575134759 --- /dev/null +++ b/src/main/java/com/hbm/items/special/DriverItemCCard.java @@ -0,0 +1,39 @@ +package com.hbm.items.special; + +import li.cil.oc.api.Network; +import li.cil.oc.api.driver.item.Container; +import li.cil.oc.api.driver.item.Slot; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.ManagedEnvironment; +import li.cil.oc.api.network.Node; +import li.cil.oc.api.network.Visibility; +import net.minecraft.item.ItemStack; + +public class DriverItemCCard { + public String slot(ItemStack stack) { + return Slot.Card; + } + + public ManagedEnvironment createEnvironment(ItemStack stack, Container container) { + return new Environment(container); + } + + public class Environment extends li.cil.oc.api.prefab.ManagedEnvironment { + protected final Container container; + + public Environment(Container container) { + this.container = container; + Node node = Network.newNode(this, Visibility.Neighbors). + withComponent("particle"). + create(); + } + } + @Callback(direct = true, limit = 16) + public Object[] Greet(Context context, Arguments args) { + + return new Object[] {null}; + } + +} diff --git a/src/main/java/com/hbm/items/special/ItemCCard.java b/src/main/java/com/hbm/items/special/ItemCCard.java new file mode 100644 index 000000000..ef11c977f --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemCCard.java @@ -0,0 +1,68 @@ +package com.hbm.items.special; + +import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +import java.util.List; + +public class ItemCCard extends Item { + + @Mod.EventHandler + public void init(FMLInitializationEvent e) { + li.cil.oc.api.Driver.add((li.cil.oc.api.driver.Item) new DriverItemCCard()); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add("Right-click to link RBMK."); + if(itemstack.getTagCompound() == null) { + list.add(EnumChatFormatting.RED + "No RBMK Linked!"); + } else { + list.add(EnumChatFormatting.YELLOW + "Linked to RBMK at: " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + } + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) { + if(!world.isRemote) { + + if (stack.stackTagCompound == null) { + stack.stackTagCompound = new NBTTagCompound(); + } + Block block = world.getBlock(x, y, z); + + if (block instanceof RBMKBase) { + + RBMKBase rbmk = (RBMKBase) block; + + int[] pos = rbmk.findCore(world, x, y, z); + + if (pos != null) { + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if (te instanceof TileEntityRBMKBase) { + stack.stackTagCompound.setInteger("x", pos[0]); + stack.stackTagCompound.setInteger("y", pos[1]); + stack.stackTagCompound.setInteger("z", pos[2]); + player.addChatMessage(new ChatComponentText("Linked!")); + world.playSoundAtEntity(player, "hbm:item.techBoop", 2.0F, 1.0F); + } + } + } + } + return true; + } + +} diff --git a/src/main/resources/assets/hbm/textures/items/rbmk_component_card.png b/src/main/resources/assets/hbm/textures/items/rbmk_component_card.png new file mode 100644 index 0000000000000000000000000000000000000000..4755e80f376f1746c3ff7c33e6238c3c02e38d42 GIT binary patch literal 549 zcmV+=0^0qFP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0lG;G)+wt(koJI{28joDpD{)(LpJqMWF>jC#!?df}5jID8Z$4adZ|OoCFJE z2M6P#o7!MRXf@I(9tbsm-dygFH^)}FqibI{9NzDo_xa%a*dcoNwc>Zrmi;e@ty@FJ zX7dm;!1kbvv)n(AUG+**sWg4PamGhZlG{JR{M9=m`29~ZA`#MHXs^NAqRZX9!hNBb zPAWGQf9b)%jC+kwPfQ?71!g=~l zWDdls?MZTMe1eHnH>oUdiXQ{P5TcUdeve!_*zn_uW`qFSTD-1!aHYnL3xi~8Z*=YB nl1t&VqPXy#xm;D(c7)(Jobs3VHtBC600000NkvXXu0mjf*9r9o literal 0 HcmV?d00001