mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-08-10 17:55:44 +00:00
Merge branch 'HbmMods:master' into rulang121
This commit is contained in:
commit
f028752058
@ -75,6 +75,12 @@
|
|||||||
* Using state of the art anti-leave-the-screen technology, recipe tooltips (and most tooltips used by `GuiInfoScreen`) should no longer leave the screen
|
* Using state of the art anti-leave-the-screen technology, recipe tooltips (and most tooltips used by `GuiInfoScreen`) should no longer leave the screen
|
||||||
* This means that the recipe selector can now have the tooltip follow the mouse instead of being eternally stuck in the corner
|
* This means that the recipe selector can now have the tooltip follow the mouse instead of being eternally stuck in the corner
|
||||||
* Recipe selector tooltips now have a nice orange and yellow border
|
* Recipe selector tooltips now have a nice orange and yellow border
|
||||||
|
* The nuclear charge and demolition nuclear grenade charge now need neutron reflectors
|
||||||
|
* Schrabidium grenade charges now use CMB steel instead of bronze
|
||||||
|
* The satellite base now only uses a medium thruster instead of a large one, making it no longer post pyrolysis
|
||||||
|
* The steel recipe in the crucible now requires flux
|
||||||
|
* The recipe is also now a fair bit slower (still faster than a blast furnace overall)
|
||||||
|
* Remodeled the catalytic reformer
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed RoR graph showing the wrong name in the GUI
|
* Fixed RoR graph showing the wrong name in the GUI
|
||||||
|
|||||||
@ -1212,6 +1212,7 @@ public class ModBlocks {
|
|||||||
public static Block wand_structure;
|
public static Block wand_structure;
|
||||||
|
|
||||||
public static Block logic_block;
|
public static Block logic_block;
|
||||||
|
public static Block logic_block_invis;
|
||||||
|
|
||||||
public static Material materialGas = new MaterialGas();
|
public static Material materialGas = new MaterialGas();
|
||||||
|
|
||||||
@ -2348,6 +2349,7 @@ public class ModBlocks {
|
|||||||
wand_structure = new BlockWandStructure().setBlockName("wand_structure");
|
wand_structure = new BlockWandStructure().setBlockName("wand_structure");
|
||||||
|
|
||||||
logic_block = new LogicBlock().setBlockName("logic_block").setBlockTextureName(RefStrings.MODID + ":logic_block");
|
logic_block = new LogicBlock().setBlockName("logic_block").setBlockTextureName(RefStrings.MODID + ":logic_block");
|
||||||
|
logic_block_invis = new LogicBlockInvis().setBlockName("logic_block_invis").setBlockTextureName(RefStrings.MODID + ":logic_block");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3485,6 +3487,7 @@ public class ModBlocks {
|
|||||||
register(wand_structure);
|
register(wand_structure);
|
||||||
|
|
||||||
register(logic_block);
|
register(logic_block);
|
||||||
|
register(logic_block_invis);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void register(Block b) {
|
private static void register(Block b) {
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.hbm.blocks.IBlockSideRotation;
|
|||||||
import com.hbm.blocks.ILookOverlay;
|
import com.hbm.blocks.ILookOverlay;
|
||||||
import com.hbm.blocks.ITooltipProvider;
|
import com.hbm.blocks.ITooltipProvider;
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.config.ServerConfig;
|
||||||
import com.hbm.config.StructureConfig;
|
import com.hbm.config.StructureConfig;
|
||||||
import com.hbm.interfaces.IBomb;
|
import com.hbm.interfaces.IBomb;
|
||||||
import com.hbm.interfaces.ICopiable;
|
import com.hbm.interfaces.ICopiable;
|
||||||
@ -116,6 +117,7 @@ public class BlockWandLogic extends BlockContainer implements ILookOverlay, IToo
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return super.onBlockActivated(world, x, y, z, player, side, fX, fY, fZ);
|
return super.onBlockActivated(world, x, y, z, player, side, fX, fY, fZ);
|
||||||
}
|
}
|
||||||
@ -218,7 +220,7 @@ public class BlockWandLogic extends BlockContainer implements ILookOverlay, IToo
|
|||||||
public int placedRotation;
|
public int placedRotation;
|
||||||
|
|
||||||
Block disguise;
|
Block disguise;
|
||||||
int disguiseMeta = -1;
|
int disguiseMeta = 0;
|
||||||
|
|
||||||
public String actionID = "FODDER_WAVE";
|
public String actionID = "FODDER_WAVE";
|
||||||
public String conditionID = "PLAYER_CUBE_5";
|
public String conditionID = "PLAYER_CUBE_5";
|
||||||
@ -237,35 +239,38 @@ public class BlockWandLogic extends BlockContainer implements ILookOverlay, IToo
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void replace() {
|
private void replace() {
|
||||||
if (!(worldObj.getBlock(xCoord, yCoord, zCoord) instanceof BlockWandLogic)) {
|
if(!worldObj.isRemote) {
|
||||||
MainRegistry.logger.warn("Somehow the block at: " + xCoord + ", " + yCoord + ", " + zCoord + " isn't a logic block but we're doing a TE update as if it is, cancelling!");
|
if (!(worldObj.getBlock(xCoord, yCoord, zCoord) instanceof BlockWandLogic)) {
|
||||||
return;
|
MainRegistry.logger.warn("Somehow the block at: " + xCoord + ", " + yCoord + ", " + zCoord + " isn't a logic block but we're doing a TE update as if it is, cancelling!");
|
||||||
}
|
return;
|
||||||
worldObj.setBlock(xCoord,yCoord,zCoord, ModBlocks.logic_block);
|
}
|
||||||
|
|
||||||
TileEntity te = worldObj.getTileEntity(xCoord, yCoord, zCoord);
|
worldObj.setBlock(xCoord, yCoord, zCoord, disguise == null ? ModBlocks.logic_block_invis : ModBlocks.logic_block, 0, 3);
|
||||||
|
|
||||||
if(te == null || te instanceof BlockWandLoot.TileEntityWandLoot) {
|
TileEntity te = worldObj.getTileEntity(xCoord, yCoord, zCoord);
|
||||||
MainRegistry.logger.warn("TE for logic block set incorrectly at: " + xCoord + ", " + yCoord + ", " + zCoord + ". If you're using some sort of world generation mod, report it to the author!");
|
|
||||||
te = ModBlocks.wand_logic.createTileEntity(worldObj, 0);
|
|
||||||
worldObj.setTileEntity(xCoord, yCoord, zCoord, te);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(te instanceof LogicBlock.TileEntityLogicBlock){
|
if (te == null || te instanceof BlockWandLoot.TileEntityWandLoot) {
|
||||||
LogicBlock.TileEntityLogicBlock logic = (LogicBlock.TileEntityLogicBlock) te;
|
MainRegistry.logger.warn("TE for logic block set incorrectly at: " + xCoord + ", " + yCoord + ", " + zCoord + ". If you're using some sort of world generation mod, report it to the author!");
|
||||||
logic.actionID = actionID;
|
te = ModBlocks.wand_logic.createTileEntity(worldObj, 0);
|
||||||
logic.conditionID = conditionID;
|
worldObj.setTileEntity(xCoord, yCoord, zCoord, te);
|
||||||
logic.interactionID = interactionID;
|
}
|
||||||
logic.direction = ForgeDirection.getOrientation(placedRotation);
|
|
||||||
logic.disguise = disguise;
|
if (te instanceof LogicBlock.TileEntityLogicBlock) {
|
||||||
logic.disguiseMeta = disguiseMeta;
|
LogicBlock.TileEntityLogicBlock logic = (LogicBlock.TileEntityLogicBlock) te;
|
||||||
|
logic.actionID = actionID;
|
||||||
|
logic.conditionID = conditionID;
|
||||||
|
logic.interactionID = interactionID;
|
||||||
|
logic.direction = ForgeDirection.getOrientation(placedRotation);
|
||||||
|
logic.disguise = disguise;
|
||||||
|
logic.disguiseMeta = disguiseMeta;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void transformTE(World world, int coordBaseMode) {
|
public void transformTE(World world, int coordBaseMode) {
|
||||||
triggerReplace = !StructureConfig.debugStructures;
|
triggerReplace = !ServerConfig.STRUCTURE_DEBUG.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -323,6 +328,7 @@ public class BlockWandLogic extends BlockContainer implements ILookOverlay, IToo
|
|||||||
nbt.setString("conditionID", conditionID);
|
nbt.setString("conditionID", conditionID);
|
||||||
if(interactionID != null)
|
if(interactionID != null)
|
||||||
nbt.setString("interactionID", interactionID);
|
nbt.setString("interactionID", interactionID);
|
||||||
|
nbt.setInteger("rotation", placedRotation);
|
||||||
if(disguise != null){
|
if(disguise != null){
|
||||||
nbt.setString("disguise", GameRegistry.findUniqueIdentifierFor(disguise).toString());
|
nbt.setString("disguise", GameRegistry.findUniqueIdentifierFor(disguise).toString());
|
||||||
nbt.setInteger("disguiseMeta", disguiseMeta);
|
nbt.setInteger("disguiseMeta", disguiseMeta);
|
||||||
@ -336,6 +342,7 @@ public class BlockWandLogic extends BlockContainer implements ILookOverlay, IToo
|
|||||||
actionID = nbt.getString("actionID");
|
actionID = nbt.getString("actionID");
|
||||||
conditionID = nbt.getString("conditionID");
|
conditionID = nbt.getString("conditionID");
|
||||||
interactionID = nbt.getString("interactionID");
|
interactionID = nbt.getString("interactionID");
|
||||||
|
placedRotation = nbt.getInteger("disguiseMeta");
|
||||||
if(nbt.hasKey("disguise")){
|
if(nbt.hasKey("disguise")){
|
||||||
disguise = Block.getBlockFromName(nbt.getString("disguise"));
|
disguise = Block.getBlockFromName(nbt.getString("disguise"));
|
||||||
disguiseMeta = nbt.getInteger("disguiseMeta");
|
disguiseMeta = nbt.getInteger("disguiseMeta");
|
||||||
|
|||||||
@ -9,11 +9,16 @@ import com.hbm.blocks.IBlockSideRotation;
|
|||||||
import com.hbm.blocks.ILookOverlay;
|
import com.hbm.blocks.ILookOverlay;
|
||||||
import com.hbm.blocks.ITooltipProvider;
|
import com.hbm.blocks.ITooltipProvider;
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.config.ServerConfig;
|
||||||
import com.hbm.config.StructureConfig;
|
import com.hbm.config.StructureConfig;
|
||||||
|
import com.hbm.interfaces.IBomb;
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
import com.hbm.itempool.ItemPool;
|
import com.hbm.itempool.ItemPool;
|
||||||
|
import com.hbm.items.tool.ItemLock;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityLockableBase;
|
||||||
import com.hbm.util.BufferUtil;
|
import com.hbm.util.BufferUtil;
|
||||||
import com.hbm.util.LootGenerator;
|
import com.hbm.util.LootGenerator;
|
||||||
import com.hbm.util.i18n.I18nUtil;
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
@ -33,6 +38,7 @@ import net.minecraft.client.renderer.texture.IIconRegister;
|
|||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
@ -47,7 +53,7 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
|||||||
import net.minecraftforge.common.util.FakePlayer;
|
import net.minecraftforge.common.util.FakePlayer;
|
||||||
import net.minecraftforge.common.util.FakePlayerFactory;
|
import net.minecraftforge.common.util.FakePlayerFactory;
|
||||||
|
|
||||||
public class BlockWandLoot extends BlockContainer implements ILookOverlay, IToolable, ITooltipProvider, IBlockSideRotation {
|
public class BlockWandLoot extends BlockContainer implements ILookOverlay, IToolable, ITooltipProvider, IBlockSideRotation, IBomb {
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT) protected IIcon iconTop;
|
@SideOnly(Side.CLIENT) protected IIcon iconTop;
|
||||||
|
|
||||||
@ -110,6 +116,11 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
text.add("Maximum items: " + loot.maxItems);
|
text.add("Maximum items: " + loot.maxItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(loot.lockCode != 0){
|
||||||
|
text.add("Container will be locked");
|
||||||
|
text.add("Lockpicking chance:" + loot.lockMod);
|
||||||
|
}
|
||||||
|
|
||||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,6 +159,12 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ItemStack held = player.getHeldItem();
|
||||||
|
if(held != null && held.getItem() instanceof ItemLock){
|
||||||
|
loot.lockMod = (float) ((ItemLock)held.getItem()).lockMod;
|
||||||
|
loot.lockCode = ItemLock.getPins(held);
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,12 +228,23 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BombReturnCode explode(World world, int x, int y, int z) {
|
||||||
|
TileEntity te = world.getTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if(!(te instanceof BlockWandLoot.TileEntityWandLoot)) return null;
|
||||||
|
|
||||||
|
((BlockWandLoot.TileEntityWandLoot) te).triggerReplace = true;
|
||||||
|
|
||||||
|
return BombReturnCode.TRIGGERED;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World world, int meta) {
|
public TileEntity createNewTileEntity(World world, int meta) {
|
||||||
return new TileEntityWandLoot();
|
return new TileEntityWandLoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TileEntityWandLoot extends TileEntityLoadedBase implements INBTTileEntityTransformable {
|
public static class TileEntityWandLoot extends TileEntityLoadedBase implements INBTTileEntityTransformable, ICopiable {
|
||||||
|
|
||||||
private boolean triggerReplace;
|
private boolean triggerReplace;
|
||||||
|
|
||||||
@ -229,6 +257,10 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
|
|
||||||
private float placedRotation;
|
private float placedRotation;
|
||||||
|
|
||||||
|
private float lockMod = 0;
|
||||||
|
private int lockCode = 0;
|
||||||
|
private boolean cheesable = true;
|
||||||
|
|
||||||
private static final GameProfile FAKE_PROFILE = new GameProfile(UUID.fromString("839eb18c-50bc-400c-8291-9383f09763e7"), "[NTM]");
|
private static final GameProfile FAKE_PROFILE = new GameProfile(UUID.fromString("839eb18c-50bc-400c-8291-9383f09763e7"), "[NTM]");
|
||||||
private static FakePlayer fakePlayer;
|
private static FakePlayer fakePlayer;
|
||||||
|
|
||||||
@ -266,6 +298,12 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
worldObj.setTileEntity(xCoord, yCoord, zCoord, te);
|
worldObj.setTileEntity(xCoord, yCoord, zCoord, te);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(te instanceof TileEntityLockableBase && lockCode != 0){
|
||||||
|
((TileEntityLockableBase) te).setPins(lockCode);
|
||||||
|
((TileEntityLockableBase) te).setMod(lockMod);
|
||||||
|
((TileEntityLockableBase) te).cheesable = lockMod != 0;
|
||||||
|
((TileEntityLockableBase) te).lock();
|
||||||
|
}
|
||||||
if(te instanceof IInventory) {
|
if(te instanceof IInventory) {
|
||||||
int count = minItems;
|
int count = minItems;
|
||||||
if(maxItems - minItems > 0) count += worldObj.rand.nextInt(maxItems - minItems);
|
if(maxItems - minItems > 0) count += worldObj.rand.nextInt(maxItems - minItems);
|
||||||
@ -303,7 +341,7 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void transformTE(World world, int coordBaseMode) {
|
public void transformTE(World world, int coordBaseMode) {
|
||||||
triggerReplace = !StructureConfig.debugStructures;
|
triggerReplace = !ServerConfig.STRUCTURE_DEBUG.get();
|
||||||
placedRotation = MathHelper.wrapAngleTo180_float(placedRotation + coordBaseMode * 90);
|
placedRotation = MathHelper.wrapAngleTo180_float(placedRotation + coordBaseMode * 90);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,6 +356,10 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
nbt.setString("pool", poolName);
|
nbt.setString("pool", poolName);
|
||||||
nbt.setFloat("rot", placedRotation);
|
nbt.setFloat("rot", placedRotation);
|
||||||
|
|
||||||
|
nbt.setInteger("lockCode", lockCode);
|
||||||
|
nbt.setFloat("lockMod", lockMod);
|
||||||
|
nbt.setBoolean("cheesable", cheesable);
|
||||||
|
|
||||||
nbt.setBoolean("trigger", triggerReplace);
|
nbt.setBoolean("trigger", triggerReplace);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,6 +375,10 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
|
|
||||||
if(replaceBlock == null) replaceBlock = ModBlocks.deco_loot;
|
if(replaceBlock == null) replaceBlock = ModBlocks.deco_loot;
|
||||||
|
|
||||||
|
lockCode = nbt.getInteger("lockCode");
|
||||||
|
lockMod = nbt.getFloat("lockMod");
|
||||||
|
cheesable = nbt.getBoolean("cheesable");
|
||||||
|
|
||||||
triggerReplace = nbt.getBoolean("trigger");
|
triggerReplace = nbt.getBoolean("trigger");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,6 +389,11 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
buf.writeInt(minItems);
|
buf.writeInt(minItems);
|
||||||
buf.writeInt(maxItems);
|
buf.writeInt(maxItems);
|
||||||
BufferUtil.writeString(buf, poolName);
|
BufferUtil.writeString(buf, poolName);
|
||||||
|
|
||||||
|
buf.writeInt(lockCode);
|
||||||
|
buf.writeFloat(lockMod);
|
||||||
|
buf.writeBoolean(cheesable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -352,8 +403,43 @@ public class BlockWandLoot extends BlockContainer implements ILookOverlay, ITool
|
|||||||
minItems = buf.readInt();
|
minItems = buf.readInt();
|
||||||
maxItems = buf.readInt();
|
maxItems = buf.readInt();
|
||||||
poolName = BufferUtil.readString(buf);
|
poolName = BufferUtil.readString(buf);
|
||||||
|
|
||||||
|
lockCode = buf.readInt();
|
||||||
|
lockMod = buf.readFloat();
|
||||||
|
cheesable = buf.readBoolean();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
Block block = replaceBlock != null ? replaceBlock : ModBlocks.deco_loot;
|
||||||
|
|
||||||
|
nbt.setInteger("replaceBlock", Block.getIdFromBlock(block));
|
||||||
|
nbt.setInteger("replaceMeta", replaceMeta);
|
||||||
|
nbt.setInteger("minItems", minItems);
|
||||||
|
nbt.setInteger("maxItems", maxItems);
|
||||||
|
nbt.setString("poolName", poolName);
|
||||||
|
|
||||||
|
nbt.setInteger("lockCode", lockCode);
|
||||||
|
nbt.setFloat("lockMod", lockMod);
|
||||||
|
nbt.setBoolean("cheesable", cheesable);
|
||||||
|
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
replaceBlock = Block.getBlockById(nbt.getInteger("replaceBlock"));
|
||||||
|
replaceMeta = nbt.getInteger("replaceMeta");
|
||||||
|
minItems = nbt.getInteger("minItems");
|
||||||
|
maxItems = nbt.getInteger("maxItems");
|
||||||
|
poolName = nbt.getString("poolName");
|
||||||
|
|
||||||
|
lockCode = nbt.getInteger("lockCode");
|
||||||
|
lockMod = nbt.getFloat("lockMod");
|
||||||
|
cheesable = nbt.getBoolean("cheesable");
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -8,6 +8,7 @@ import java.util.HashSet;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.hbm.config.ServerConfig;
|
||||||
import org.lwjgl.input.Keyboard;
|
import org.lwjgl.input.Keyboard;
|
||||||
|
|
||||||
import com.hbm.blocks.IBlockMulti;
|
import com.hbm.blocks.IBlockMulti;
|
||||||
@ -228,8 +229,9 @@ public class BlockWandStructure extends BlockContainer implements IBlockMulti, I
|
|||||||
|
|
||||||
File structureFile = new File(structureDirectory, name + ".nbt");
|
File structureFile = new File(structureDirectory, name + ".nbt");
|
||||||
|
|
||||||
boolean previousDebug = StructureConfig.debugStructures;
|
boolean debug = !worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord);
|
||||||
StructureConfig.debugStructures = true;
|
boolean previousDebug = ServerConfig.STRUCTURE_DEBUG.get();
|
||||||
|
ServerConfig.STRUCTURE_DEBUG.set(debug);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
NBTStructure structure = new NBTStructure(structureFile);
|
NBTStructure structure = new NBTStructure(structureFile);
|
||||||
@ -247,7 +249,7 @@ public class BlockWandStructure extends BlockContainer implements IBlockMulti, I
|
|||||||
} catch (FileNotFoundException ex) {
|
} catch (FileNotFoundException ex) {
|
||||||
player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Could not load: file not found"));
|
player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Could not load: file not found"));
|
||||||
} finally {
|
} finally {
|
||||||
StructureConfig.debugStructures = previousDebug;
|
ServerConfig.STRUCTURE_DEBUG.set(previousDebug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.hbm.blocks.generic;
|
package com.hbm.blocks.generic;
|
||||||
|
|
||||||
|
import com.hbm.blocks.IBlockSideRotation;
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.world.gen.util.LogicBlockActions;
|
import com.hbm.world.gen.util.LogicBlockActions;
|
||||||
import com.hbm.world.gen.util.LogicBlockConditions;
|
import com.hbm.world.gen.util.LogicBlockConditions;
|
||||||
import com.hbm.world.gen.util.LogicBlockInteractions;
|
import com.hbm.world.gen.util.LogicBlockInteractions;
|
||||||
@ -50,6 +52,15 @@ public class LogicBlock extends BlockContainer {
|
|||||||
return super.getIcon(world, x, y, z, side);
|
return super.getIcon(world, x, y, z, side);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@Override
|
||||||
|
public boolean isOpaqueCube() {
|
||||||
|
return this != ModBlocks.logic_block_invis;
|
||||||
|
this == ModBlocks.logic_block_invis ? -1 :
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ) {
|
public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float subX, float subY, float subZ) {
|
||||||
TileEntity te = worldIn.getTileEntity(x, y, z);
|
TileEntity te = worldIn.getTileEntity(x, y, z);
|
||||||
@ -84,6 +95,9 @@ public class LogicBlock extends BlockContainer {
|
|||||||
public EntityPlayer player;
|
public EntityPlayer player;
|
||||||
|
|
||||||
public ForgeDirection direction = ForgeDirection.UNKNOWN;
|
public ForgeDirection direction = ForgeDirection.UNKNOWN;
|
||||||
|
|
||||||
|
boolean disguised = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity() {
|
public void updateEntity() {
|
||||||
|
|
||||||
@ -110,8 +124,14 @@ public class LogicBlock extends BlockContainer {
|
|||||||
timer++;
|
timer++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!disguised){
|
||||||
|
markDirty();
|
||||||
|
worldObj.markBlockForUpdate(xCoord,yCoord,zCoord);
|
||||||
|
disguised = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToNBT(NBTTagCompound nbt) {
|
public void writeToNBT(NBTTagCompound nbt) {
|
||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
@ -156,6 +176,7 @@ public class LogicBlock extends BlockContainer {
|
|||||||
@Override
|
@Override
|
||||||
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
|
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
|
||||||
this.readFromNBT(pkt.func_148857_g());
|
this.readFromNBT(pkt.func_148857_g());
|
||||||
|
worldObj.markBlockForUpdate(xCoord,yCoord,zCoord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
21
src/main/java/com/hbm/blocks/generic/LogicBlockInvis.java
Normal file
21
src/main/java/com/hbm/blocks/generic/LogicBlockInvis.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package com.hbm.blocks.generic;
|
||||||
|
|
||||||
|
import com.hbm.blocks.IBlockSideRotation;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
|
||||||
|
public class LogicBlockInvis extends LogicBlock{
|
||||||
|
|
||||||
|
public LogicBlockInvis() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOpaqueCube() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRenderType() {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -59,7 +59,7 @@ public class RedBarrel extends BlockDetonatable {
|
|||||||
} else if(this == ModBlocks.lox_barrel) {
|
} else if(this == ModBlocks.lox_barrel) {
|
||||||
world.newExplosion(entity, x, y, z, 1F, false, false);
|
world.newExplosion(entity, x, y, z, 1F, false, false);
|
||||||
|
|
||||||
ExplosionThermo.freeze(world, ix, iy, iz, 7);
|
ExplosionThermo.freezer(world, ix, iy, iz, 7);
|
||||||
} else if(this == ModBlocks.taint_barrel) {
|
} else if(this == ModBlocks.taint_barrel) {
|
||||||
world.newExplosion(entity, x, y, z, 1F, false, false);
|
world.newExplosion(entity, x, y, z, 1F, false, false);
|
||||||
|
|
||||||
|
|||||||
@ -79,6 +79,7 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro
|
|||||||
public float spin;
|
public float spin;
|
||||||
public float prevSpin;
|
public float prevSpin;
|
||||||
public boolean falloff = true;
|
public boolean falloff = true;
|
||||||
|
public boolean suck = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity() {
|
public void updateEntity() {
|
||||||
@ -120,6 +121,7 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro
|
|||||||
double dist = e.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);
|
double dist = e.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);
|
||||||
coeff *= 1.5 * (1 - dist / range / 2);
|
coeff *= 1.5 * (1 - dist / range / 2);
|
||||||
}
|
}
|
||||||
|
if(suck) coeff *= -1;
|
||||||
|
|
||||||
e.motionX += dir.offsetX * coeff;
|
e.motionX += dir.offsetX * coeff;
|
||||||
e.motionY += dir.offsetY * coeff;
|
e.motionY += dir.offsetY * coeff;
|
||||||
@ -127,7 +129,7 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(worldObj.isRemote && worldObj.rand.nextInt(30) == 0) {
|
if(worldObj.isRemote && worldObj.rand.nextInt(30) == 0) {
|
||||||
double speed = 0.2;
|
double speed = suck ? -0.2 : 0.2;
|
||||||
worldObj.spawnParticle("cloud", xCoord + 0.5 + dir.offsetX * 0.5, yCoord + 0.5 + dir.offsetY * 0.5, zCoord + 0.5 + dir.offsetZ * 0.5, dir.offsetX * speed, dir.offsetY * speed, dir.offsetZ * speed);
|
worldObj.spawnParticle("cloud", xCoord + 0.5 + dir.offsetX * 0.5, yCoord + 0.5 + dir.offsetY * 0.5, zCoord + 0.5 + dir.offsetZ * 0.5, dir.offsetX * speed, dir.offsetY * speed, dir.offsetZ * speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,22 +156,26 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro
|
|||||||
public void readFromNBT(NBTTagCompound nbt) {
|
public void readFromNBT(NBTTagCompound nbt) {
|
||||||
super.readFromNBT(nbt);
|
super.readFromNBT(nbt);
|
||||||
this.falloff = nbt.getBoolean("falloff");
|
this.falloff = nbt.getBoolean("falloff");
|
||||||
|
this.suck = nbt.getBoolean("suck");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToNBT(NBTTagCompound nbt) {
|
public void writeToNBT(NBTTagCompound nbt) {
|
||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
nbt.setBoolean("falloff", falloff);
|
nbt.setBoolean("falloff", falloff);
|
||||||
|
nbt.setBoolean("suck", suck);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void serialize(ByteBuf buf) {
|
public void serialize(ByteBuf buf) {
|
||||||
buf.writeBoolean(falloff);
|
buf.writeBoolean(falloff);
|
||||||
|
buf.writeBoolean(suck);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deserialize(ByteBuf buf) {
|
public void deserialize(ByteBuf buf) {
|
||||||
falloff = buf.readBoolean();
|
falloff = buf.readBoolean();
|
||||||
|
suck = buf.readBoolean();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,6 +208,24 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(tool == ToolType.DEFUSER) {
|
||||||
|
TileEntityFan tile = (TileEntityFan) world.getTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if(tile != null) {
|
||||||
|
tile.suck = !tile.suck;
|
||||||
|
tile.markDirty();
|
||||||
|
|
||||||
|
if(!world.isRemote) {
|
||||||
|
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation(this.getUnlocalizedName() + (tile.suck ? ".suckOn" : ".suckOff")).color(EnumChatFormatting.GOLD).flush(), MainRegistry.proxy.ID_FAN_MODE), (EntityPlayerMP) player);
|
||||||
|
|
||||||
|
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.click", 0.5F, 0.5F);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,9 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
|||||||
import com.hbm.util.ChatBuilder;
|
import com.hbm.util.ChatBuilder;
|
||||||
import com.hbm.util.DamageResistanceHandler;
|
import com.hbm.util.DamageResistanceHandler;
|
||||||
|
|
||||||
|
import com.hbm.world.gen.util.LogicBlockActions;
|
||||||
|
import com.hbm.world.gen.util.LogicBlockConditions;
|
||||||
|
import com.hbm.world.gen.util.LogicBlockInteractions;
|
||||||
import net.minecraft.command.CommandBase;
|
import net.minecraft.command.CommandBase;
|
||||||
import net.minecraft.command.ICommandSender;
|
import net.minecraft.command.ICommandSender;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
@ -34,6 +37,11 @@ public class CommandReloadRecipes extends CommandBase {
|
|||||||
ItemPoolConfigJSON.initialize();
|
ItemPoolConfigJSON.initialize();
|
||||||
DamageResistanceHandler.init();
|
DamageResistanceHandler.init();
|
||||||
|
|
||||||
|
LogicBlockActions.initialize();
|
||||||
|
LogicBlockConditions.initialize();
|
||||||
|
LogicBlockInteractions.initialize();
|
||||||
|
|
||||||
|
|
||||||
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)"));
|
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)"));
|
||||||
} catch(Exception ex) {
|
} catch(Exception ex) {
|
||||||
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
|
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
|
||||||
|
|||||||
@ -21,6 +21,7 @@ public class ServerConfig extends RunningConfig {
|
|||||||
public static ConfigWrapper<Boolean> CRATE_KEEP_CONTENTS = new ConfigWrapper(true);
|
public static ConfigWrapper<Boolean> CRATE_KEEP_CONTENTS = new ConfigWrapper(true);
|
||||||
public static ConfigWrapper<Integer> ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2);
|
public static ConfigWrapper<Integer> ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2);
|
||||||
public static ConfigWrapper<Boolean> ENABLE_MKU = new ConfigWrapper(true);
|
public static ConfigWrapper<Boolean> ENABLE_MKU = new ConfigWrapper(true);
|
||||||
|
public static ConfigWrapper<Boolean> STRUCTURE_DEBUG = new ConfigWrapper(false);
|
||||||
public static ConfigWrapper<Integer> AUTOCAL_MAX_CLOCK = new ConfigWrapper(20);
|
public static ConfigWrapper<Integer> AUTOCAL_MAX_CLOCK = new ConfigWrapper(20);
|
||||||
|
|
||||||
private static void initDefaults() {
|
private static void initDefaults() {
|
||||||
@ -35,6 +36,7 @@ public class ServerConfig extends RunningConfig {
|
|||||||
configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS);
|
configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS);
|
||||||
configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE);
|
configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE);
|
||||||
configMap.put("ENABLE_MKU", ENABLE_MKU);
|
configMap.put("ENABLE_MKU", ENABLE_MKU);
|
||||||
|
configMap.put("STRUCTURE_DEBUG", STRUCTURE_DEBUG);
|
||||||
configMap.put("AUTOCAL_MAX_CLOCK", AUTOCAL_MAX_CLOCK);
|
configMap.put("AUTOCAL_MAX_CLOCK", AUTOCAL_MAX_CLOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -277,8 +277,8 @@ public class WeaponRecipes {
|
|||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 4, EnumGrenadeFilling.PLASMA.ordinal()), new Object[] { " C ", "KWK", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR_BOARD), 'K', ModItems.cell_tritium, 'W', WEAPONSTEEL.plate() });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 4, EnumGrenadeFilling.PLASMA.ordinal()), new Object[] { " C ", "KWK", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR_BOARD), 'K', ModItems.cell_tritium, 'W', WEAPONSTEEL.plate() });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 4, EnumGrenadeFilling.LASER.ordinal()), new Object[] { " C ", "KWK", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK), 'K', ModItems.crystal_redstone, 'W', WEAPONSTEEL.plate() });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 4, EnumGrenadeFilling.LASER.ordinal()), new Object[] { " C ", "KWK", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK), 'K', ModItems.crystal_redstone, 'W', WEAPONSTEEL.plate() });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.NUCLEAR.ordinal()), new Object[] { " T ", "CPC", " T ", 'T', ModItems.ball_tatb, 'C', WEAPONSTEEL.plate(), 'P', PU239.nugget() });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.NUCLEAR.ordinal()), new Object[] { " T ", "CPC", " T ", 'T', ModItems.ball_tatb, 'C', WEAPONSTEEL.plate(), 'P', PU239.nugget() });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.NUCLEAR_DEMO.ordinal()), new Object[] { "TPT", "CPC", "TPT", 'T', ModItems.ball_tatb, 'C', WEAPONSTEEL.plate(), 'P', PU239.nugget() });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.NUCLEAR_DEMO.ordinal()), new Object[] { "TPT", "CPC", "TPT", 'T', ModItems.ball_tatb, 'C', ModItems.neutron_reflector, 'P', PU239.nugget() });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.SCHRAB.ordinal()), new Object[] { "BCB", "TST", "BCB", 'B', ANY_BISMOIDBRONZE.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER), 'T', ModItems.ball_tatb, 'S', ModItems.cell_sas3 });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_filling, 1, EnumGrenadeFilling.SCHRAB.ordinal()), new Object[] { "BCB", "TST", "BCB", 'B', CMB.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER), 'T', ModItems.ball_tatb, 'S', ModItems.cell_sas3 });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.GLUE.ordinal()), new Object[] { " P ", "PSP", " P ", 'P', Items.paper, 'S', Items.slime_ball });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.GLUE.ordinal()), new Object[] { " P ", "PSP", " P ", 'P', Items.paper, 'S', Items.slime_ball });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.PROXY_FUZE.ordinal()), new Object[] { "C", "F", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'F', ModItems.safety_fuse });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.PROXY_FUZE.ordinal()), new Object[] { "C", "F", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'F', ModItems.safety_fuse });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.FRAG_SLEEVE.ordinal()), new Object[] { "BBB", " T ", "BBB", 'B', STEEL.bolt(), 'T', ModItems.ducttape });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_extra, 1, EnumGrenadeExtra.FRAG_SLEEVE.ordinal()), new Object[] { "BBB", " T ", "BBB", 'B', STEEL.bolt(), 'T', ModItems.ducttape });
|
||||||
|
|||||||
@ -15,13 +15,13 @@ public class EntityAIFireGun extends EntityAIBase {
|
|||||||
|
|
||||||
private final EntityLiving host;
|
private final EntityLiving host;
|
||||||
|
|
||||||
private double attackMoveSpeed = 1.0D; // how fast we move while in this state
|
public double attackMoveSpeed = 1.0D; // how fast we move while in this state
|
||||||
private double maxRange = 20; // how far our target can be before we stop shooting
|
public double maxRange = 20; // how far our target can be before we stop shooting
|
||||||
private int burstTime = 10; // maximum number of ticks in a burst (for automatic weapons)
|
public int burstTime = 10; // maximum number of ticks in a burst (for automatic weapons)
|
||||||
private int minWait = 10; // minimum number of ticks to wait between bursts/shots
|
public int minWait = 10; // minimum number of ticks to wait between bursts/shots
|
||||||
private int maxWait = 40; // maximum number of ticks to wait between bursts/shots
|
public int maxWait = 40; // maximum number of ticks to wait between bursts/shots
|
||||||
private float inaccuracy = 30; // how many degrees of inaccuracy does the AI have
|
public float inaccuracy = 30; // how many degrees of inaccuracy does the AI have
|
||||||
|
public boolean randomBurst = true; //whether the burst time should be fixed or random
|
||||||
// state timers
|
// state timers
|
||||||
private int attackTimer = 0;
|
private int attackTimer = 0;
|
||||||
private FireState state = FireState.IDLE;
|
private FireState state = FireState.IDLE;
|
||||||
@ -89,7 +89,8 @@ public class EntityAIFireGun extends EntityAIBase {
|
|||||||
if(rec.getMagazine(stack).getAmount(stack, null) <= 0) {
|
if(rec.getMagazine(stack).getAmount(stack, null) <= 0) {
|
||||||
updateState(FireState.RELOADING, 20, gun, stack);
|
updateState(FireState.RELOADING, 20, gun, stack);
|
||||||
} else if(ItemGunBaseNT.getState(stack, 0) == GunState.IDLE) {
|
} else if(ItemGunBaseNT.getState(stack, 0) == GunState.IDLE) {
|
||||||
updateState(FireState.FIRING, host.worldObj.rand.nextInt(burstTime), gun, stack);
|
int time = randomBurst ? host.worldObj.rand.nextInt(burstTime) : burstTime;
|
||||||
|
updateState(FireState.FIRING, time, gun, stack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -114,8 +115,9 @@ public class EntityAIFireGun extends EntityAIBase {
|
|||||||
// Turn body to face firing direction, since the gun is attached to that, not the head
|
// Turn body to face firing direction, since the gun is attached to that, not the head
|
||||||
// Also apply accuracy debuff just before firing
|
// Also apply accuracy debuff just before firing
|
||||||
if(bind != null && bind != EnumKeybind.RELOAD) {
|
if(bind != null && bind != EnumKeybind.RELOAD) {
|
||||||
host.rotationYawHead += (host.worldObj.rand.nextFloat() - 0.5F) * inaccuracy;
|
float inacc = inaccuracy * (getYerGun().getConfig(stack, 0).getReceivers(stack)[0].getHipfireSpread(stack) * 20);
|
||||||
host.rotationPitch += (host.worldObj.rand.nextFloat() - 0.5F) * inaccuracy;
|
host.rotationYawHead += (host.worldObj.rand.nextFloat() - 0.5F) * inacc;
|
||||||
|
host.rotationPitch += (host.worldObj.rand.nextFloat() - 0.5F) * inacc;
|
||||||
host.rotationYaw = host.rotationYawHead;
|
host.rotationYaw = host.rotationYawHead;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
package com.hbm.handler.nei;
|
package com.hbm.handler.nei;
|
||||||
|
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.inventory.gui.GUIMachineArcWelder;
|
import com.hbm.inventory.gui.GUIMachineArcWelder;
|
||||||
import com.hbm.inventory.recipes.ArcWelderRecipes;
|
import com.hbm.inventory.recipes.ArcWelderRecipes;
|
||||||
import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe;
|
import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.FontRenderer;
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
@ -48,11 +48,11 @@ public class ArcWelderHandler extends NEIUniversalHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||||
String duration = String.format(Locale.US, "%,d", arc.duration) + " ticks";
|
String duration = BobMathUtil.getShortNumber(arc.duration) + " ticks";
|
||||||
String consumption = String.format(Locale.US, "%,d", arc.consumption) + " HE/t";
|
String consumption = BobMathUtil.getShortNumber(arc.consumption) + "HE/t";
|
||||||
int side = 160;
|
int side = 164;
|
||||||
fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 43, 0x404040);
|
fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040);
|
||||||
fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 55, 0x404040);
|
fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -320,4 +320,10 @@ public abstract class NEIGenericRecipeHandler extends TemplateRecipeHandler impl
|
|||||||
drawTexturedModalRect(74 + this.getMachineXOffset(rec.recipe), 7, 77, 87, 18, 50);
|
drawTexturedModalRect(74 + this.getMachineXOffset(rec.recipe), 7, 77, 87, 18, 50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawExtras(int recipe) {
|
||||||
|
RecipeSet rec = (RecipeSet) this.arecipes.get(recipe);
|
||||||
|
rec.recipe.printNEIExtras();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import com.hbm.inventory.FluidStack;
|
|||||||
import com.hbm.inventory.fluid.FluidType;
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.gui.GuiInfoContainer;
|
import com.hbm.inventory.gui.GuiInfoContainer;
|
||||||
|
import com.hbm.inventory.gui.element.GUIElements;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
@ -247,7 +248,7 @@ public class FluidTank implements Cloneable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type.addInfo(list);
|
type.addInfo(list);
|
||||||
gui.drawInfo(list.toArray(new String[0]), mouseX, mouseY);
|
GUIElements.drawHoveringTextFluid(list, mouseX, mouseY, gui.getFontRenderer(), gui.getItemRenderer(), gui.width, gui.height, this.type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import org.lwjgl.input.Keyboard;
|
|||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import com.hbm.inventory.container.ContainerCrucible;
|
import com.hbm.inventory.container.ContainerCrucible;
|
||||||
|
import com.hbm.inventory.gui.element.GUIElements;
|
||||||
import com.hbm.inventory.material.Mats;
|
import com.hbm.inventory.material.Mats;
|
||||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||||
import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior;
|
import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior;
|
||||||
@ -52,7 +53,7 @@ public class GUICrucible extends GuiInfoContainer {
|
|||||||
if(guiLeft + 106 <= x && guiLeft + 106 + 18 > x && guiTop + 80 < y && guiTop + 80 + 18 >= y) {
|
if(guiLeft + 106 <= x && guiLeft + 106 + 18 > x && guiTop + 80 < y && guiTop + 80 + 18 >= y) {
|
||||||
if(this.crucible.recipe != null && CrucibleRecipes.INSTANCE.recipeNameMap.containsKey(this.crucible.recipe)) {
|
if(this.crucible.recipe != null && CrucibleRecipes.INSTANCE.recipeNameMap.containsKey(this.crucible.recipe)) {
|
||||||
CrucibleRecipe recipe = (CrucibleRecipe) CrucibleRecipes.INSTANCE.recipeNameMap.get(this.crucible.recipe);
|
CrucibleRecipe recipe = (CrucibleRecipe) CrucibleRecipes.INSTANCE.recipeNameMap.get(this.crucible.recipe);
|
||||||
this.func_146283_a(recipe.print(), x, y);
|
GUIElements.drawHoveringTextRecipe(recipe.print(), x, y, this.fontRendererObj, itemRender, this.width, this.height);
|
||||||
} else {
|
} else {
|
||||||
this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), x, y);
|
this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), x, y);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -59,7 +59,7 @@ public class GUIFusionTorus extends GuiInfoContainer {
|
|||||||
|
|
||||||
if(guiLeft + 43 <= mouseX && guiLeft + 43 + 18 > mouseX && guiTop + 80 < mouseY && guiTop + 80 + 18 >= mouseY) {
|
if(guiLeft + 43 <= mouseX && guiLeft + 43 + 18 > mouseX && guiTop + 80 < mouseY && guiTop + 80 + 18 >= mouseY) {
|
||||||
if(recipe != null) {
|
if(recipe != null) {
|
||||||
this.func_146283_a(recipe.print(), mouseX, mouseY);
|
GUIElements.drawHoveringTextRecipe(recipe.print(), mouseX, mouseY, this.fontRendererObj, itemRender, this.width, this.height);
|
||||||
} else {
|
} else {
|
||||||
this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY);
|
this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,9 @@ import java.util.List;
|
|||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.lwjgl.opengl.GL12;
|
import org.lwjgl.opengl.GL12;
|
||||||
|
|
||||||
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
|
import com.hbm.util.ColorUtil;
|
||||||
import com.hbm.util.Vec3NT;
|
import com.hbm.util.Vec3NT;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
@ -99,6 +101,18 @@ public class GUIElements {
|
|||||||
drawHoveringText(lines, x, y, font, itemRender, guiWidth, guiHeight, 6, STANDARD_LINE_DIST, STANDARD_COLOR_BACKGROUND, STANDARD_COLOR_BACKGROUND, RECIPE_COLOR_LINE0, RECIPE_COLOR_LINE1);
|
drawHoveringText(lines, x, y, font, itemRender, guiWidth, guiHeight, 6, STANDARD_LINE_DIST, STANDARD_COLOR_BACKGROUND, STANDARD_COLOR_BACKGROUND, RECIPE_COLOR_LINE0, RECIPE_COLOR_LINE1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void drawHoveringTextFluid(List lines, int x, int y, FontRenderer font, RenderItem itemRender, int guiWidth, int guiHeight, FluidType type) {
|
||||||
|
int color0 = type.getColor();
|
||||||
|
int r = ColorUtil.ir(color0);
|
||||||
|
int g = ColorUtil.ig(color0);
|
||||||
|
int b = ColorUtil.ib(color0);
|
||||||
|
int add = (r + g + b) / 3 > 0x80 ? -0x40 : 0x40;
|
||||||
|
int color1 = ColorUtil.color(MathHelper.clamp_int(r + add, 0, 255), MathHelper.clamp_int(g + add, 0, 255), MathHelper.clamp_int(b + add, 0, 255));
|
||||||
|
color0 |= 0xff000000;
|
||||||
|
color1 |= 0xff000000;
|
||||||
|
drawHoveringText(lines, x, y, font, itemRender, guiWidth, guiHeight, 6, STANDARD_LINE_DIST, STANDARD_COLOR_BACKGROUND, STANDARD_COLOR_BACKGROUND, color0, color1);
|
||||||
|
}
|
||||||
|
|
||||||
public static void drawHoveringText(List lines, int x, int y, FontRenderer font, RenderItem itemRender, int guiWidth, int guiHeight, int headerOffset, int lineDist, int colBG0, int colBG1, int colLine0, int colLine1) {
|
public static void drawHoveringText(List lines, int x, int y, FontRenderer font, RenderItem itemRender, int guiWidth, int guiHeight, int headerOffset, int lineDist, int colBG0, int colBG1, int colLine0, int colLine1) {
|
||||||
|
|
||||||
if(!lines.isEmpty()) {
|
if(!lines.isEmpty()) {
|
||||||
|
|||||||
@ -946,7 +946,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
this.register(new GenericRecipe("ass.satellitebase").setup(600, 100).outputItems(new ItemStack(ModItems.sat_base, 1))
|
this.register(new GenericRecipe("ass.satellitebase").setup(600, 100).outputItems(new ItemStack(ModItems.sat_base, 1))
|
||||||
.inputItems(new OreDictStack(RUBBER.ingot(), 12),
|
.inputItems(new OreDictStack(RUBBER.ingot(), 12),
|
||||||
new OreDictStack(TI.shell(), 3),
|
new OreDictStack(TI.shell(), 3),
|
||||||
new ComparableStack(ModItems.thruster_large, 1),
|
new ComparableStack(ModItems.thruster_medium, 1),
|
||||||
new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE),
|
new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE),
|
||||||
new ComparableStack(ModItems.plate_desh, 4),
|
new ComparableStack(ModItems.plate_desh, 4),
|
||||||
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
|
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
|
||||||
|
|||||||
@ -60,19 +60,19 @@ public class CrucibleRecipes extends GenericRecipes<CrucibleRecipe> {
|
|||||||
int n = MaterialShapes.NUGGET.q(1);
|
int n = MaterialShapes.NUGGET.q(1);
|
||||||
int i = MaterialShapes.INGOT.q(1);
|
int i = MaterialShapes.INGOT.q(1);
|
||||||
|
|
||||||
this.register(new CrucibleRecipe("crucible.steel").setup(2, new ItemStack(ModItems.ingot_steel))
|
this.register(new CrucibleRecipe("crucible.steel").setup(20, new ItemStack(ModItems.ingot_steel))
|
||||||
.inputs(new MaterialStack(Mats.MAT_IRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n))
|
.inputs(new MaterialStack(Mats.MAT_IRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n))
|
||||||
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
||||||
|
|
||||||
if(Compat.isModLoaded(Compat.MOD_GT6)) {
|
if(Compat.isModLoaded(Compat.MOD_GT6)) {
|
||||||
this.register(new CrucibleRecipe("crucible.steelWrought").setup(2, new ItemStack(ModItems.ingot_steel))
|
this.register(new CrucibleRecipe("crucible.steelWrought").setup(20, new ItemStack(ModItems.ingot_steel))
|
||||||
.inputs(new MaterialStack(Mats.MAT_WROUGHTIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n))
|
.inputs(new MaterialStack(Mats.MAT_WROUGHTIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n))
|
||||||
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
||||||
this.register(new CrucibleRecipe("crucible.steelPig").setup(2, new ItemStack(ModItems.ingot_steel))
|
this.register(new CrucibleRecipe("crucible.steelPig").setup(20, new ItemStack(ModItems.ingot_steel))
|
||||||
.inputs(new MaterialStack(Mats.MAT_PIGIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n))
|
.inputs(new MaterialStack(Mats.MAT_PIGIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n))
|
||||||
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
||||||
this.register(new CrucibleRecipe("crucible.steelMeteoric").setup(2, new ItemStack(ModItems.ingot_steel))
|
this.register(new CrucibleRecipe("crucible.steelMeteoric").setup(20, new ItemStack(ModItems.ingot_steel))
|
||||||
.inputs(new MaterialStack(Mats.MAT_METEORICIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n))
|
.inputs(new MaterialStack(Mats.MAT_METEORICIRON, n * 2), new MaterialStack(Mats.MAT_CARBON, n * 3), new MaterialStack(Mats.MAT_FLUX, n))
|
||||||
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
.outputs(new MaterialStack(Mats.MAT_STEEL, n * 2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,8 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.Clock;
|
||||||
import com.hbm.util.i18n.I18nUtil;
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
|
|
||||||
public class FusionRecipe extends GenericRecipe {
|
public class FusionRecipe extends GenericRecipe {
|
||||||
@ -43,4 +46,22 @@ public class FusionRecipe extends GenericRecipe {
|
|||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void printNEIExtras() {
|
||||||
|
|
||||||
|
int side = 164;
|
||||||
|
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||||
|
|
||||||
|
String duration = BobMathUtil.getShortNumber(this.duration) + " ticks";
|
||||||
|
fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040);
|
||||||
|
|
||||||
|
if(Clock.get_ms() % 2000 < 1000) {
|
||||||
|
String consumption = BobMathUtil.getShortNumber(this.power) + "HE/t";
|
||||||
|
fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040);
|
||||||
|
} else {
|
||||||
|
String temp = BobMathUtil.getShortNumber(this.ignitionTemp) + "Ky/t";
|
||||||
|
fontRenderer.drawString(temp, side - fontRenderer.getStringWidth(temp), 57, 0xa000a0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
24
src/main/java/com/hbm/inventory/recipes/PUREXRecipe.java
Normal file
24
src/main/java/com/hbm/inventory/recipes/PUREXRecipe.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package com.hbm.inventory.recipes;
|
||||||
|
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
|
|
||||||
|
public class PUREXRecipe extends GenericRecipe {
|
||||||
|
|
||||||
|
public PUREXRecipe(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void printNEIExtras() {
|
||||||
|
|
||||||
|
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||||
|
String line = BobMathUtil.getShortNumber(this.duration) + " ticks " + BobMathUtil.getShortNumber(this.power) + "HE/t";
|
||||||
|
|
||||||
|
int side = 164;
|
||||||
|
fontRenderer.drawString(line, side - fontRenderer.getStringWidth(line), 57, 0x306030); // why so geen
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -10,7 +10,6 @@ import com.hbm.inventory.FluidStack;
|
|||||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
|
||||||
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel;
|
import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel;
|
||||||
@ -19,7 +18,7 @@ import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
|
||||||
public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
public class PUREXRecipes extends GenericRecipes<PUREXRecipe> {
|
||||||
|
|
||||||
public static final PUREXRecipes INSTANCE = new PUREXRecipes();
|
public static final PUREXRecipes INSTANCE = new PUREXRecipes();
|
||||||
|
|
||||||
@ -29,7 +28,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
@Override public int outputFluidLimit() { return 1; }
|
@Override public int outputFluidLimit() { return 1; }
|
||||||
|
|
||||||
@Override public String getFileName() { return "hbmPUREX.json"; }
|
@Override public String getFileName() { return "hbmPUREX.json"; }
|
||||||
@Override public GenericRecipe instantiateRecipe(String name) { return new GenericRecipe(name); }
|
@Override public PUREXRecipe instantiateRecipe(String name) { return new PUREXRecipe(name); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerDefaults() {
|
public void registerDefaults() {
|
||||||
@ -41,7 +40,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
long watzPower = 10_000;
|
long watzPower = 10_000;
|
||||||
long vitrification = 1_000;
|
long vitrification = 1_000;
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.uzh").setup(600, 1_000)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.uzh").setup(600, 1_000)
|
||||||
.inputItems(new ComparableStack(ModItems.billet_uranium_fuel),
|
.inputItems(new ComparableStack(ModItems.billet_uranium_fuel),
|
||||||
new OreDictStack(ZR.billet(), 3))
|
new OreDictStack(ZR.billet(), 3))
|
||||||
.inputFluids(new FluidStack(Fluids.NITRIC_ACID, 1000), new FluidStack(Fluids.HYDROGEN, 4000))
|
.inputFluids(new FluidStack(Fluids.NITRIC_ACID, 1000), new FluidStack(Fluids.HYDROGEN, 4000))
|
||||||
@ -49,7 +48,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
|
|
||||||
//CP-1
|
//CP-1
|
||||||
String autoPile = "autoswitch.pile";
|
String autoPile = "autoswitch.pile";
|
||||||
this.register(new GenericRecipe("purex.pilepu").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pilepu").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pile_rod_plutonium))
|
.inputItems(new ComparableStack(ModItems.pile_rod_plutonium))
|
||||||
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100))
|
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100))
|
||||||
.outputItems(new ItemStack(ModItems.billet_pu_mix, 2),
|
.outputItems(new ItemStack(ModItems.billet_pu_mix, 2),
|
||||||
@ -57,7 +56,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.plate_iron, 2))
|
new ItemStack(ModItems.plate_iron, 2))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pilepu239").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pilepu239").setup(40, pilePower).setNameWrapper("purex.recycle").setGroup(autoPile, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pile_rod_pu239))
|
.inputItems(new ComparableStack(ModItems.pile_rod_pu239))
|
||||||
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100))
|
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100))
|
||||||
.outputItems(new ItemStack(ModItems.billet_pu239, 1),
|
.outputItems(new ItemStack(ModItems.billet_pu239, 1),
|
||||||
@ -68,7 +67,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
|
|
||||||
// ZIRNOX
|
// ZIRNOX
|
||||||
String autoZirnox = "autoswitch.zirnox";
|
String autoZirnox = "autoswitch.zirnox";
|
||||||
this.register(new GenericRecipe("purex.zirnoxnu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxnu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_natural_uranium))
|
.inputItems(new ComparableStack(ModItems.waste_natural_uranium))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
|
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
|
||||||
@ -77,7 +76,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_uranium))
|
.inputItems(new ComparableStack(ModItems.waste_uranium))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
|
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||||
@ -86,7 +85,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxthmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxthmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_thorium))
|
.inputItems(new ComparableStack(ModItems.waste_thorium))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
|
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
|
||||||
@ -95,7 +94,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_mox))
|
.inputItems(new ComparableStack(ModItems.waste_mox))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
|
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||||
@ -104,7 +103,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxmep").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxmep").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plutonium))
|
.inputItems(new ComparableStack(ModItems.waste_plutonium))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 2),
|
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||||
@ -112,7 +111,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxheu233").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxheu233").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_u233))
|
.inputItems(new ComparableStack(ModItems.waste_u233))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u235, 1),
|
.outputItems(new ItemStack(ModItems.nugget_u235, 1),
|
||||||
@ -121,7 +120,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxheu235").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxheu235").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_u235))
|
.inputItems(new ComparableStack(ModItems.waste_u235))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu238, 1),
|
.outputItems(new ItemStack(ModItems.nugget_pu238, 1),
|
||||||
@ -130,7 +129,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxles").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxles").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_schrabidium))
|
.inputItems(new ComparableStack(ModItems.waste_schrabidium))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_beryllium, 2),
|
.outputItems(new ItemStack(ModItems.nugget_beryllium, 2),
|
||||||
@ -139,7 +138,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.zirnoxzfbmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.zirnoxzfbmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle").setGroup(autoZirnox, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_zfb_mox))
|
.inputItems(new ComparableStack(ModItems.waste_zfb_mox))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_zirconium, 3),
|
.outputItems(new ItemStack(ModItems.nugget_zirconium, 3),
|
||||||
@ -150,7 +149,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
|
|
||||||
// Plate Fuel
|
// Plate Fuel
|
||||||
String autoPlate = "autoswitch.plate";
|
String autoPlate = "autoswitch.plate";
|
||||||
this.register(new GenericRecipe("purex.platemox").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.platemox").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plate_mox))
|
.inputItems(new ComparableStack(ModItems.waste_plate_mox))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.powder_sr90_tiny, 1),
|
.outputItems(new ItemStack(ModItems.powder_sr90_tiny, 1),
|
||||||
@ -159,7 +158,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 4))
|
new ItemStack(ModItems.nuclear_waste_tiny, 4))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.platepu238be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.platepu238be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plate_pu238be))
|
.inputItems(new ComparableStack(ModItems.waste_plate_pu238be))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_beryllium, 1),
|
.outputItems(new ItemStack(ModItems.nugget_beryllium, 1),
|
||||||
@ -168,7 +167,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nugget_lead, 2))
|
new ItemStack(ModItems.nugget_lead, 2))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.platepu239").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.platepu239").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plate_pu239))
|
.inputItems(new ComparableStack(ModItems.waste_plate_pu239))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu240, 2),
|
.outputItems(new ItemStack(ModItems.nugget_pu240, 2),
|
||||||
@ -177,7 +176,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.platera226be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.platera226be").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plate_ra226be))
|
.inputItems(new ComparableStack(ModItems.waste_plate_ra226be))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_beryllium, 2),
|
.outputItems(new ItemStack(ModItems.nugget_beryllium, 2),
|
||||||
@ -186,7 +185,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nugget_lead, 1))
|
new ItemStack(ModItems.nugget_lead, 1))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.platesa326").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.platesa326").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plate_sa326))
|
.inputItems(new ComparableStack(ModItems.waste_plate_sa326))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 1),
|
.outputItems(new ItemStack(ModItems.nugget_solinium, 1),
|
||||||
@ -195,7 +194,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.plateu233").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.plateu233").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plate_u233))
|
.inputItems(new ComparableStack(ModItems.waste_plate_u233))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u235, 1),
|
.outputItems(new ItemStack(ModItems.nugget_u235, 1),
|
||||||
@ -204,7 +203,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.plateu235").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.plateu235").setup(100, platePower).setNameWrapper("purex.recycle").setGroup(autoPlate, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plate_u235))
|
.inputItems(new ComparableStack(ModItems.waste_plate_u235))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_neptunium, 1),
|
.outputItems(new ItemStack(ModItems.nugget_neptunium, 1),
|
||||||
@ -215,7 +214,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
|
|
||||||
// PWR
|
// PWR
|
||||||
String autoPWR = "autoswitch.pwr";
|
String autoPWR = "autoswitch.pwr";
|
||||||
this.register(new GenericRecipe("purex.pwrmeu").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmeu").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEU))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEU))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
||||||
@ -224,7 +223,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrheu233").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrheu233").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU233))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU233))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u235, 3),
|
.outputItems(new ItemStack(ModItems.nugget_u235, 3),
|
||||||
@ -233,7 +232,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrheu235").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrheu235").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU235))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU235))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_neptunium, 3),
|
.outputItems(new ItemStack(ModItems.nugget_neptunium, 3),
|
||||||
@ -242,7 +241,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrmen").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmen").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
||||||
@ -251,7 +250,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrhen237").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhen237").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEN237))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEN237))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu238, 2),
|
.outputItems(new ItemStack(ModItems.nugget_pu238, 2),
|
||||||
@ -260,7 +259,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrmox").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmox").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MOX))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MOX))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
||||||
@ -269,7 +268,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrmep").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmep").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_lead, 2),
|
.outputItems(new ItemStack(ModItems.nugget_lead, 2),
|
||||||
@ -278,7 +277,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrhep239").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhep239").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP239))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP239))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 2),
|
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||||
@ -287,7 +286,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrhep241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhep241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP241))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP241))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
||||||
@ -296,7 +295,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrmea").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrmea").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEA))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEA))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
||||||
@ -305,7 +304,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrhea242").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhea242").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEA242))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEA242))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
||||||
@ -314,7 +313,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrhes326").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhes326").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES326))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES326))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 3),
|
.outputItems(new ItemStack(ModItems.nugget_solinium, 3),
|
||||||
@ -323,7 +322,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrhes327").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrhes327").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES327))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES327))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_australium, 4),
|
.outputItems(new ItemStack(ModItems.nugget_australium, 4),
|
||||||
@ -332,7 +331,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrbfbam").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrbfbam").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_AM_MIX))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_AM_MIX))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_am_mix, 9),
|
.outputItems(new ItemStack(ModItems.nugget_am_mix, 9),
|
||||||
@ -341,7 +340,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ItemStack(ModItems.nuclear_waste_tiny, 1))
|
new ItemStack(ModItems.nuclear_waste_tiny, 1))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.pwrbfpu241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.pwrbfpu241").setup(100, pwrPower).setNameWrapper("purex.recycle").setGroup(autoPWR, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_PU241))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_PU241))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu241, 9),
|
.outputItems(new ItemStack(ModItems.nugget_pu241, 9),
|
||||||
@ -351,7 +350,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
// Molten Salt
|
// Molten Salt
|
||||||
this.register(new GenericRecipe("purex.thoriumsalt").setup(20, 10_000).setIcon(ModItems.fluid_icon, Fluids.THORIUM_SALT.getID())
|
this.register((PUREXRecipe) new PUREXRecipe("purex.thoriumsalt").setup(20, 10_000).setIcon(ModItems.fluid_icon, Fluids.THORIUM_SALT.getID())
|
||||||
.inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000))
|
.inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000))
|
||||||
.inputItems(new OreDictStack(TH232.nugget(), 2))
|
.inputItems(new OreDictStack(TH232.nugget(), 2))
|
||||||
.outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000))
|
.outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000))
|
||||||
@ -361,7 +360,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
|
|
||||||
// Watz
|
// Watz
|
||||||
String autoWatz = "autoswitch.watz";
|
String autoWatz = "autoswitch.watz";
|
||||||
this.register(new GenericRecipe("purex.watzschrab").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzschrab").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.SCHRABIDIUM))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.SCHRABIDIUM))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 15),
|
.outputItems(new ItemStack(ModItems.nugget_solinium, 15),
|
||||||
@ -370,7 +369,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzhes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzhes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HES))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HES))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 17),
|
.outputItems(new ItemStack(ModItems.nugget_solinium, 17),
|
||||||
@ -379,7 +378,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzmes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzmes").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MES))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MES))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 12),
|
.outputItems(new ItemStack(ModItems.nugget_solinium, 12),
|
||||||
@ -388,7 +387,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzles").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzles").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LES))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LES))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 9),
|
.outputItems(new ItemStack(ModItems.nugget_solinium, 9),
|
||||||
@ -397,7 +396,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzhen").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzhen").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HEN))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HEN))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu239, 12),
|
.outputItems(new ItemStack(ModItems.nugget_pu239, 12),
|
||||||
@ -406,7 +405,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzmeu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzmeu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEU))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEU))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu239, 12),
|
.outputItems(new ItemStack(ModItems.nugget_pu239, 12),
|
||||||
@ -415,7 +414,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzmep").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzmep").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEP))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEP))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_pu241, 12),
|
.outputItems(new ItemStack(ModItems.nugget_pu241, 12),
|
||||||
@ -424,7 +423,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzlead").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzlead").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LEAD))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LEAD))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_lead, 6),
|
.outputItems(new ItemStack(ModItems.nugget_lead, 6),
|
||||||
@ -433,7 +432,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzboron").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzboron").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.BORON))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.BORON))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.powder_coal_tiny, 12),
|
.outputItems(new ItemStack(ModItems.powder_coal_tiny, 12),
|
||||||
@ -442,7 +441,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watzdu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watzdu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.DU))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.DU))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_polonium, 12),
|
.outputItems(new ItemStack(ModItems.nugget_polonium, 12),
|
||||||
@ -457,7 +456,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
ItemStack copy = nuggetNQR.copy();
|
ItemStack copy = nuggetNQR.copy();
|
||||||
copy.stackSize = 12;
|
copy.stackSize = 12;
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watznaqadah").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watznaqadah").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQD))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQD))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(copy,
|
.outputItems(copy,
|
||||||
@ -466,7 +465,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.watznaqadria").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.watznaqadria").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQR))
|
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQR))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_co60, 12),
|
.outputItems(new ItemStack(ModItems.nugget_co60, 12),
|
||||||
@ -477,7 +476,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//ICF
|
//ICF
|
||||||
this.register(new GenericRecipe("purex.icf").setup(300, 10_000).setNameWrapper("purex.recycle")
|
this.register((PUREXRecipe) new PUREXRecipe("purex.icf").setup(300, 10_000).setNameWrapper("purex.recycle")
|
||||||
.inputItems(new ComparableStack(ModItems.icf_pellet_depleted))
|
.inputItems(new ComparableStack(ModItems.icf_pellet_depleted))
|
||||||
.outputItems(new ItemStack(ModItems.icf_pellet_empty, 1),
|
.outputItems(new ItemStack(ModItems.icf_pellet_empty, 1),
|
||||||
new ItemStack(ModItems.pellet_charged, 1),
|
new ItemStack(ModItems.pellet_charged, 1),
|
||||||
@ -486,22 +485,22 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
/// Vitrification
|
/// Vitrification
|
||||||
this.register(new GenericRecipe("purex.vitliquid").setup(100, vitrification)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.vitliquid").setup(100, vitrification)
|
||||||
.inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD))
|
.inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD))
|
||||||
.inputFluids(new FluidStack(Fluids.WASTEFLUID, 1_000))
|
.inputFluids(new FluidStack(Fluids.WASTEFLUID, 1_000))
|
||||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.vitgaseous").setup(100, vitrification)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.vitgaseous").setup(100, vitrification)
|
||||||
.inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD))
|
.inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD))
|
||||||
.inputFluids(new FluidStack(Fluids.WASTEGAS, 1_000))
|
.inputFluids(new FluidStack(Fluids.WASTEGAS, 1_000))
|
||||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
||||||
|
|
||||||
this.register(new GenericRecipe("purex.vitsolid").setup(300, vitrification)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.vitsolid").setup(300, vitrification)
|
||||||
.inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD), new ComparableStack(ModItems.nuclear_waste, 4))
|
.inputItems(new ComparableStack(ModBlocks.sand_mix, 1, EnumSandType.LEAD), new ComparableStack(ModItems.nuclear_waste, 4))
|
||||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified, 4)));
|
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified, 4)));
|
||||||
|
|
||||||
// Schrabidium
|
// Schrabidium
|
||||||
this.register(new GenericRecipe("purex.schraranium").setup(200, 1_000).setNameWrapper("purex.schrab")
|
this.register((PUREXRecipe) new PUREXRecipe("purex.schraranium").setup(200, 1_000).setNameWrapper("purex.schrab")
|
||||||
.inputItems(new ComparableStack(ModItems.ingot_schraranium))
|
.inputItems(new ComparableStack(ModItems.ingot_schraranium))
|
||||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 2_000), new FluidStack(Fluids.NITRIC_ACID, 1_000))
|
.inputFluids(new FluidStack(Fluids.KEROSENE, 2_000), new FluidStack(Fluids.NITRIC_ACID, 1_000))
|
||||||
.outputItems(new ItemStack(ModItems.nugget_schrabidium, 3),
|
.outputItems(new ItemStack(ModItems.nugget_schrabidium, 3),
|
||||||
@ -510,21 +509,21 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
|
|
||||||
String autoSchrab = "autoswitch.schrab";
|
String autoSchrab = "autoswitch.schrab";
|
||||||
this.register(new GenericRecipe("purex.schrabzirnox").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.schrabzirnox").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this)
|
||||||
.inputItems(new ComparableStack(ModItems.waste_plutonium))
|
.inputItems(new ComparableStack(ModItems.waste_plutonium))
|
||||||
.inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250))
|
.inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250))
|
||||||
.outputItems(new ItemStack(ModItems.powder_schrabidium, 1),
|
.outputItems(new ItemStack(ModItems.powder_schrabidium, 1),
|
||||||
new ItemStack(ModItems.nugget_technetium, 3),
|
new ItemStack(ModItems.nugget_technetium, 3),
|
||||||
new ItemStack(ModItems.nuclear_waste_tiny, 4))
|
new ItemStack(ModItems.nuclear_waste_tiny, 4))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
this.register(new GenericRecipe("purex.schrabpwr").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.schrabpwr").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP))
|
||||||
.inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250))
|
.inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250))
|
||||||
.outputItems(new ItemStack(ModItems.powder_schrabidium, 1),
|
.outputItems(new ItemStack(ModItems.powder_schrabidium, 1),
|
||||||
new ItemStack(ModItems.nugget_technetium, 3),
|
new ItemStack(ModItems.nugget_technetium, 3),
|
||||||
new ItemStack(ModItems.nuclear_waste_tiny, 4))
|
new ItemStack(ModItems.nuclear_waste_tiny, 4))
|
||||||
.setIconToFirstIngredient());
|
.setIconToFirstIngredient());
|
||||||
this.register(new GenericRecipe("purex.schrabmen").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this)
|
this.register((PUREXRecipe) new PUREXRecipe("purex.schrabmen").setup(200, 50_000).setNameWrapper("purex.schrab").setGroup(autoSchrab, this)
|
||||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN))
|
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN))
|
||||||
.inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250))
|
.inputFluids(new FluidStack(Fluids.SOLVENT, 4_000), new FluidStack(Fluids.SCHRABIDIC, 250))
|
||||||
.outputItems(new ItemStack(ModItems.powder_schrabidium, 1),
|
.outputItems(new ItemStack(ModItems.powder_schrabidium, 1),
|
||||||
|
|||||||
@ -5,8 +5,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.Clock;
|
||||||
import com.hbm.util.i18n.I18nUtil;
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
|
|
||||||
public class PlasmaForgeRecipe extends GenericRecipe {
|
public class PlasmaForgeRecipe extends GenericRecipe {
|
||||||
@ -31,4 +34,22 @@ public class PlasmaForgeRecipe extends GenericRecipe {
|
|||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void printNEIExtras() {
|
||||||
|
|
||||||
|
int side = 164;
|
||||||
|
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||||
|
|
||||||
|
String duration = BobMathUtil.getShortNumber(this.duration) + " ticks";
|
||||||
|
fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040);
|
||||||
|
|
||||||
|
if(Clock.get_ms() % 2000 < 1000) {
|
||||||
|
String consumption = BobMathUtil.getShortNumber(this.power) + "HE/t";
|
||||||
|
fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040);
|
||||||
|
} else {
|
||||||
|
String temp = BobMathUtil.getShortNumber(this.ignitionTemp) + "TU/t";
|
||||||
|
fontRenderer.drawString(temp, side - fontRenderer.getStringWidth(temp), 57, 0xa000a0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,8 @@ import com.hbm.util.BobMathUtil;
|
|||||||
import com.hbm.util.i18n.I18nUtil;
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
@ -133,6 +135,17 @@ public class GenericRecipe {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void printNEIExtras() {
|
||||||
|
|
||||||
|
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||||
|
String duration = BobMathUtil.getShortNumber(this.duration) + " ticks";
|
||||||
|
String consumption = BobMathUtil.getShortNumber(this.power) + "HE/t";
|
||||||
|
|
||||||
|
int side = 164;
|
||||||
|
fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 45, 0x404040);
|
||||||
|
fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 57, 0x404040);
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> print() {
|
public List<String> print() {
|
||||||
List<String> list = new ArrayList();
|
List<String> list = new ArrayList();
|
||||||
list.add(EnumChatFormatting.YELLOW + this.getLocalizedName());
|
list.add(EnumChatFormatting.YELLOW + this.getLocalizedName());
|
||||||
@ -186,7 +199,6 @@ public class GenericRecipe {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Default impl only matches localized name substring, can be extended to include ingredients as well */
|
/** Default impl only matches localized name substring, can be extended to include ingredients as well */
|
||||||
public boolean matchesSearch(String substring) {
|
public boolean matchesSearch(String substring) {
|
||||||
return getLocalizedName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US));
|
return getLocalizedName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US));
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.hbm.itempool;
|
|||||||
import static com.hbm.lib.HbmChestContents.weighted;
|
import static com.hbm.lib.HbmChestContents.weighted;
|
||||||
|
|
||||||
import com.hbm.inventory.material.Mats;
|
import com.hbm.inventory.material.Mats;
|
||||||
|
import com.hbm.items.ItemEnums;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.weapon.grenade.ItemGrenadeExtra.EnumGrenadeExtra;
|
import com.hbm.items.weapon.grenade.ItemGrenadeExtra.EnumGrenadeExtra;
|
||||||
import com.hbm.items.weapon.grenade.ItemGrenadeFilling.EnumGrenadeFilling;
|
import com.hbm.items.weapon.grenade.ItemGrenadeFilling.EnumGrenadeFilling;
|
||||||
@ -27,6 +28,9 @@ public class ItemPoolsPile {
|
|||||||
public static final String POOL_PILE_MAKESHIFT_WIRE = "POOL_PILE_MAKESHIFT_WIRE";
|
public static final String POOL_PILE_MAKESHIFT_WIRE = "POOL_PILE_MAKESHIFT_WIRE";
|
||||||
public static final String POOL_PILE_NUKE_STORAGE = "POOL_PILE_NUKE_STORAGE";
|
public static final String POOL_PILE_NUKE_STORAGE = "POOL_PILE_NUKE_STORAGE";
|
||||||
public static final String POOL_PILE_OF_GARBAGE = "POOL_PILE_OF_GARBAGE";
|
public static final String POOL_PILE_OF_GARBAGE = "POOL_PILE_OF_GARBAGE";
|
||||||
|
public static final String POOL_PILE_MECHANICAL = "POOL_PILE_MECHANICAL";
|
||||||
|
public static final String POOL_PILE_GEAR = "POOL_PILE_GEAR";
|
||||||
|
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
|
|
||||||
@ -141,5 +145,33 @@ public class ItemPoolsPile {
|
|||||||
weighted(ModItems.canned_conserve, 2, 0, 1, 5),
|
weighted(ModItems.canned_conserve, 2, 0, 1, 5),
|
||||||
};
|
};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
new ItemPool(POOL_PILE_MECHANICAL) {{
|
||||||
|
this.pool = new WeightedRandomChestContent[] {
|
||||||
|
weighted(ModItems.defuser, 0, 1, 1, 30),
|
||||||
|
weighted(ModItems.screwdriver, 0, 1, 1, 30),
|
||||||
|
weighted(ModItems.wire_fine, Mats.MAT_COPPER.id, 8, 12, 120),
|
||||||
|
weighted(ModItems.plate_steel, 0, 3, 8, 40),
|
||||||
|
weighted(ModItems.plate_copper, 0, 2, 5, 40),
|
||||||
|
weighted(ModItems.coil_copper, 0, 2, 5, 40),
|
||||||
|
weighted(ModItems.coil_tungsten, 0, 2, 5, 40)
|
||||||
|
};
|
||||||
|
}};
|
||||||
|
|
||||||
|
new ItemPool(POOL_PILE_GEAR) {{
|
||||||
|
this.pool = new WeightedRandomChestContent[] {
|
||||||
|
weighted(ModItems.defuser, 0, 1, 1, 40),
|
||||||
|
weighted(ModItems.screwdriver, 0, 1, 1, 30),
|
||||||
|
weighted(ModItems.canteen_vodka,0, 1, 1, 40),
|
||||||
|
weighted(ModItems.casing, ItemEnums.EnumCasingType.SMALL_STEEL.ordinal(), 1, 4, 30),
|
||||||
|
weighted(ModItems.casing, ItemEnums.EnumCasingType.SMALL.ordinal(), 3, 8, 40),
|
||||||
|
weighted(ModItems.casing, ItemEnums.EnumCasingType.BUCKSHOT.ordinal(), 3, 8, 40),
|
||||||
|
weighted(ModItems.canned_conserve, 0, 2, 5, 40),
|
||||||
|
weighted(ModItems.taurun_helmet, 0, 1, 1, 20),
|
||||||
|
weighted(ModItems.taurun_plate, 0, 1, 1, 20),
|
||||||
|
weighted(ModItems.taurun_legs, 0, 1, 1, 20),
|
||||||
|
weighted(ModItems.taurun_boots, 0, 1, 1, 20)
|
||||||
|
};
|
||||||
|
}};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ public class ItemPoolsSingle {
|
|||||||
public static final String POOL_METEORITE_TREASURE = "POOL_METEORITE_TREASURE";
|
public static final String POOL_METEORITE_TREASURE = "POOL_METEORITE_TREASURE";
|
||||||
public static final String POOL_BLUEPRINTS = "POOL_BLUEPRINTS";
|
public static final String POOL_BLUEPRINTS = "POOL_BLUEPRINTS";
|
||||||
|
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
|
|
||||||
new ItemPool(POOL_VAULT_RUSTY) {{
|
new ItemPool(POOL_VAULT_RUSTY) {{
|
||||||
@ -119,5 +120,13 @@ public class ItemPoolsSingle {
|
|||||||
weighted(ModItems.blueprint_folder, 0, 1, 1, 1),
|
weighted(ModItems.blueprint_folder, 0, 1, 1, 1),
|
||||||
};
|
};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
new ItemPool(POOL_BLUEPRINTS) {{
|
||||||
|
this.pool = new WeightedRandomChestContent[] {
|
||||||
|
weighted(ModItems.blueprint_folder, 0, 1, 1, 10),
|
||||||
|
weighted(ModItems.blueprint_folder, 1, 1, 1, 5),
|
||||||
|
weighted(ModItems.blueprint_folder, 0, 1, 1, 1),
|
||||||
|
};
|
||||||
|
}};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,8 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.ChatComponentText;
|
||||||
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class ItemCounterfeitKeys extends Item {
|
public class ItemCounterfeitKeys extends Item {
|
||||||
@ -21,7 +23,7 @@ public class ItemCounterfeitKeys extends Item {
|
|||||||
|
|
||||||
TileEntityLockableBase locked = (TileEntityLockableBase) te;
|
TileEntityLockableBase locked = (TileEntityLockableBase) te;
|
||||||
|
|
||||||
if(locked.isLocked()) {
|
if(locked.isLocked() && locked.cheesable) {
|
||||||
ItemStack st = new ItemStack(ModItems.key_fake);
|
ItemStack st = new ItemStack(ModItems.key_fake);
|
||||||
ItemKeyPin.setPins(st, locked.getPins());
|
ItemKeyPin.setPins(st, locked.getPins());
|
||||||
|
|
||||||
@ -36,6 +38,11 @@ public class ItemCounterfeitKeys extends Item {
|
|||||||
player.swingItem();
|
player.swingItem();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
} else if(!locked.cheesable){
|
||||||
|
player.addChatMessage(new ChatComponentText(
|
||||||
|
EnumChatFormatting.LIGHT_PURPLE + "This lock is too elaborate for a counterfeit key to be made"));
|
||||||
|
player.addChatMessage(new ChatComponentText(
|
||||||
|
EnumChatFormatting.LIGHT_PURPLE + "Perhaps there is another way around here to unlock it"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.itempool.ItemPoolsSingle;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
|
||||||
|
import com.hbm.main.StructureManager;
|
||||||
import com.hbm.tileentity.machine.storage.TileEntitySafe;
|
import com.hbm.tileentity.machine.storage.TileEntitySafe;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
@ -34,7 +35,8 @@ public class ItemWandD extends Item {
|
|||||||
|
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
|
|
||||||
if(world.getBlock(pos.blockX, y - 1, pos.blockZ).canPlaceTorchOnTop(world, pos.blockX, y - 1, pos.blockZ)) {
|
StructureManager.crane.build(world, pos.blockX, y, pos.blockZ);
|
||||||
|
/*if(world.getBlock(pos.blockX, y - 1, pos.blockZ).canPlaceTorchOnTop(world, pos.blockX, y - 1, pos.blockZ)) {
|
||||||
world.setBlock(pos.blockX, y, pos.blockZ, ModBlocks.safe, rand.nextInt(4) + 2, 2);
|
world.setBlock(pos.blockX, y, pos.blockZ, ModBlocks.safe, rand.nextInt(4) + 2, 2);
|
||||||
TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(pos.blockX, y, pos.blockZ);
|
TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(pos.blockX, y, pos.blockZ);
|
||||||
|
|
||||||
@ -64,7 +66,7 @@ public class ItemWandD extends Item {
|
|||||||
|
|
||||||
if(GeneralConfig.enableDebugMode)
|
if(GeneralConfig.enableDebugMode)
|
||||||
MainRegistry.logger.info("[Debug] Successfully spawned safe at " + pos.blockX + " " + (y + 1) +" " + pos.blockZ);
|
MainRegistry.logger.info("[Debug] Successfully spawned safe at " + pos.blockX + " " + (y + 1) +" " + pos.blockZ);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7);
|
/*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7);
|
||||||
vnt.setBlockAllocator(new BlockAllocatorBulkie(60));
|
vnt.setBlockAllocator(new BlockAllocatorBulkie(60));
|
||||||
|
|||||||
@ -517,7 +517,7 @@ public class CraftingManager {
|
|||||||
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.flame_war), 1), new Object[] { "WHW", "CTP", "WOW", 'W', Item.getItemFromBlock(Blocks.planks), 'T', Item.getItemFromBlock(Blocks.tnt), 'H', ModItems.flame_pony, 'C', ModItems.flame_conspiracy, 'P', ModItems.flame_politics, 'O', ModItems.flame_opinion });
|
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.flame_war), 1), new Object[] { "WHW", "CTP", "WOW", 'W', Item.getItemFromBlock(Blocks.planks), 'T', Item.getItemFromBlock(Blocks.tnt), 'H', ModItems.flame_pony, 'C', ModItems.flame_conspiracy, 'P', ModItems.flame_politics, 'O', ModItems.flame_opinion });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.det_cord, 4), new Object[] { " P ", "PGP", " P ", 'P', Items.paper, 'G', Items.gunpowder });
|
addRecipeAuto(new ItemStack(ModBlocks.det_cord, 4), new Object[] { " P ", "PGP", " P ", 'P', Items.paper, 'G', Items.gunpowder });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ANY_PLASTICEXPLOSIVE.ingot() });
|
addRecipeAuto(new ItemStack(ModBlocks.det_charge, 1), new Object[] { "PDP", "DTD", "PDP", 'P', STEEL.plate(), 'D', ModBlocks.det_cord, 'T', ANY_PLASTICEXPLOSIVE.ingot() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PFP", "DCD", "PFP", 'P', DESH.plateCast(), 'D', ModBlocks.det_charge, 'C', ModItems.man_core, 'F', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER) });
|
addRecipeAuto(new ItemStack(ModBlocks.det_nuke, 1), new Object[] { "PFP", "DCD", "PFP", 'P', ModItems.neutron_reflector, 'D', ModBlocks.det_charge, 'C', ModItems.man_core, 'F', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER) });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.det_miner, 4), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', ModItems.ball_dynamite });
|
addRecipeAuto(new ItemStack(ModBlocks.det_miner, 4), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', IRON.plate(), 'T', ModItems.ball_dynamite });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() });
|
addRecipeAuto(new ItemStack(ModBlocks.det_miner, 12), new Object[] { "FFF", "ITI", "ITI", 'F', Items.flint, 'I', STEEL.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) });
|
addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) });
|
||||||
|
|||||||
@ -45,6 +45,9 @@ import com.hbm.world.feature.BedrockOre;
|
|||||||
import com.hbm.world.feature.OreCave;
|
import com.hbm.world.feature.OreCave;
|
||||||
import com.hbm.world.feature.OreLayer3D;
|
import com.hbm.world.feature.OreLayer3D;
|
||||||
import com.hbm.world.feature.SchistStratum;
|
import com.hbm.world.feature.SchistStratum;
|
||||||
|
import com.hbm.world.gen.util.LogicBlockActions;
|
||||||
|
import com.hbm.world.gen.util.LogicBlockConditions;
|
||||||
|
import com.hbm.world.gen.util.LogicBlockInteractions;
|
||||||
import com.hbm.world.generator.CellularDungeonFactory;
|
import com.hbm.world.generator.CellularDungeonFactory;
|
||||||
import cpw.mods.fml.common.*;
|
import cpw.mods.fml.common.*;
|
||||||
import cpw.mods.fml.common.Mod.EventHandler;
|
import cpw.mods.fml.common.Mod.EventHandler;
|
||||||
@ -575,6 +578,10 @@ public class MainRegistry {
|
|||||||
|
|
||||||
MobUtil.intializeMobPools();
|
MobUtil.intializeMobPools();
|
||||||
|
|
||||||
|
LogicBlockActions.initialize();
|
||||||
|
LogicBlockConditions.initialize();
|
||||||
|
LogicBlockInteractions.initialize();
|
||||||
|
|
||||||
proxy.registerMissileItems();
|
proxy.registerMissileItems();
|
||||||
|
|
||||||
// Load compatibility for OC.
|
// Load compatibility for OC.
|
||||||
|
|||||||
@ -398,10 +398,10 @@ public class ModEventHandler {
|
|||||||
MobUtil.equipFullSet(entity, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots);
|
MobUtil.equipFullSet(entity, ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
slotPools = MobUtil.slotPoolCommon;
|
slotPools = MobUtil.slotPoolCommonS;
|
||||||
|
|
||||||
} else if(entity instanceof EntitySkeleton) {
|
} else if(entity instanceof EntitySkeleton) {
|
||||||
slotPools = MobUtil.slotPoolRanged;
|
slotPools = MobUtil.slotPoolRangedS;
|
||||||
ItemStack bowReplacement = getSkelegun(soot, world.rand);
|
ItemStack bowReplacement = getSkelegun(soot, world.rand);
|
||||||
slotPools.put(0, createSlotPool(50, bowReplacement != null ? new Object[][]{{bowReplacement, 1}} : new Object[][]{}));
|
slotPools.put(0, createSlotPool(50, bowReplacement != null ? new Object[][]{{bowReplacement, 1}} : new Object[][]{}));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,9 +84,12 @@ public class StructureManager {
|
|||||||
public static final NBTStructure plane2 = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/crashed_plane_2.nbt"));
|
public static final NBTStructure plane2 = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/crashed_plane_2.nbt"));
|
||||||
|
|
||||||
public static final NBTStructure factory = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/factory.nbt"));
|
public static final NBTStructure factory = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/factory.nbt"));
|
||||||
public static final NBTStructure crane = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/crane.nbt"));
|
public static final NBTStructure crane = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/crane_mod.nbt"));
|
||||||
public static final NBTStructure broadcasting_tower = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/broadcasting_tower.nbt"));
|
public static final NBTStructure broadcasting_tower = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/broadcasting_tower.nbt"));
|
||||||
|
|
||||||
|
public static final NBTStructure excavator = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/excavator.nbt"));
|
||||||
|
public static final NBTStructure repeater_radio = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/repeater_radio.nbt"));
|
||||||
|
|
||||||
public static final NBTStructure spire = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/spire.nbt"));
|
public static final NBTStructure spire = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/spire.nbt"));
|
||||||
|
|
||||||
// public static final NBTStructure test_rot = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/test-rot.nbt"));
|
// public static final NBTStructure test_rot = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/test-rot.nbt"));
|
||||||
|
|||||||
@ -16,7 +16,8 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase {
|
|||||||
protected int lock;
|
protected int lock;
|
||||||
private boolean isLocked = false;
|
private boolean isLocked = false;
|
||||||
protected double lockMod = 0.1D;
|
protected double lockMod = 0.1D;
|
||||||
|
/** Whether a counterfeit lock can be made out of it*/
|
||||||
|
public boolean cheesable = true;
|
||||||
public boolean isLocked() {
|
public boolean isLocked() {
|
||||||
return isLocked;
|
return isLocked;
|
||||||
}
|
}
|
||||||
@ -29,6 +30,11 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase {
|
|||||||
markDirty();
|
markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void unlock() {
|
||||||
|
isLocked = false;
|
||||||
|
markDirty();
|
||||||
|
}
|
||||||
|
|
||||||
public void setPins(int pins) { lock = pins; markDirty(); }
|
public void setPins(int pins) { lock = pins; markDirty(); }
|
||||||
public int getPins() { return lock; }
|
public int getPins() { return lock; }
|
||||||
public void setMod(double mod) { lockMod = mod; markDirty(); }
|
public void setMod(double mod) { lockMod = mod; markDirty(); }
|
||||||
@ -39,6 +45,7 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase {
|
|||||||
super.readFromNBT(nbt);
|
super.readFromNBT(nbt);
|
||||||
|
|
||||||
lock = nbt.getInteger("lock");
|
lock = nbt.getInteger("lock");
|
||||||
|
cheesable = nbt.getBoolean("cheesable");
|
||||||
isLocked = nbt.getBoolean("isLocked");
|
isLocked = nbt.getBoolean("isLocked");
|
||||||
lockMod = nbt.getDouble("lockMod");
|
lockMod = nbt.getDouble("lockMod");
|
||||||
}
|
}
|
||||||
@ -48,6 +55,7 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase {
|
|||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
|
|
||||||
nbt.setInteger("lock", lock);
|
nbt.setInteger("lock", lock);
|
||||||
|
nbt.setBoolean("cheesable", cheesable);
|
||||||
nbt.setBoolean("isLocked", isLocked);
|
nbt.setBoolean("isLocked", isLocked);
|
||||||
nbt.setDouble("lockMod", lockMod);
|
nbt.setDouble("lockMod", lockMod);
|
||||||
}
|
}
|
||||||
@ -57,6 +65,7 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase {
|
|||||||
super.serialize(buf);
|
super.serialize(buf);
|
||||||
|
|
||||||
buf.writeInt(lock);
|
buf.writeInt(lock);
|
||||||
|
buf.writeBoolean(cheesable);
|
||||||
buf.writeBoolean(isLocked);
|
buf.writeBoolean(isLocked);
|
||||||
buf.writeDouble(lockMod);
|
buf.writeDouble(lockMod);
|
||||||
}
|
}
|
||||||
@ -66,6 +75,7 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase {
|
|||||||
super.deserialize(buf);
|
super.deserialize(buf);
|
||||||
|
|
||||||
lock = buf.readInt();
|
lock = buf.readInt();
|
||||||
|
cheesable = buf.readBoolean();
|
||||||
isLocked = buf.readBoolean();
|
isLocked = buf.readBoolean();
|
||||||
lockMod = buf.readDouble();
|
lockMod = buf.readDouble();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -71,6 +71,10 @@ public class ColorUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int color(int r, int g, int b) {
|
||||||
|
return ((r & 255) << 16) | ((g & 255) << 8) | (b & 255);
|
||||||
|
}
|
||||||
|
|
||||||
public static int ir(int color) {
|
public static int ir(int color) {
|
||||||
return (color & 0xff0000) >> 16;
|
return (color & 0xff0000) >> 16;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,6 +30,8 @@ public class LootGenerator {
|
|||||||
public static final String LOOT_METEOR = "LOOT_METEOR";
|
public static final String LOOT_METEOR = "LOOT_METEOR";
|
||||||
public static final String LOOT_FLAREGUN = "LOOT_FLAREGUN";
|
public static final String LOOT_FLAREGUN = "LOOT_FLAREGUN";
|
||||||
public static final String LOOT_SHIT = "LOOT_SHIT";
|
public static final String LOOT_SHIT = "LOOT_SHIT";
|
||||||
|
public static final String LOOT_MECHANICAL = "LOOT_MECHANICAL";
|
||||||
|
public static final String LOOT_GEAR = "LOOT_GEAR";
|
||||||
|
|
||||||
public static void applyLoot(World world, int x, int y, int z, String name) {
|
public static void applyLoot(World world, int x, int y, int z, String name) {
|
||||||
switch(name) {
|
switch(name) {
|
||||||
@ -44,6 +46,8 @@ public class LootGenerator {
|
|||||||
case LOOT_METEOR: lootBookMeteor(world, x, y, z);
|
case LOOT_METEOR: lootBookMeteor(world, x, y, z);
|
||||||
case LOOT_FLAREGUN: lootFlareGun(world, x, y, z);
|
case LOOT_FLAREGUN: lootFlareGun(world, x, y, z);
|
||||||
case LOOT_SHIT: lootShit(world, x, y, z);
|
case LOOT_SHIT: lootShit(world, x, y, z);
|
||||||
|
case LOOT_MECHANICAL: lootMechanical(world, x, y, z);
|
||||||
|
case LOOT_GEAR: lootMechanical(world, x, y, z);
|
||||||
default: lootBones(world, x, y, z); break;
|
default: lootBones(world, x, y, z); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -60,6 +64,9 @@ public class LootGenerator {
|
|||||||
LOOT_GLYPHID_HIVE,
|
LOOT_GLYPHID_HIVE,
|
||||||
LOOT_METEOR,
|
LOOT_METEOR,
|
||||||
LOOT_FLAREGUN,
|
LOOT_FLAREGUN,
|
||||||
|
LOOT_MECHANICAL,
|
||||||
|
LOOT_GEAR,
|
||||||
|
LOOT_SHIT,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,4 +254,30 @@ public class LootGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void lootMechanical(World world, int x, int y, int z) {
|
||||||
|
|
||||||
|
TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if(loot != null && loot.items.isEmpty()) {
|
||||||
|
|
||||||
|
int limit = world.rand.nextInt(6) + 1;
|
||||||
|
for(int i = 0; i < limit; i++) {
|
||||||
|
addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_MECHANICAL), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void lootGear(World world, int x, int y, int z) {
|
||||||
|
|
||||||
|
TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if(loot != null && loot.items.isEmpty()) {
|
||||||
|
|
||||||
|
int limit = world.rand.nextInt(6) + 1;
|
||||||
|
for(int i = 0; i < limit; i++) {
|
||||||
|
addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_GEAR), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,11 @@ import java.util.*;
|
|||||||
|
|
||||||
public class MobUtil {
|
public class MobUtil {
|
||||||
|
|
||||||
|
//for soot mobs
|
||||||
|
public static Map<Integer, List<WeightedRandomObject>> slotPoolCommonS = new HashMap<>();
|
||||||
|
public static Map<Integer, List<WeightedRandomObject>> slotPoolRangedS = new HashMap<>();
|
||||||
|
|
||||||
|
//for gob block
|
||||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolCommon = new HashMap<>();
|
public static Map<Integer, List<WeightedRandomObject>> slotPoolCommon = new HashMap<>();
|
||||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolRanged = new HashMap<>();
|
public static Map<Integer, List<WeightedRandomObject>> slotPoolRanged = new HashMap<>();
|
||||||
|
|
||||||
@ -33,25 +37,26 @@ public class MobUtil {
|
|||||||
public static Map<Integer, List<WeightedRandomObject>> slotPoolMelee = new HashMap<>();
|
public static Map<Integer, List<WeightedRandomObject>> slotPoolMelee = new HashMap<>();
|
||||||
|
|
||||||
public static void intializeMobPools(){
|
public static void intializeMobPools(){
|
||||||
slotPoolCommon.put(4, createSlotPool(8000, new Object[][]{ //new slots, smooth, brushed, no wrinkles // old slots, wrinkled, rusty, not smooth
|
//soot mobs
|
||||||
|
slotPoolCommonS.put(4, createSlotPool(8000, new Object[][]{ //new slots, smooth, brushed, no wrinkles // old slots, wrinkled, rusty, not smooth
|
||||||
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
||||||
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
||||||
{ModItems.cobalt_helmet, 2}, {ModItems.rag_piss, 1}, {ModItems.hat, 1}, {ModItems.alloy_helmet, 2},
|
{ModItems.cobalt_helmet, 2}, {ModItems.rag_piss, 1}, {ModItems.hat, 1}, {ModItems.alloy_helmet, 2},
|
||||||
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
||||||
}));
|
}));
|
||||||
slotPoolCommon.put(3, createSlotPool(7000, new Object[][]{
|
slotPoolCommonS.put(3, createSlotPool(7000, new Object[][]{
|
||||||
{ModItems.starmetal_plate, 1}, {ModItems.cobalt_plate, 2}, {ModItems.robes_plate, 32},
|
{ModItems.starmetal_plate, 1}, {ModItems.cobalt_plate, 2}, {ModItems.robes_plate, 32},
|
||||||
{ModItems.jackt, 32}, {ModItems.jackt2, 32}, {ModItems.alloy_plate, 2},
|
{ModItems.jackt, 32}, {ModItems.jackt2, 32}, {ModItems.alloy_plate, 2},
|
||||||
{ModItems.steel_plate, 2}
|
{ModItems.steel_plate, 2}
|
||||||
}));
|
}));
|
||||||
slotPoolCommon.put(2, createSlotPool(7000, new Object[][]{
|
slotPoolCommonS.put(2, createSlotPool(7000, new Object[][]{
|
||||||
{ModItems.zirconium_legs, 1}, {ModItems.cobalt_legs, 2}, {ModItems.steel_legs, 16},
|
{ModItems.zirconium_legs, 1}, {ModItems.cobalt_legs, 2}, {ModItems.steel_legs, 16},
|
||||||
{ModItems.titanium_legs, 8}, {ModItems.robes_legs, 32}, {ModItems.alloy_legs, 2}
|
{ModItems.titanium_legs, 8}, {ModItems.robes_legs, 32}, {ModItems.alloy_legs, 2}
|
||||||
}));
|
}));
|
||||||
slotPoolCommon.put(1, createSlotPool(7000, new Object[][]{
|
slotPoolCommonS.put(1, createSlotPool(7000, new Object[][]{
|
||||||
{ModItems.robes_boots, 32}, {ModItems.steel_boots, 16}, {ModItems.cobalt_boots, 2}, {ModItems.alloy_boots, 2}
|
{ModItems.robes_boots, 32}, {ModItems.steel_boots, 16}, {ModItems.cobalt_boots, 2}, {ModItems.alloy_boots, 2}
|
||||||
}));
|
}));
|
||||||
slotPoolCommon.put(0, createSlotPool(10000, new Object[][]{
|
slotPoolCommonS.put(0, createSlotPool(10000, new Object[][]{
|
||||||
{ModItems.pipe_lead, 30}, {ModItems.crowbar, 25}, {ModItems.geiger_counter, 20},
|
{ModItems.pipe_lead, 30}, {ModItems.crowbar, 25}, {ModItems.geiger_counter, 20},
|
||||||
{ModItems.reer_graar, 16}, {ModItems.steel_pickaxe, 12}, {ModItems.stopsign, 10},
|
{ModItems.reer_graar, 16}, {ModItems.steel_pickaxe, 12}, {ModItems.stopsign, 10},
|
||||||
{ModItems.sopsign, 8}, {ModItems.chernobylsign, 6}, {ModItems.steel_sword, 15},
|
{ModItems.sopsign, 8}, {ModItems.chernobylsign, 6}, {ModItems.steel_sword, 15},
|
||||||
@ -59,25 +64,73 @@ public class MobUtil {
|
|||||||
{ModItems.wrench, 20}
|
{ModItems.wrench, 20}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
slotPoolRanged.put(4, createSlotPool(12000, new Object[][]{
|
slotPoolRangedS.put(4, createSlotPool(8000, new Object[][]{
|
||||||
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
||||||
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
||||||
{ModItems.rag_piss, 1}, {ModItems.goggles, 1}, {ModItems.alloy_helmet, 2},
|
{ModItems.rag_piss, 1}, {ModItems.goggles, 1}, {ModItems.alloy_helmet, 2},
|
||||||
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
||||||
}));
|
}));
|
||||||
slotPoolRanged.put(3, createSlotPool(10000, new Object[][]{
|
slotPoolRangedS.put(3, createSlotPool(7000, new Object[][]{
|
||||||
{ModItems.starmetal_plate, 1}, {ModItems.cobalt_plate, 2}, {ModItems.alloy_plate, 2}, //sadly they cant wear jackets bc it breaks it
|
{ModItems.starmetal_plate, 1}, {ModItems.cobalt_plate, 2}, {ModItems.alloy_plate, 2}, //sadly they cant wear jackets bc it breaks it
|
||||||
{ModItems.steel_plate, 8}, {ModItems.titanium_plate, 4}
|
{ModItems.steel_plate, 8}, {ModItems.titanium_plate, 4}
|
||||||
}));
|
}));
|
||||||
slotPoolRanged.put(2, createSlotPool(10000, new Object[][]{
|
slotPoolRangedS.put(2, createSlotPool(7000, new Object[][]{
|
||||||
{ModItems.zirconium_legs, 1}, {ModItems.cobalt_legs, 2}, {ModItems.steel_legs, 16},
|
{ModItems.zirconium_legs, 1}, {ModItems.cobalt_legs, 2}, {ModItems.steel_legs, 16},
|
||||||
{ModItems.titanium_legs, 8}, {ModItems.robes_legs, 32}, {ModItems.alloy_legs, 2},
|
{ModItems.titanium_legs, 8}, {ModItems.robes_legs, 32}, {ModItems.alloy_legs, 2},
|
||||||
}));
|
}));
|
||||||
slotPoolRanged.put(1, createSlotPool(10000, new Object[][]{
|
slotPoolRangedS.put(1, createSlotPool(10000, new Object[][]{
|
||||||
{ModItems.robes_boots, 32}, {ModItems.steel_boots, 16}, {ModItems.cobalt_boots, 2}, {ModItems.alloy_boots, 2},
|
{ModItems.robes_boots, 32}, {ModItems.steel_boots, 16}, {ModItems.cobalt_boots, 2}, {ModItems.alloy_boots, 2},
|
||||||
{ModItems.titanium_boots, 6}
|
{ModItems.titanium_boots, 6}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
//gob block
|
||||||
|
//soot mobs
|
||||||
|
slotPoolCommon.put(4, createSlotPool(0, new Object[][]{ //new slots, smooth, brushed, no wrinkles // old slots, wrinkled, rusty, not smooth
|
||||||
|
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
||||||
|
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
||||||
|
{ModItems.cobalt_helmet, 2}, {ModItems.rag_piss, 1}, {ModItems.hat, 1}, {ModItems.alloy_helmet, 2},
|
||||||
|
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
||||||
|
}));
|
||||||
|
slotPoolCommon.put(3, createSlotPool(10, new Object[][]{
|
||||||
|
{ModItems.starmetal_plate, 1}, {ModItems.cobalt_plate, 2}, {ModItems.robes_plate, 32},
|
||||||
|
{ModItems.jackt, 32}, {ModItems.jackt2, 32}, {ModItems.alloy_plate, 2},
|
||||||
|
{ModItems.steel_plate, 2}
|
||||||
|
}));
|
||||||
|
slotPoolCommon.put(2, createSlotPool(20, new Object[][]{
|
||||||
|
{ModItems.zirconium_legs, 1}, {ModItems.cobalt_legs, 2}, {ModItems.steel_legs, 16},
|
||||||
|
{ModItems.titanium_legs, 8}, {ModItems.robes_legs, 32}, {ModItems.alloy_legs, 2}
|
||||||
|
}));
|
||||||
|
slotPoolCommon.put(1, createSlotPool(10, new Object[][]{
|
||||||
|
{ModItems.robes_boots, 32}, {ModItems.steel_boots, 16}, {ModItems.cobalt_boots, 2}, {ModItems.alloy_boots, 2}
|
||||||
|
}));
|
||||||
|
slotPoolCommon.put(0, createSlotPool(1000, new Object[][]{
|
||||||
|
{ModItems.pipe_lead, 30}, {ModItems.crowbar, 25}, {ModItems.geiger_counter, 20},
|
||||||
|
{ModItems.reer_graar, 16}, {ModItems.steel_pickaxe, 12}, {ModItems.stopsign, 10},
|
||||||
|
{ModItems.sopsign, 8}, {ModItems.chernobylsign, 6}, {ModItems.steel_sword, 15},
|
||||||
|
{ModItems.titanium_sword, 8}, {ModItems.lead_gavel, 4}, {ModItems.wrench_flipped, 2},
|
||||||
|
{ModItems.wrench, 20}
|
||||||
|
}));
|
||||||
|
|
||||||
|
slotPoolRanged.put(4, createSlotPool(0, new Object[][]{
|
||||||
|
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
||||||
|
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
||||||
|
{ModItems.rag_piss, 1}, {ModItems.goggles, 1}, {ModItems.alloy_helmet, 2},
|
||||||
|
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
||||||
|
}));
|
||||||
|
slotPoolRanged.put(3, createSlotPool(10, new Object[][]{
|
||||||
|
{ModItems.starmetal_plate, 1}, {ModItems.cobalt_plate, 2}, {ModItems.alloy_plate, 2}, //sadly they cant wear jackets bc it breaks it
|
||||||
|
{ModItems.steel_plate, 8}, {ModItems.titanium_plate, 4}
|
||||||
|
}));
|
||||||
|
slotPoolRanged.put(2, createSlotPool(10, new Object[][]{
|
||||||
|
{ModItems.zirconium_legs, 1}, {ModItems.cobalt_legs, 2}, {ModItems.steel_legs, 16},
|
||||||
|
{ModItems.titanium_legs, 8}, {ModItems.robes_legs, 32}, {ModItems.alloy_legs, 2},
|
||||||
|
}));
|
||||||
|
slotPoolRanged.put(1, createSlotPool(10, new Object[][]{
|
||||||
|
{ModItems.robes_boots, 32}, {ModItems.steel_boots, 16}, {ModItems.cobalt_boots, 2}, {ModItems.alloy_boots, 2},
|
||||||
|
{ModItems.titanium_boots, 6}
|
||||||
|
}));
|
||||||
|
|
||||||
|
//soot guns
|
||||||
slotPoolGuns.put(0.3, createSlotPool(new Object[][]{
|
slotPoolGuns.put(0.3, createSlotPool(new Object[][]{
|
||||||
{ModItems.gun_light_revolver, 16}, {ModItems.gun_greasegun, 8}, {ModItems.gun_maresleg, 2}
|
{ModItems.gun_light_revolver, 16}, {ModItems.gun_greasegun, 8}, {ModItems.gun_maresleg, 2}
|
||||||
}));
|
}));
|
||||||
@ -111,9 +164,9 @@ public class MobUtil {
|
|||||||
{ModItems.t51_boots, 4}, {ModItems.hazmat_boots, 6},
|
{ModItems.t51_boots, 4}, {ModItems.hazmat_boots, 6},
|
||||||
{ModItems.robes_boots, 8}
|
{ModItems.robes_boots, 8}
|
||||||
}));
|
}));
|
||||||
slotPoolAdv.put(0, createSlotPool(new Object[][]{
|
slotPoolAdv.put(0, createSlotPool(500,new Object[][]{
|
||||||
{ModItems.pipe_lead, 20}, {ModItems.crowbar, 30}, {ModItems.geiger_counter, 20},
|
{ModItems.pipe_lead, 20}, {ModItems.crowbar, 10}, {ModItems.geiger_counter, 10},
|
||||||
{ModItems.reer_graar, 20}, {ModItems.wrench_flipped, 12}, {ModItems.stopsign, 16},
|
{ModItems.reer_graar, 20}, {ModItems.wrench_flipped, 20}, {ModItems.stopsign, 16},
|
||||||
{ModItems.sopsign, 4}, {ModItems.chernobylsign, 16},
|
{ModItems.sopsign, 4}, {ModItems.chernobylsign, 16},
|
||||||
{ModItems.titanium_sword, 18}, {ModItems.lead_gavel, 8},
|
{ModItems.titanium_sword, 18}, {ModItems.lead_gavel, 8},
|
||||||
{ModItems.wrench, 20}
|
{ModItems.wrench, 20}
|
||||||
@ -121,68 +174,15 @@ public class MobUtil {
|
|||||||
|
|
||||||
//For action block
|
//For action block
|
||||||
slotPoolGunsTier1.put(0, createSlotPool(0, new Object[][]{
|
slotPoolGunsTier1.put(0, createSlotPool(0, new Object[][]{
|
||||||
{ModItems.gun_light_revolver, 16}, {ModItems.gun_greasegun, 8}, {ModItems.gun_maresleg, 2}
|
{ModItems.gun_light_revolver, 16}, {ModItems.gun_greasegun, 8}, {ModItems.gun_maresleg, 2}, {ModItems.gun_flaregun, 1}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
slotPoolGunsTier2.put(0, createSlotPool(0, new Object[][]{
|
slotPoolGunsTier2.put(0, createSlotPool(0, new Object[][]{
|
||||||
{ModItems.gun_uzi, 10}, {ModItems.gun_maresleg, 8}, {ModItems.gun_henry, 12}, {ModItems.gun_heavy_revolver, 4}, {ModItems.gun_flaregun, 4}, {ModItems.gun_carbine, 4}
|
{ModItems.gun_uzi, 12}, {ModItems.gun_maresleg, 8}, {ModItems.gun_henry, 12}, {ModItems.gun_heavy_revolver, 8}, {ModItems.gun_flaregun, 4}, {ModItems.gun_star_f, 8}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
slotPoolGunsTier3.put(0, createSlotPool(0, new Object[][]{
|
slotPoolGunsTier3.put(0, createSlotPool(0, new Object[][]{
|
||||||
{ModItems.gun_uzi, 25}, {ModItems.gun_spas12, 20}, {ModItems.gun_carbine, 20}, {ModItems.gun_g3, 10}, {ModItems.gun_am180, 5}, {ModItems.gun_stg77, 5}
|
{ModItems.gun_g3, 25}, {ModItems.gun_spas12, 20}, {ModItems.gun_carbine, 15}, {ModItems.gun_star_f, 20}, {ModItems.gun_am180, 6}, {ModItems.gun_amat, 5}
|
||||||
}));
|
|
||||||
|
|
||||||
slotPoolMasks.put(4, createSlotPool(0, new Object[][]{
|
|
||||||
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
|
||||||
{ModItems.rag_piss, 4}, {ModItems.goggles, 12}
|
|
||||||
}));
|
|
||||||
|
|
||||||
slotPoolHelms.put(4, createSlotPool(0, new Object[][]{
|
|
||||||
{ModItems.gas_mask_m65, 16}, {ModItems.gas_mask_olde, 12}, {ModItems.mask_of_infamy, 8},
|
|
||||||
{ModItems.gas_mask_mono, 8}, {ModItems.robes_helmet, 32}, {ModItems.no9, 16},
|
|
||||||
{ModItems.cobalt_helmet, 2}, {ModItems.hat, 1}, {ModItems.alloy_helmet, 2},
|
|
||||||
{ModItems.titanium_helmet, 4}, {ModItems.steel_helmet, 8}
|
|
||||||
}));
|
|
||||||
|
|
||||||
slotPoolTierArmor.put(4, createSlotPool(new Object[][]{
|
|
||||||
{ModItems.gas_mask_m65, 20},
|
|
||||||
{ModItems.gas_mask_olde, 15},
|
|
||||||
{ModItems.steel_helmet, 25},
|
|
||||||
{ModItems.titanium_helmet, 15},
|
|
||||||
{ModItems.alloy_helmet, 10},
|
|
||||||
}));
|
|
||||||
|
|
||||||
slotPoolTierArmor.put(3, createSlotPool(new Object[][]{
|
|
||||||
{ModItems.steel_plate, 30},
|
|
||||||
{ModItems.titanium_plate, 20},
|
|
||||||
{ModItems.alloy_plate, 15},
|
|
||||||
{ModItems.cobalt_plate, 5},
|
|
||||||
{ModItems.starmetal_plate, 5}
|
|
||||||
}));
|
|
||||||
|
|
||||||
slotPoolTierArmor.put(2, createSlotPool(new Object[][]{
|
|
||||||
{ModItems.steel_legs, 30},
|
|
||||||
{ModItems.titanium_legs, 20},
|
|
||||||
{ModItems.alloy_legs, 15},
|
|
||||||
{ModItems.cobalt_legs, 5},
|
|
||||||
{ModItems.zirconium_legs, 5}
|
|
||||||
}));
|
|
||||||
|
|
||||||
slotPoolTierArmor.put(1, createSlotPool(new Object[][]{
|
|
||||||
{ModItems.steel_boots, 30},
|
|
||||||
{ModItems.robes_boots, 25},
|
|
||||||
{ModItems.titanium_boots, 20},
|
|
||||||
{ModItems.alloy_boots, 15},
|
|
||||||
{ModItems.hazmat_boots, 10},
|
|
||||||
{ModItems.cobalt_boots, 5},
|
|
||||||
}));
|
|
||||||
|
|
||||||
slotPoolMelee.put(0, createSlotPool(2000, new Object[][]{
|
|
||||||
{ModItems.pipe_lead, 40}, {ModItems.crowbar, 35}, {ModItems.wrench, 30},
|
|
||||||
{ModItems.steel_sword, 25}, {ModItems.titanium_sword, 20},
|
|
||||||
{ModItems.reer_graar, 20}, {ModItems.stopsign, 15},
|
|
||||||
{ModItems.lead_gavel, 12}, {ModItems.wrench_flipped, 10},
|
|
||||||
{ModItems.sopsign, 8}, {ModItems.chernobylsign, 8}
|
|
||||||
}));
|
}));
|
||||||
|
|
||||||
slotPoolAdvRanged = new HashMap<>(slotPoolAdv);
|
slotPoolAdvRanged = new HashMap<>(slotPoolAdv);
|
||||||
@ -268,4 +268,15 @@ public class MobUtil {
|
|||||||
|
|
||||||
entity.tasks.addTask(3, new EntityAIFireGun(entity));
|
entity.tasks.addTask(3, new EntityAIFireGun(entity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void addFireTask(EntityLiving entity, EntityAIFireGun gunTask) {
|
||||||
|
entity.setEquipmentDropChance(0, 0); // Prevent dropping guns
|
||||||
|
|
||||||
|
for(Object entry : entity.tasks.taskEntries) {
|
||||||
|
EntityAITasks.EntityAITaskEntry task = (EntityAITasks.EntityAITaskEntry) entry;
|
||||||
|
if(task.action instanceof EntityAIFireGun) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
entity.tasks.addTask(3, gunTask);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import java.io.InputStream;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
|
import com.hbm.config.ServerConfig;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
@ -343,7 +344,7 @@ public class NBTStructure {
|
|||||||
|
|
||||||
palette[i] = new BlockDefinition(blockName, meta);
|
palette[i] = new BlockDefinition(blockName, meta);
|
||||||
|
|
||||||
if(StructureConfig.debugStructures && palette[i].block == Blocks.air) {
|
if(ServerConfig.STRUCTURE_DEBUG.get() && palette[i].block == Blocks.air) {
|
||||||
palette[i] = new BlockDefinition(ModBlocks.wand_air, meta);
|
palette[i] = new BlockDefinition(ModBlocks.wand_air, meta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -416,7 +417,7 @@ public class NBTStructure {
|
|||||||
List<JigsawConnection> namedConnections = toConnections.computeIfAbsent(ourName, name -> new ArrayList<>());
|
List<JigsawConnection> namedConnections = toConnections.computeIfAbsent(ourName, name -> new ArrayList<>());
|
||||||
namedConnections.add(connection);
|
namedConnections.add(connection);
|
||||||
|
|
||||||
if(!StructureConfig.debugStructures) {
|
if(!ServerConfig.STRUCTURE_DEBUG.get()) {
|
||||||
blockState = new BlockState(new BlockDefinition(replaceBlock, replaceMeta));
|
blockState = new BlockState(new BlockDefinition(replaceBlock, replaceMeta));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import java.util.Random;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
|
import com.hbm.config.ServerConfig;
|
||||||
import com.hbm.config.StructureConfig;
|
import com.hbm.config.StructureConfig;
|
||||||
import com.hbm.util.Tuple.Pair;
|
import com.hbm.util.Tuple.Pair;
|
||||||
import com.hbm.util.Tuple.Quartet;
|
import com.hbm.util.Tuple.Quartet;
|
||||||
@ -109,7 +110,7 @@ public class SpawnCondition {
|
|||||||
// Make sure structure debug is enabled, or it will no-op
|
// Make sure structure debug is enabled, or it will no-op
|
||||||
// Do not use in generation
|
// Do not use in generation
|
||||||
public void buildAll(World world, int x, int y, int z) {
|
public void buildAll(World world, int x, int y, int z) {
|
||||||
if(!StructureConfig.debugStructures) return;
|
if(!ServerConfig.STRUCTURE_DEBUG.get()) return;
|
||||||
|
|
||||||
int padding = 5;
|
int padding = 5;
|
||||||
int oz = 0;
|
int oz = 0;
|
||||||
|
|||||||
@ -7,9 +7,12 @@ import com.hbm.blocks.generic.LogicBlock;
|
|||||||
import com.hbm.entity.item.EntityFallingBlockNT;
|
import com.hbm.entity.item.EntityFallingBlockNT;
|
||||||
import com.hbm.entity.missile.EntityMissileTier2;
|
import com.hbm.entity.missile.EntityMissileTier2;
|
||||||
import com.hbm.entity.mob.EntityUndeadSoldier;
|
import com.hbm.entity.mob.EntityUndeadSoldier;
|
||||||
|
import com.hbm.entity.mob.ai.EntityAIFireGun;
|
||||||
import com.hbm.items.ItemEnums;
|
import com.hbm.items.ItemEnums;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.tileentity.TileEntityDoorGeneric;
|
import com.hbm.tileentity.TileEntityDoorGeneric;
|
||||||
|
import com.hbm.tileentity.bomb.TileEntityCharge;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityLockableBase;
|
||||||
import com.hbm.tileentity.machine.storage.TileEntityCrateBase;
|
import com.hbm.tileentity.machine.storage.TileEntityCrateBase;
|
||||||
import com.hbm.util.ContaminationUtil;
|
import com.hbm.util.ContaminationUtil;
|
||||||
import com.hbm.util.MobUtil;
|
import com.hbm.util.MobUtil;
|
||||||
@ -20,6 +23,7 @@ import net.minecraft.entity.EntityLivingBase;
|
|||||||
import net.minecraft.entity.effect.EntityLightningBolt;
|
import net.minecraft.entity.effect.EntityLightningBolt;
|
||||||
import net.minecraft.entity.monster.EntitySkeleton;
|
import net.minecraft.entity.monster.EntitySkeleton;
|
||||||
import net.minecraft.entity.monster.EntityZombie;
|
import net.minecraft.entity.monster.EntityZombie;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@ -33,7 +37,7 @@ import java.util.function.Consumer;
|
|||||||
|
|
||||||
public class LogicBlockActions {
|
public class LogicBlockActions {
|
||||||
|
|
||||||
public static LinkedHashMap<String, Consumer<LogicBlock.TileEntityLogicBlock>> actions = new LinkedHashMap<>();
|
public static LinkedHashMap<String, Consumer<LogicBlock.TileEntityLogicBlock>> actions;
|
||||||
|
|
||||||
public static Consumer<LogicBlock.TileEntityLogicBlock> PHASE_ABERRATOR = (tile) -> {
|
public static Consumer<LogicBlock.TileEntityLogicBlock> PHASE_ABERRATOR = (tile) -> {
|
||||||
World world = tile.getWorldObj();
|
World world = tile.getWorldObj();
|
||||||
@ -169,81 +173,103 @@ public class LogicBlockActions {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETON_GUN_TIER_1 = (tile) -> {
|
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETONS_GUN_TIER_1 = (tile) -> {
|
||||||
World world = tile.getWorldObj();
|
World world = tile.getWorldObj();
|
||||||
int x = tile.xCoord;
|
int x = tile.xCoord;
|
||||||
int y = tile.yCoord;
|
int y = tile.yCoord;
|
||||||
int z = tile.zCoord;
|
int z = tile.zCoord;
|
||||||
if (tile.phase == 1) {
|
if (tile.phase == 1) {
|
||||||
EntitySkeleton mob = new EntitySkeleton(world);
|
for (int i = 0; i < 3; i++) {
|
||||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
EntitySkeleton mob = new EntitySkeleton(world);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier1, new Random());
|
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMasks, new Random());
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier1, new Random());
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolRanged, new Random());
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMasks, new Random());
|
||||||
world.spawnEntityInWorld(mob);
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolRanged, new Random());
|
||||||
world.setBlock(x, y, z, Blocks.air);
|
world.spawnEntityInWorld(mob);
|
||||||
|
world.setBlock(x, y, z, Blocks.air);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETON_GUN_TIER_2 = (tile) -> {
|
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETONS_GUN_TIER_2 = (tile) -> {
|
||||||
World world = tile.getWorldObj();
|
World world = tile.getWorldObj();
|
||||||
int x = tile.xCoord;
|
int x = tile.xCoord;
|
||||||
int y = tile.yCoord;
|
int y = tile.yCoord;
|
||||||
int z = tile.zCoord;
|
int z = tile.zCoord;
|
||||||
if (tile.phase == 1) {
|
if (tile.phase == 1) {
|
||||||
EntitySkeleton mob = new EntitySkeleton(world);
|
for (int i = 0; i < 3; i++) {
|
||||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
EntitySkeleton mob = new EntitySkeleton(world);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier2, new Random());
|
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMasks, new Random());
|
EntityAIFireGun gunTask = new EntityAIFireGun(mob);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolTierArmor, new Random());
|
gunTask.minWait = 4;
|
||||||
world.spawnEntityInWorld(mob);
|
gunTask.maxWait = 5;
|
||||||
world.setBlock(x, y, z, Blocks.air);
|
gunTask.maxRange = 50;
|
||||||
|
gunTask.burstTime = 6;
|
||||||
|
gunTask.inaccuracy = 5F;
|
||||||
|
gunTask.randomBurst = false;
|
||||||
|
MobUtil.addFireTask(mob, gunTask);
|
||||||
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier2, new Random());
|
||||||
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolRanged, new Random());
|
||||||
|
world.spawnEntityInWorld(mob);
|
||||||
|
world.setBlock(x, y, z, Blocks.air);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETON_GUN_TIER_3 = (tile) -> {
|
public static Consumer<LogicBlock.TileEntityLogicBlock> SKELETONS_GUN_TIER_3 = (tile) -> {
|
||||||
World world = tile.getWorldObj();
|
World world = tile.getWorldObj();
|
||||||
int x = tile.xCoord;
|
int x = tile.xCoord;
|
||||||
int y = tile.yCoord;
|
int y = tile.yCoord;
|
||||||
int z = tile.zCoord;
|
int z = tile.zCoord;
|
||||||
if (tile.phase == 1) {
|
if (tile.phase == 1) {
|
||||||
EntitySkeleton mob = new EntitySkeleton(world);
|
for (int i = 0; i < 3; i++) {
|
||||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
EntitySkeleton mob = new EntitySkeleton(world);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier3, new Random());
|
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMasks, new Random());
|
EntityAIFireGun gunTask = new EntityAIFireGun(mob);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolAdvRanged, new Random());
|
gunTask.minWait = 4;
|
||||||
world.spawnEntityInWorld(mob);
|
gunTask.maxWait = 5;
|
||||||
world.setBlock(x, y, z, Blocks.air);
|
gunTask.maxRange = 100;
|
||||||
|
gunTask.burstTime = 6;
|
||||||
|
gunTask.inaccuracy = 1F;
|
||||||
|
gunTask.randomBurst = false;
|
||||||
|
MobUtil.addFireTask(mob, gunTask);
|
||||||
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolGunsTier3, new Random());
|
||||||
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolAdvRanged, new Random());
|
||||||
|
world.spawnEntityInWorld(mob);
|
||||||
|
world.setBlock(x, y, z, Blocks.air);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static Consumer<LogicBlock.TileEntityLogicBlock> ZOMBIE_TIER_1 = (tile) -> {
|
public static Consumer<LogicBlock.TileEntityLogicBlock> ZOMBIES_TIER_1 = (tile) -> {
|
||||||
World world = tile.getWorldObj();
|
World world = tile.getWorldObj();
|
||||||
int x = tile.xCoord;
|
int x = tile.xCoord;
|
||||||
int y = tile.yCoord;
|
int y = tile.yCoord;
|
||||||
int z = tile.zCoord;
|
int z = tile.zCoord;
|
||||||
if (tile.phase == 1) {
|
if (tile.phase == 1) {
|
||||||
EntityZombie mob = new EntityZombie(world);
|
for (int i = 0; i < 3; i++) {
|
||||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
EntityZombie mob = new EntityZombie(world);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMelee, new Random());
|
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolTierArmor, new Random());
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolCommon, new Random());
|
||||||
world.spawnEntityInWorld(mob);
|
world.spawnEntityInWorld(mob);
|
||||||
world.setBlock(x, y, z, Blocks.air);
|
world.setBlock(x, y, z, Blocks.air);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static Consumer<LogicBlock.TileEntityLogicBlock> ZOMBIE_TIER_2 = (tile) -> {
|
public static Consumer<LogicBlock.TileEntityLogicBlock> ZOMBIES_TIER_2 = (tile) -> {
|
||||||
World world = tile.getWorldObj();
|
World world = tile.getWorldObj();
|
||||||
int x = tile.xCoord;
|
int x = tile.xCoord;
|
||||||
int y = tile.yCoord;
|
int y = tile.yCoord;
|
||||||
int z = tile.zCoord;
|
int z = tile.zCoord;
|
||||||
if (tile.phase == 1) {
|
if (tile.phase == 1) {
|
||||||
EntityZombie mob = new EntityZombie(world);
|
for (int i = 0; i < 3; i++) {
|
||||||
mob.setPositionAndRotation(x, y, z, 0, 0);
|
EntityZombie mob = new EntityZombie(world);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolTierArmor, new Random());
|
mob.setPositionAndRotation(x, y, z, 0, 0);
|
||||||
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolMelee, new Random());
|
MobUtil.assignItemsToEntity(mob, MobUtil.slotPoolAdv, new Random());
|
||||||
world.spawnEntityInWorld(mob);
|
world.spawnEntityInWorld(mob);
|
||||||
world.setBlock(x, y, z, Blocks.air);
|
world.setBlock(x, y, z, Blocks.air);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -361,28 +387,139 @@ public class LogicBlockActions {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static Consumer<LogicBlock.TileEntityLogicBlock> POWER_LOCK = (tile) -> {
|
||||||
|
World world = tile.getWorldObj();
|
||||||
|
int x = tile.xCoord;
|
||||||
|
int y = tile.yCoord;
|
||||||
|
int z = tile.zCoord;
|
||||||
|
|
||||||
|
if(tile.phase == 0 && !world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y - 2, z + 1).expand(3, 3, 3)).isEmpty()){
|
||||||
|
world.getClosestPlayer(x,y,z, 300).addChatMessage(new ChatComponentText(
|
||||||
|
EnumChatFormatting.LIGHT_PURPLE + "[POWER LOCK]" +
|
||||||
|
EnumChatFormatting.RESET + " Low Power Warning! Locking Safe"));
|
||||||
|
tile.phase++;
|
||||||
|
|
||||||
|
TileEntityLockableBase safe = null;
|
||||||
|
|
||||||
|
for (int i1 = 0; i1 < 6; ++i1) {
|
||||||
|
if (world.getTileEntity(x + Facing.offsetsXForSide[i1], y + Facing.offsetsYForSide[i1], z + Facing.offsetsZForSide[i1]) instanceof TileEntityLockableBase) {
|
||||||
|
safe = (TileEntityLockableBase) world.getTileEntity(x + Facing.offsetsXForSide[i1], y + Facing.offsetsYForSide[i1], z + Facing.offsetsZForSide[i1]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (safe != null) {
|
||||||
|
safe.setPins(world.rand.nextInt(999));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Consumer<LogicBlock.TileEntityLogicBlock> BOMB_TRAP = (tile) -> {
|
||||||
|
World world = tile.getWorldObj();
|
||||||
|
int x = tile.xCoord;
|
||||||
|
int y = tile.yCoord;
|
||||||
|
int z = tile.zCoord;
|
||||||
|
|
||||||
|
ForgeDirection direction = tile.direction.getOpposite();
|
||||||
|
|
||||||
|
if(tile.phase == 1){
|
||||||
|
world.setBlock(x,y,z + direction.offsetZ, ModBlocks.charge_c4, 2, 3);
|
||||||
|
|
||||||
|
TileEntity te = world.getTileEntity(x,y,z + direction.offsetZ);
|
||||||
|
if(te instanceof TileEntityCharge){
|
||||||
|
TileEntityCharge bomb = (TileEntityCharge) te;
|
||||||
|
bomb.timer = 2400;
|
||||||
|
bomb.started = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
world.setBlock(x,y,z, tile.disguise != null ? tile.disguise : Blocks.air);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Consumer<LogicBlock.TileEntityLogicBlock> BOMB_CRANE = (tile) -> {
|
||||||
|
World world = tile.getWorldObj();
|
||||||
|
int x = tile.xCoord;
|
||||||
|
int y = tile.yCoord;
|
||||||
|
int z = tile.zCoord;
|
||||||
|
|
||||||
|
if(tile.phase == 0) {
|
||||||
|
world.setBlock(x, y + 1, z, ModBlocks.charge_c4, ForgeDirection.UP.ordinal(), 3);
|
||||||
|
|
||||||
|
TileEntity te = world.getTileEntity(x, y + 1, z);
|
||||||
|
if (te instanceof TileEntityCharge) {
|
||||||
|
TileEntityCharge bomb = (TileEntityCharge) te;
|
||||||
|
bomb.timer = 1200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(tile.phase >= 1) {
|
||||||
|
TileEntity te = world.getTileEntity(x, y + 1, z);
|
||||||
|
if (te instanceof TileEntityCharge) {
|
||||||
|
TileEntityCharge bomb = (TileEntityCharge) te;
|
||||||
|
bomb.started = true;
|
||||||
|
}
|
||||||
|
world.setBlock(x, y, z, ModBlocks.block_steel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
public static Consumer<LogicBlock.TileEntityLogicBlock> DEAD_GUY_CRANE = (tile) -> {
|
||||||
|
World world = tile.getWorldObj();
|
||||||
|
int x = tile.xCoord;
|
||||||
|
int y = tile.yCoord;
|
||||||
|
int z = tile.zCoord;
|
||||||
|
if(tile.phase == 1) {
|
||||||
|
world.setBlock(x, y, z, ModBlocks.skeleton_holder);
|
||||||
|
TileEntity te = world.getTileEntity(x, y, z);
|
||||||
|
EntityPlayer player = (EntityPlayer) world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y - 2, z + 1).expand(25, 25, 25)).get(0);
|
||||||
|
|
||||||
|
if (te instanceof BlockSkeletonHolder.TileEntitySkeletonHolder) {
|
||||||
|
BlockSkeletonHolder.TileEntitySkeletonHolder skeleton = (BlockSkeletonHolder.TileEntitySkeletonHolder) te;
|
||||||
|
if (player != null && player.inventory.hasItem(ModItems.gun_hangman)) {
|
||||||
|
skeleton.item = new ItemStack(ModItems.clay_tablet, 1, 0);
|
||||||
|
} else {
|
||||||
|
skeleton.item = new ItemStack(ModItems.gun_hangman);
|
||||||
|
}
|
||||||
|
skeleton.markDirty();
|
||||||
|
world.markBlockForUpdate(x, y, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static List<String> getActionNames(){
|
public static List<String> getActionNames(){
|
||||||
return new ArrayList<>(actions.keySet());
|
return new ArrayList<>(actions.keySet());
|
||||||
}
|
}
|
||||||
|
|
||||||
//register new actions here
|
//register new actions here
|
||||||
static{
|
static{
|
||||||
//example actions
|
initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void initialize(){
|
||||||
|
actions = new LinkedHashMap<>();
|
||||||
|
//logic actions
|
||||||
actions.put("FODDER_WAVE", FODDER_WAVE);
|
actions.put("FODDER_WAVE", FODDER_WAVE);
|
||||||
actions.put("ABERRATOR", PHASE_ABERRATOR);
|
actions.put("POWER_LOCK", POWER_LOCK);
|
||||||
actions.put("COLLAPSE_ROOF_RAD_5", COLLAPSE_ROOF_RAD_5);
|
actions.put("COLLAPSE_ROOF_RAD_5", COLLAPSE_ROOF_RAD_5);
|
||||||
actions.put("COLLAPSE_ROOF_RAD_10", COLLAPSE_ROOF_RAD_10);
|
actions.put("COLLAPSE_ROOF_RAD_10", COLLAPSE_ROOF_RAD_10);
|
||||||
|
actions.put("BOMB_TRAP", BOMB_TRAP);
|
||||||
|
actions.put("BOMB_CRANE", BOMB_CRANE);
|
||||||
|
actions.put("DEAD_GUY_CRANE", DEAD_GUY_CRANE);
|
||||||
|
|
||||||
|
//Mob Block Actions
|
||||||
|
actions.put("SKELETON_GUN_TIER_1", SKELETONS_GUN_TIER_1);
|
||||||
|
actions.put("SKELETON_GUN_TIER_2", SKELETONS_GUN_TIER_2);
|
||||||
|
actions.put("SKELETON_GUN_TIER_3", SKELETONS_GUN_TIER_3);
|
||||||
|
|
||||||
|
actions.put("ZOMBIE_TIER_1", ZOMBIES_TIER_1);
|
||||||
|
actions.put("ZOMBIE_TIER_2", ZOMBIES_TIER_2);
|
||||||
|
|
||||||
|
//example actions
|
||||||
|
actions.put("ABERRATOR", PHASE_ABERRATOR);
|
||||||
actions.put("PUZZLE_TEST", PUZZLE_TEST);
|
actions.put("PUZZLE_TEST", PUZZLE_TEST);
|
||||||
actions.put("MISSILE_STRIKE", MISSILE_STRIKE);
|
actions.put("MISSILE_STRIKE", MISSILE_STRIKE);
|
||||||
actions.put("IRRADIATE_ENTITIES_AOE", RAD_CONTAINMENT_SYSTEM);
|
actions.put("IRRADIATE_ENTITIES_AOE", RAD_CONTAINMENT_SYSTEM);
|
||||||
|
|
||||||
//Mob Block Actions
|
|
||||||
actions.put("SKELETON_GUN_TIER_1", SKELETON_GUN_TIER_1);
|
|
||||||
actions.put("SKELETON_GUN_TIER_2", SKELETON_GUN_TIER_2);
|
|
||||||
actions.put("SKELETON_GUN_TIER_3", SKELETON_GUN_TIER_3);
|
|
||||||
|
|
||||||
actions.put("ZOMBIE_TIER_1", ZOMBIE_TIER_1);
|
|
||||||
actions.put("ZOMBIE_TIER_2", ZOMBIE_TIER_2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,12 +5,15 @@ import com.hbm.blocks.generic.BlockPedestal;
|
|||||||
import com.hbm.blocks.generic.LogicBlock;
|
import com.hbm.blocks.generic.LogicBlock;
|
||||||
import com.hbm.entity.mob.EntityUndeadSoldier;
|
import com.hbm.entity.mob.EntityUndeadSoldier;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
|
import com.hbm.tileentity.bomb.TileEntityCharge;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityLockableBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
@ -19,7 +22,7 @@ import java.util.function.Function;
|
|||||||
|
|
||||||
public class LogicBlockConditions {
|
public class LogicBlockConditions {
|
||||||
|
|
||||||
public static LinkedHashMap<String, Function<LogicBlock.TileEntityLogicBlock, Boolean>> conditions = new LinkedHashMap<>();
|
public static LinkedHashMap<String, Function<LogicBlock.TileEntityLogicBlock, Boolean>> conditions;
|
||||||
|
|
||||||
/**For use with interactions, for having them handle all conditional tasks*/
|
/**For use with interactions, for having them handle all conditional tasks*/
|
||||||
public static Function<LogicBlock.TileEntityLogicBlock, Boolean> EMPTY = (tile) -> false;
|
public static Function<LogicBlock.TileEntityLogicBlock, Boolean> EMPTY = (tile) -> false;
|
||||||
@ -96,18 +99,49 @@ public class LogicBlockConditions {
|
|||||||
&& ((BlockPedestal.TileEntityPedestal) pedestal).item.getItem() == ModItems.big_sword;
|
&& ((BlockPedestal.TileEntityPedestal) pedestal).item.getItem() == ModItems.big_sword;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static Function<LogicBlock.TileEntityLogicBlock, Boolean> BOMB_CRANE = (tile) -> {
|
||||||
|
World world = tile.getWorldObj();
|
||||||
|
int x = tile.xCoord;
|
||||||
|
int y = tile.yCoord;
|
||||||
|
int z = tile.zCoord;
|
||||||
|
|
||||||
|
if(tile.phase == 0) {
|
||||||
|
world.setBlock(x, y + 1, z, ModBlocks.charge_c4, ForgeDirection.UP.ordinal(), 3);
|
||||||
|
|
||||||
|
TileEntity te = world.getTileEntity(x, y + 1, z);
|
||||||
|
if (te instanceof TileEntityCharge) {
|
||||||
|
TileEntityCharge bomb = (TileEntityCharge) te;
|
||||||
|
bomb.timer = 200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return !world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y - 2, z + 1).expand(10, 10, 10)).isEmpty();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static List<String> getConditionNames(){
|
public static List<String> getConditionNames(){
|
||||||
return new ArrayList<>(conditions.keySet());
|
return new ArrayList<>(conditions.keySet());
|
||||||
}
|
}
|
||||||
|
|
||||||
//register new conditions here
|
//register new conditions here
|
||||||
static {
|
static {
|
||||||
//example conditions
|
initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void initialize() {
|
||||||
|
conditions = new LinkedHashMap<>();
|
||||||
|
|
||||||
conditions.put("EMPTY", EMPTY);
|
conditions.put("EMPTY", EMPTY);
|
||||||
conditions.put("ABERRATOR", ABERRATOR);
|
|
||||||
conditions.put("PLAYER_CUBE_3", PLAYER_CUBE_3);
|
conditions.put("PLAYER_CUBE_3", PLAYER_CUBE_3);
|
||||||
conditions.put("PLAYER_CUBE_5", PLAYER_CUBE_5);
|
conditions.put("PLAYER_CUBE_5", PLAYER_CUBE_5);
|
||||||
conditions.put("PLAYER_CUBE_25", PLAYER_CUBE_25);
|
conditions.put("PLAYER_CUBE_25", PLAYER_CUBE_25);
|
||||||
|
|
||||||
|
conditions.put("BOMB_CRANE", BOMB_CRANE);
|
||||||
|
|
||||||
|
//example conditions
|
||||||
|
conditions.put("ABERRATOR", ABERRATOR);
|
||||||
conditions.put("REDSTONE", REDSTONE);
|
conditions.put("REDSTONE", REDSTONE);
|
||||||
conditions.put("PUZZLE_TEST", PUZZLE_TEST);
|
conditions.put("PUZZLE_TEST", PUZZLE_TEST);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,19 @@
|
|||||||
package com.hbm.world.gen.util;
|
package com.hbm.world.gen.util;
|
||||||
|
|
||||||
|
import api.hbm.energymk2.IEnergyHandlerMK2;
|
||||||
import com.hbm.blocks.generic.LogicBlock;
|
import com.hbm.blocks.generic.LogicBlock;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.potion.HbmPotion;
|
import com.hbm.potion.HbmPotion;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityLockableBase;
|
||||||
|
import com.hbm.tileentity.machine.storage.TileEntityCrateBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.potion.PotionEffect;
|
import net.minecraft.potion.PotionEffect;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
|
import net.minecraft.util.Facing;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
@ -18,11 +25,16 @@ public class LogicBlockInteractions {
|
|||||||
|
|
||||||
/**Consumer consists of world instance, tile entity instance, three ints for coordinates, one int for block side, and player instance,
|
/**Consumer consists of world instance, tile entity instance, three ints for coordinates, one int for block side, and player instance,
|
||||||
* in that order **/
|
* in that order **/
|
||||||
public static LinkedHashMap<String, Consumer<Object[]>> interactions = new LinkedHashMap<>();
|
public static LinkedHashMap<String, Consumer<Object[]>> interactions;
|
||||||
|
|
||||||
public static Consumer<Object[]> TEST = (array) -> {
|
public static Consumer<Object[]> TEST = (array) -> {
|
||||||
|
World world = (World) array[0];
|
||||||
LogicBlock.TileEntityLogicBlock logic = (LogicBlock.TileEntityLogicBlock) array[1];
|
LogicBlock.TileEntityLogicBlock logic = (LogicBlock.TileEntityLogicBlock) array[1];
|
||||||
|
int x = (int) array[2];
|
||||||
|
int y = (int) array[3];
|
||||||
|
int z = (int) array[4];
|
||||||
EntityPlayer player = (EntityPlayer) array[5];
|
EntityPlayer player = (EntityPlayer) array[5];
|
||||||
|
int side = (int) array[6];
|
||||||
|
|
||||||
if(logic.phase > 1) return;
|
if(logic.phase > 1) return;
|
||||||
|
|
||||||
@ -48,6 +60,49 @@ public class LogicBlockInteractions {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static Consumer<Object[]> POWER_LOCK = (array) -> {
|
||||||
|
World world = (World) array[0];
|
||||||
|
LogicBlock.TileEntityLogicBlock logic = (LogicBlock.TileEntityLogicBlock) array[1];
|
||||||
|
EntityPlayer player = (EntityPlayer) array[5];
|
||||||
|
int x = (int) array[2];
|
||||||
|
int y = (int) array[3];
|
||||||
|
int z = (int) array[4];
|
||||||
|
|
||||||
|
IEnergyHandlerMK2 handler = null;
|
||||||
|
ForgeDirection parallel = logic.direction.getRotation(ForgeDirection.UP);
|
||||||
|
|
||||||
|
for (int i1 = 0; i1 < 6; ++i1) {
|
||||||
|
if(world.getTileEntity(x + Facing.offsetsXForSide[i1], y + Facing.offsetsYForSide[i1], z + Facing.offsetsZForSide[i1]) instanceof IEnergyHandlerMK2) {
|
||||||
|
handler = (IEnergyHandlerMK2) world.getTileEntity(x + Facing.offsetsXForSide[i1], y + Facing.offsetsYForSide[i1], z + Facing.offsetsZForSide[i1]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(handler == null || !(handler.getPower() > 500_000))
|
||||||
|
player.addChatMessage(new ChatComponentText(
|
||||||
|
EnumChatFormatting.LIGHT_PURPLE + "[POWER LOCK]" +
|
||||||
|
EnumChatFormatting.RESET + " Charge adjacent energy storage to at least 500KHE to release emergency lock"));
|
||||||
|
else {
|
||||||
|
player.addChatMessage(new ChatComponentText(
|
||||||
|
EnumChatFormatting.LIGHT_PURPLE + "[POWER LOCK]" +
|
||||||
|
EnumChatFormatting.RESET + " Power Restorted! Safe Unlocked!"));
|
||||||
|
|
||||||
|
TileEntityLockableBase safe = null;
|
||||||
|
for (int i1 = 0; i1 < 6; ++i1) {
|
||||||
|
if (world.getTileEntity(x + Facing.offsetsXForSide[i1], y + Facing.offsetsYForSide[i1], z + Facing.offsetsZForSide[i1]) instanceof TileEntityLockableBase) {
|
||||||
|
safe = (TileEntityLockableBase) world.getTileEntity(x + Facing.offsetsXForSide[i1], y + Facing.offsetsYForSide[i1], z + Facing.offsetsZForSide[i1]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(safe != null){
|
||||||
|
safe.unlock();
|
||||||
|
world.playSoundAtEntity(player, "hbm:block.lockOpen", 3.0F, 0.8F);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static List<String> getInteractionNames(){
|
public static List<String> getInteractionNames(){
|
||||||
@ -56,6 +111,14 @@ public class LogicBlockInteractions {
|
|||||||
|
|
||||||
//register new interactions here
|
//register new interactions here
|
||||||
static{
|
static{
|
||||||
|
initialize();
|
||||||
|
}
|
||||||
|
public static void initialize() {
|
||||||
|
interactions = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
interactions.put("POWER_LOCK", POWER_LOCK);
|
||||||
|
|
||||||
|
//example interactions
|
||||||
interactions.put("TEST", TEST);
|
interactions.put("TEST", TEST);
|
||||||
interactions.put("RADAWAY_INJECTOR", RAD_CONTAINMENT_SYSTEM);
|
interactions.put("RADAWAY_INJECTOR", RAD_CONTAINMENT_SYSTEM);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5447,6 +5447,8 @@ tile.fan.name=Fan
|
|||||||
tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip$Right-click with hand drill to switch mode
|
tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip$Right-click with hand drill to switch mode
|
||||||
tile.fan.falloffOn=Fan power decreases with distance
|
tile.fan.falloffOn=Fan power decreases with distance
|
||||||
tile.fan.falloffOff=Consistent fan power
|
tile.fan.falloffOff=Consistent fan power
|
||||||
|
tile.fan.suckOn=Fan is now sucking
|
||||||
|
tile.fan.suckOff=Fan is now blowing
|
||||||
tile.fence_metal.name=Chainlink Fence
|
tile.fence_metal.name=Chainlink Fence
|
||||||
tile.fence_metal_post.name=Chainlink Fence Post
|
tile.fence_metal_post.name=Chainlink Fence Post
|
||||||
tile.field_disturber.name=High Energy Field Jammer
|
tile.field_disturber.name=High Energy Field Jammer
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
"zh_CN": "钢"
|
"zh_CN": "钢"
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"en_US": "Upgraded version of iron, basic material. Used in almost everything. Initially obtained by combining coal and iron in a [[blast furnace|Blast Furnace]]. Upgraded recipes are available later on via [[crucible|Crucible]] and [[rotary furnace|Rotary Furnace]].",
|
"en_US": "Upgraded version of iron, basic material. Used in almost everything. Initially obtained by combining sand, coal and iron in a [[blast furnace|Blast Furnace]]. Upgraded recipes are available later on via [[crucible|Crucible]] and [[rotary furnace|Rotary Furnace]].",
|
||||||
"uk_UA": "Покращена версія заліза, базовий матеріал. Використовується майже в усьому. Спочатку отримується шляхом поєднання вугілля та заліза в [[доменній печі|Blast Furnace]]. Покращені рецепти доступні пізніше в [[ливарні|Crucible]] та [[роторній печі|Rotary Furnace]].",
|
"uk_UA": "Покращена версія заліза, базовий матеріал. Використовується майже в усьому. Спочатку отримується шляхом поєднання вугілля та заліза в [[доменній печі|Blast Furnace]]. Покращені рецепти доступні пізніше в [[ливарні|Crucible]] та [[роторній печі|Rotary Furnace]].",
|
||||||
"ru_RU": "Улучшенная версия железа, базовый материал. Используется почти во всем. Изначально получается путём комбинирования угля и железа в [[доменной печи|Blast Furnace]]. Улучшенные рецепты доступны позже через [[тигель|Crucible]] и [[роторную печь|Rotary Furnace]].",
|
"ru_RU": "Улучшенная версия железа, базовый материал. Используется почти во всем. Изначально получается путём комбинирования угля и железа в [[доменной печи|Blast Furnace]]. Улучшенные рецепты доступны позже через [[тигель|Crucible]] и [[роторную печь|Rotary Furnace]].",
|
||||||
"zh_CN": "铁的升级版,是一种基础金属,几乎所有东西都要用到钢。最初可通过在[[高炉|Blast Furnace]]中混合煤炭和铁获取,而之后也有通过[[坩埚|Crucible]]和[[回转炉|Rotary Furnace]]制作的高级配方。"
|
"zh_CN": "铁的升级版,是一种基础金属,几乎所有东西都要用到钢。最初可通过在[[高炉|Blast Furnace]]中混合煤炭和铁获取,而之后也有通过[[坩埚|Crucible]]和[[回转炉|Rotary Furnace]]制作的高级配方。"
|
||||||
|
|||||||
BIN
src/main/resources/assets/hbm/structures/crane_mod.nbt
Normal file
BIN
src/main/resources/assets/hbm/structures/crane_mod.nbt
Normal file
Binary file not shown.
BIN
src/main/resources/assets/hbm/structures/repeater_radio.nbt
Normal file
BIN
src/main/resources/assets/hbm/structures/repeater_radio.nbt
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user