mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
the rim flappe on a bongfish is mated to the bungus of its fuccbone.
the scrotewad is onyl present on females above the pootsack (see: snogbag).
This commit is contained in:
parent
98aea38025
commit
0e0777f196
@ -1,8 +1,11 @@
|
||||
## Changed
|
||||
* Blast doors will now pulverize any block that gets in their way during closing
|
||||
* The nuclear and RTG furnaces will be retired, their recipes have been removed but they remain operational for now
|
||||
* Changed the magnetron recipe to be 3 copper plates and 4 tungsten wires
|
||||
* Added recipes to some secret ammo types
|
||||
|
||||
## Fixed
|
||||
* Fixed the CCGT's steam output breaking as soon as the steam buffer runs full
|
||||
* Fixed crash caused by mobs holding belt-fed guns
|
||||
* Fixed boiler heat input being way too low due to operation order (diffusion was applied AFTER the input heat was capped)
|
||||
* Fixed boiler heat input being way too low due to operation order (diffusion was applied AFTER the input heat was capped)
|
||||
* Fixed stinger playing its lockon sound on the wrong side
|
||||
@ -1,15 +1,20 @@
|
||||
package com.hbm.blocks.machine.albion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.albion.TileEntityPABeamline;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPABeamline extends BlockDummyable {
|
||||
public class BlockPABeamline extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public BlockPABeamline() {
|
||||
super(Material.iron);
|
||||
@ -25,4 +30,9 @@ public class BlockPABeamline extends BlockDummyable {
|
||||
|
||||
@Override public int[] getDimensions() { return new int[] {0, 0, 0, 0, 1, 1}; }
|
||||
@Override public int getOffset() { return 0; }
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.hbm.blocks.machine.albion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPADetector;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockPADetector extends BlockDummyable {
|
||||
public class BlockPADetector extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public BlockPADetector() {
|
||||
super(Material.iron);
|
||||
@ -48,4 +52,9 @@ public class BlockPADetector extends BlockDummyable {
|
||||
this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX, y, z - rot.offsetZ * 4 + dir.offsetZ);
|
||||
this.makeExtra(world, x - rot.offsetX * 4 - dir.offsetX, y, z - rot.offsetZ * 4 - dir.offsetZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.hbm.blocks.machine.albion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPADipole;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockPADipole extends BlockDummyable {
|
||||
public class BlockPADipole extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public BlockPADipole() {
|
||||
super(Material.iron);
|
||||
@ -49,4 +53,9 @@ public class BlockPADipole extends BlockDummyable {
|
||||
this.makeExtra(world, x, y + 1, z + 1);
|
||||
this.makeExtra(world, x, y + 1, z - 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.hbm.blocks.machine.albion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPAQuadrupole;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockPAQuadrupole extends BlockDummyable {
|
||||
public class BlockPAQuadrupole extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public BlockPAQuadrupole() {
|
||||
super(Material.iron);
|
||||
@ -45,4 +49,9 @@ public class BlockPAQuadrupole extends BlockDummyable {
|
||||
this.makeExtra(world, x, y + 1, z);
|
||||
this.makeExtra(world, x, y - 1, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.hbm.blocks.machine.albion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPARFC;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockPARFC extends BlockDummyable {
|
||||
public class BlockPARFC extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public BlockPARFC() {
|
||||
super(Material.iron);
|
||||
@ -48,4 +52,9 @@ public class BlockPARFC extends BlockDummyable {
|
||||
this.makeExtra(world, x - dir.offsetX * 3, y - 1, z - dir.offsetZ * 3);
|
||||
this.makeExtra(world, x, y - 1, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.hbm.blocks.machine.albion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPASource;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockPASource extends BlockDummyable {
|
||||
public class BlockPASource extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public BlockPASource() {
|
||||
super(Material.iron);
|
||||
@ -50,4 +54,9 @@ public class BlockPASource extends BlockDummyable {
|
||||
this.makeExtra(world, x - dir.offsetX + rot.offsetX * 2, y, z - dir.offsetZ + rot.offsetZ * 2);
|
||||
this.makeExtra(world, x - dir.offsetX - rot.offsetX * 2, y, z - dir.offsetZ - rot.offsetZ * 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -158,8 +158,6 @@ public class WeaponRecipes {
|
||||
|
||||
|
||||
//Ammo assemblies
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', GOLD.wireFine(), 'P', STEEL.plate(), 'S', STEEL.shell(), 'E', ModItems.ball_tatb });
|
||||
|
||||
//240mm Shells
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package com.hbm.handler.nei;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes;
|
||||
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes.ParticleAcceleratorRecipe;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
|
||||
public class ParticleAcceleratorHandler extends NEIUniversalHandler {
|
||||
|
||||
public ParticleAcceleratorHandler() {
|
||||
super(ModBlocks.pa_detector.getLocalizedName(), ModBlocks.pa_detector, ParticleAcceleratorRecipes.getRecipes());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return "ntmParticleAccelerator";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawExtras(int recipe) {
|
||||
|
||||
RecipeSet rec = (RecipeSet) this.arecipes.get(recipe);
|
||||
|
||||
ParticleAcceleratorRecipe paRecipe = ParticleAcceleratorRecipes.getOutput(rec.input[0].item, rec.input[1].item);
|
||||
|
||||
if(paRecipe != null) {
|
||||
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
|
||||
String momentum = "Momentum: " + String.format(Locale.US, "%,d", paRecipe.momentum);
|
||||
int side = 8;
|
||||
fontRenderer.drawString(momentum, side, 52, 0x404040);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,7 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
@ -9,6 +11,7 @@ import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toserver.NBTControlPacket;
|
||||
import com.hbm.tileentity.machine.albion.TileEntityPASource;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
@ -39,7 +42,11 @@ public class GUIPASource extends GuiInfoContainer {
|
||||
source.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 36, 16, 52);
|
||||
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 18, 16, 52, source.power, source.getMaxPower());
|
||||
|
||||
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 105, guiTop + 18, 10, 10, mouseX, mouseY, "Last momentum: " + source.lastSpeed);
|
||||
List<String> info = new ArrayList();
|
||||
info.add(EnumChatFormatting.BLUE + "Last momentum: " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", source.lastSpeed));
|
||||
String[] message = I18nUtil.resolveKeyArray("pa." + this.source.state.name().toLowerCase(Locale.US) + ".desc");
|
||||
for(String s : message) info.add(EnumChatFormatting.YELLOW + s);
|
||||
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 105, guiTop + 18, 10, 10, mouseX, mouseY, info);
|
||||
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 105, guiTop + 30, 10, 10, mouseX, mouseY, EnumChatFormatting.RED + "Cancel operation");
|
||||
}
|
||||
|
||||
|
||||
@ -99,7 +99,7 @@ public class Mats {
|
||||
|
||||
//Base metals
|
||||
public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setAutogen(FRAGMENT, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setAutogen(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m();
|
||||
|
||||
@ -32,6 +32,7 @@ import com.hbm.items.ItemGenericPart.EnumPartType;
|
||||
import com.hbm.items.machine.ItemAssemblyTemplate;
|
||||
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||
import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
|
||||
import com.hbm.items.machine.ItemPACoil.EnumCoilType;
|
||||
import com.hbm.items.machine.ItemPistons.EnumPistonType;
|
||||
import com.hbm.items.weapon.ItemAmmoHIMARS;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||
@ -107,7 +108,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
makeRecipe(new ComparableStack(ModItems.tritium_deuterium_cake, 1), new AStack[] {new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.cell_tritium, 2), new OreDictStack(LI.ingot(), 4), },150);
|
||||
makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50);
|
||||
makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50);
|
||||
makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new OreDictStack(W.wireFine(), 1), new ComparableStack(ModItems.coil_tungsten, 1), },100);
|
||||
makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(CU.plate(), 3), new OreDictStack(W.wireFine(), 4), },100);
|
||||
makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new OreDictStack(ALLOY.wireFine(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200);
|
||||
makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50);
|
||||
makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50);
|
||||
@ -548,14 +549,6 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(STEEL.pipe(), 24),
|
||||
new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4)
|
||||
}, 600);
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.pellet_chlorophyte, 2), new AStack[] {
|
||||
new ComparableStack(ModItems.powder_chlorophyte, 1),
|
||||
new OreDictStack(PB.nugget(), 12),
|
||||
}, 50);
|
||||
makeRecipe(new ComparableStack(ModItems.pellet_canister, 2), new AStack[] {
|
||||
new OreDictStack(IRON.ingot(), 3),
|
||||
}, 50);
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.machine_lithium_battery, 3),
|
||||
@ -946,6 +939,50 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC)
|
||||
}, 200);
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.GOLD), new AStack[] { new OreDictStack(GOLD.wireDense(), 128) }, 400);
|
||||
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.NIOBIUM), new AStack[] { new OreDictStack(NB.wireDense(), 64), new OreDictStack(TI.wireDense(), 64) }, 400);
|
||||
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.BSCCO), new AStack[] { new OreDictStack(BSCCO.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64) }, 400);
|
||||
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE), new AStack[] { new OreDictStack(CU.wireDense(), 128), new ComparableStack(ModItems.powder_chlorophyte, 16) }, 400);
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.pa_beamline), new AStack[] {
|
||||
new OreDictStack(STEEL.plateCast(), 8),
|
||||
new OreDictStack(CU.plate(), 16),
|
||||
new OreDictStack(GOLD.wireDense(), 4)
|
||||
}, 200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.pa_rfc), new AStack[] {
|
||||
new ComparableStack(ModBlocks.pa_beamline, 3),
|
||||
new OreDictStack(STEEL.plateCast(), 16),
|
||||
new OreDictStack(CU.plate(), 64),
|
||||
new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
|
||||
new ComparableStack(ModItems.magnetron, 16),
|
||||
}, 400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.pa_quadrupole), new AStack[] {
|
||||
new ComparableStack(ModBlocks.pa_beamline, 1),
|
||||
new OreDictStack(STEEL.plateCast(), 16),
|
||||
new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
|
||||
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID),
|
||||
}, 400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.pa_dipole), new AStack[] {
|
||||
new ComparableStack(ModBlocks.pa_beamline, 2),
|
||||
new OreDictStack(STEEL.plateCast(), 16),
|
||||
new OreDictStack(ANY_HARDPLASTIC.ingot(), 32),
|
||||
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID),
|
||||
}, 400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.pa_source), new AStack[] {
|
||||
new ComparableStack(ModBlocks.pa_beamline, 3),
|
||||
new OreDictStack(STEEL.plateCast(), 16),
|
||||
new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
|
||||
new ComparableStack(ModItems.magnetron, 16),
|
||||
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.QUANTUM),
|
||||
}, 400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.pa_detector), new AStack[] {
|
||||
new ComparableStack(ModBlocks.pa_beamline, 3),
|
||||
new OreDictStack(STEEL.plateCast(), 24),
|
||||
new OreDictStack(GOLD.wireDense(), 16),
|
||||
new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
|
||||
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM),
|
||||
}, 400);
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] {
|
||||
!exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.inventory.recipes;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
@ -12,7 +13,6 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@ -26,65 +26,65 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_hydrogen),
|
||||
new ComparableStack(ModItems.particle_copper),
|
||||
900,
|
||||
new ItemStack(ModItems.particle_aproton),
|
||||
new ItemStack(ModItems.particle_aelectron)
|
||||
300,
|
||||
new ItemStack(ModItems.particle_amat),
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_amat),
|
||||
new ComparableStack(ModItems.particle_amat),
|
||||
900,
|
||||
400,
|
||||
new ItemStack(ModItems.particle_aschrab),
|
||||
new ItemStack(ModItems.particle_empty)
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_aschrab),
|
||||
new ComparableStack(ModItems.particle_aschrab),
|
||||
100000,
|
||||
10_000,
|
||||
new ItemStack(ModItems.particle_dark),
|
||||
new ItemStack(ModItems.particle_empty)
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_hydrogen),
|
||||
new ComparableStack(ModItems.particle_amat),
|
||||
2000,
|
||||
2_500,
|
||||
new ItemStack(ModItems.particle_muon),
|
||||
new ItemStack(ModItems.particle_empty)
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_hydrogen),
|
||||
new ComparableStack(ModItems.particle_lead),
|
||||
5000,
|
||||
6_500,
|
||||
new ItemStack(ModItems.particle_higgs),
|
||||
new ItemStack(ModItems.particle_empty)
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_muon),
|
||||
new ComparableStack(ModItems.particle_higgs),
|
||||
2000,
|
||||
5_000,
|
||||
new ItemStack(ModItems.particle_tachyon),
|
||||
new ItemStack(ModItems.particle_empty)
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_muon),
|
||||
new ComparableStack(ModItems.particle_dark),
|
||||
100000,
|
||||
12_500,
|
||||
new ItemStack(ModItems.particle_strange),
|
||||
new ItemStack(ModItems.particle_empty)
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_strange),
|
||||
new ComparableStack(ModItems.powder_magic),
|
||||
500000,
|
||||
12_500,
|
||||
new ItemStack(ModItems.particle_sparkticle),
|
||||
new ItemStack(ModItems.dust)
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(ModItems.particle_sparkticle),
|
||||
new ComparableStack(ModItems.particle_higgs),
|
||||
1000000,
|
||||
70_000,
|
||||
new ItemStack(ModItems.particle_digamma),
|
||||
new ItemStack(ModItems.particle_empty)
|
||||
null
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(Items.chicken),
|
||||
@ -93,21 +93,13 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
|
||||
new ItemStack(ModItems.nugget),
|
||||
new ItemStack(ModItems.nugget)
|
||||
));
|
||||
recipes.add(new ParticleAcceleratorRecipe(
|
||||
new ComparableStack(Blocks.sand),
|
||||
new ComparableStack(Blocks.sand),
|
||||
10,
|
||||
new ItemStack(ModItems.static_sandwich),
|
||||
new ItemStack(ModItems.static_sandwich)
|
||||
));
|
||||
}
|
||||
|
||||
public ParticleAcceleratorRecipe getOutput(ItemStack input1, ItemStack input2, int momentum) {
|
||||
public static ParticleAcceleratorRecipe getOutput(ItemStack input1, ItemStack input2) {
|
||||
|
||||
for(ParticleAcceleratorRecipe recipe : recipes) {
|
||||
|
||||
if(momentum >= recipe.momentum &&
|
||||
((recipe.input1.matchesRecipe(input1, true) && recipe.input2.matchesRecipe(input2, true)) ||
|
||||
if(((recipe.input1.matchesRecipe(input1, true) && recipe.input2.matchesRecipe(input2, true)) ||
|
||||
(recipe.input1.matchesRecipe(input2, true) && recipe.input2.matchesRecipe(input1, true)))) {
|
||||
return recipe;
|
||||
}
|
||||
@ -116,6 +108,20 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static HashMap getRecipes() {
|
||||
|
||||
HashMap<Object[], Object> recipes = new HashMap<Object[], Object>();
|
||||
|
||||
for(ParticleAcceleratorRecipe entry : ParticleAcceleratorRecipes.recipes) {
|
||||
List<ItemStack> outputs = new ArrayList();
|
||||
if(entry.output1 != null) outputs.add(entry.output1);
|
||||
if(entry.output2 != null) outputs.add(entry.output2);
|
||||
recipes.put(new Object[] {entry.input1, entry.input2}, outputs.toArray(new ItemStack[0]));
|
||||
}
|
||||
|
||||
return recipes;
|
||||
}
|
||||
|
||||
public static class ParticleAcceleratorRecipe {
|
||||
public AStack input1;
|
||||
public AStack input2;
|
||||
|
||||
@ -18,6 +18,8 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
||||
import com.hbm.items.ItemEnums.EnumSecretType;
|
||||
import com.hbm.items.food.ItemConserve.EnumFoodType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
||||
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -71,6 +73,17 @@ public class PedestalRecipes extends SerializableRecipe {
|
||||
new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16),
|
||||
new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL))
|
||||
.extra(PedestalExtraCondition.FULL_MOON));
|
||||
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_SM.ordinal()),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1),
|
||||
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModBlocks.moon_turf), new ComparableStack(ModItems.powder_magic),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1))
|
||||
.extra(PedestalExtraCondition.FULL_MOON));
|
||||
recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_NUKE.ordinal()),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1),
|
||||
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.ammo_standard, 4, EnumAmmo.NUKE_HIGH), new ComparableStack(ModItems.powder_magic),
|
||||
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1))
|
||||
.extra(PedestalExtraCondition.FULL_MOON));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -43,7 +43,6 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
|
||||
public static void register() {
|
||||
registerSmithing();
|
||||
registerConstruction();
|
||||
}
|
||||
|
||||
@Override public String getFileName() { return "hbmAnvil.json"; }
|
||||
@ -598,7 +597,6 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2));
|
||||
|
||||
pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1);
|
||||
pullFromAssembler(new ComparableStack(ModItems.pellet_canister), 1);
|
||||
}
|
||||
|
||||
public static void registerConstructionUpgrades() {
|
||||
|
||||
@ -1186,10 +1186,6 @@ public class ModItems {
|
||||
public static Item pellet_gas;
|
||||
public static Item magnetron;
|
||||
public static Item pellet_buckshot;
|
||||
public static Item pellet_flechette;
|
||||
public static Item pellet_chlorophyte;
|
||||
public static Item pellet_canister;
|
||||
public static Item pellet_claws;
|
||||
public static Item pellet_charged;
|
||||
|
||||
public static Item designator;
|
||||
@ -3614,10 +3610,6 @@ public class ModItems {
|
||||
pellet_gas = new ItemCustomLore().setUnlocalizedName("pellet_gas").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_gas");
|
||||
magnetron = new ItemCustomLore().setUnlocalizedName("magnetron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnetron_alt");
|
||||
pellet_buckshot = new Item().setUnlocalizedName("pellet_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_lead");
|
||||
pellet_flechette = new Item().setUnlocalizedName("pellet_flechette").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_flechette");
|
||||
pellet_chlorophyte = new Item().setUnlocalizedName("pellet_chlorophyte").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_chlorophyte");
|
||||
pellet_canister = new Item().setUnlocalizedName("pellet_canister").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_canister");
|
||||
pellet_claws = new Item().setUnlocalizedName("pellet_claws").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_claws");
|
||||
pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged");
|
||||
|
||||
designator = new ItemDesingator().setUnlocalizedName("designator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator");
|
||||
@ -5711,10 +5703,6 @@ public class ModItems {
|
||||
GameRegistry.registerItem(tritium_deuterium_cake, tritium_deuterium_cake.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_cluster, pellet_cluster.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_flechette, pellet_flechette.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_chlorophyte, pellet_chlorophyte.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_canister, pellet_canister.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_claws, pellet_claws.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pellet_gas, pellet_gas.getUnlocalizedName());
|
||||
GameRegistry.registerItem(magnetron, magnetron.getUnlocalizedName());
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
package com.hbm.items.machine;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.hbm.items.ItemEnumMulti;
|
||||
import com.hbm.util.EnumUtil;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
public class ItemPACoil extends ItemEnumMulti {
|
||||
|
||||
@ -16,30 +18,33 @@ public class ItemPACoil extends ItemEnumMulti {
|
||||
}
|
||||
|
||||
public static enum EnumCoilType {
|
||||
GOLD(0, 10_000, 0, 10_000, 0.99D),
|
||||
NIOBIUM(5_000, 100_000, 5_000, 100_000, 0.999D),
|
||||
BSCCO(50_000, 500_000, 50_000, 500_000, 0.99975D);
|
||||
GOLD(0, 2_200, 0, 2_200, 15),
|
||||
NIOBIUM(1_500, 8_400, 1_500, 8_400, 21),
|
||||
BSCCO(7_500, 15_000, 7_500, 15_000, 27),
|
||||
CHLOROPHYTE(14_500, 75_000, 14_500, 75_000, 51);
|
||||
|
||||
public int quadMin;
|
||||
public int quadMax;
|
||||
public int diMin;
|
||||
public int diMax;
|
||||
public double diMult;
|
||||
public int diDistMin;
|
||||
|
||||
private EnumCoilType(int quadMin, int quadMax, int diMin, int diMax, double diMult) {
|
||||
private EnumCoilType(int quadMin, int quadMax, int diMin, int diMax, int diDistMin) {
|
||||
this.quadMin = quadMin;
|
||||
this.quadMax = quadMax;
|
||||
this.diMin = diMin;
|
||||
this.diMax = diMax;
|
||||
this.diMult = diMult;
|
||||
this.diDistMin = diDistMin;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||
EnumCoilType type = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage());
|
||||
list.add("Quadrupole operational range: " + type.quadMin + " - " + type.quadMax);
|
||||
list.add("Dipole operational range: " + type.diMin + " - " + type.diMax);
|
||||
list.add("Dipole momentum multiplier: x" + type.diMult);
|
||||
list.add(EnumChatFormatting.BLUE + "Quadrupole operational range: " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", type.quadMin) + " - " + String.format(Locale.US, "%,d", type.quadMax));
|
||||
list.add(EnumChatFormatting.BLUE + "Dipole operational range: " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", type.diMin) + " - " + String.format(Locale.US, "%,d", type.diMax));
|
||||
list.add(EnumChatFormatting.BLUE + "Dipole minimum side length: " + EnumChatFormatting.RESET + type.diDistMin);
|
||||
list.add(EnumChatFormatting.RED + "Minimums not met result in a power draw penalty!");
|
||||
list.add(EnumChatFormatting.RED + "Maximums exceeded result in the particle crashing!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -771,26 +771,27 @@ public class Orchestras {
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA_STINGER = (stack, ctx) -> {
|
||||
EntityLivingBase entity = ctx.entity;
|
||||
if(entity.worldObj.isRemote) return;
|
||||
AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
|
||||
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
|
||||
|
||||
AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity);
|
||||
if(ItemGunStinger.getLockonProgress(stack) > 0 && !ItemGunStinger.getIsLockedOn(stack)) {
|
||||
//start sound
|
||||
if(runningAudio == null || !runningAudio.isPlaying()) {
|
||||
AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.lockon", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 1F, 10);
|
||||
ItemGunBaseNT.loopedSounds.put(entity, audio);
|
||||
audio.startSound();
|
||||
if(entity.worldObj.isRemote) {
|
||||
AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity);
|
||||
if(ItemGunStinger.getLockonProgress(stack) > 0 && !ItemGunStinger.getIsLockedOn(stack)) {
|
||||
//start sound
|
||||
if(runningAudio == null || !runningAudio.isPlaying()) {
|
||||
AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.lockon", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 1F, 10);
|
||||
ItemGunBaseNT.loopedSounds.put(entity, audio);
|
||||
audio.startSound();
|
||||
}
|
||||
//keepalive
|
||||
if(runningAudio != null && runningAudio.isPlaying()) {
|
||||
runningAudio.keepAlive();
|
||||
runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ);
|
||||
}
|
||||
} else {
|
||||
//stop sound due to timeout
|
||||
if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound();
|
||||
}
|
||||
//keepalive
|
||||
if(runningAudio != null && runningAudio.isPlaying()) {
|
||||
runningAudio.keepAlive();
|
||||
runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ);
|
||||
}
|
||||
} else {
|
||||
//stop sound due to timeout
|
||||
if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound();
|
||||
}
|
||||
|
||||
if(type == AnimType.RELOAD) {
|
||||
|
||||
@ -1639,6 +1639,10 @@ public class MainRegistry {
|
||||
ignoreMappings.add("hbm:item.assembly_calamity");
|
||||
ignoreMappings.add("hbm:item.assembly_lacunae");
|
||||
ignoreMappings.add("hbm:item.assembly_luna");
|
||||
ignoreMappings.add("hbm:item.pellet_chlorophyte");
|
||||
ignoreMappings.add("hbm:item.pellet_canister");
|
||||
ignoreMappings.add("hbm:item.pellet_claws");
|
||||
ignoreMappings.add("hbm:item.pellet_flechette");
|
||||
|
||||
/// REMAP ///
|
||||
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);
|
||||
|
||||
@ -69,6 +69,7 @@ public class NEIRegistry {
|
||||
handlers.add(new RotaryFurnaceHandler());
|
||||
handlers.add(new AmmoPressHandler());
|
||||
handlers.add(new CompressorHandler());
|
||||
handlers.add(new ParticleAcceleratorHandler());
|
||||
|
||||
//this shit comes last
|
||||
handlers.add(new FluidRecipeHandler());
|
||||
|
||||
@ -19,7 +19,9 @@ public class TileEntityPABeamline extends TileEntity implements IParticleUser {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnter(Particle particle, ForgeDirection dir) { }
|
||||
public void onEnter(Particle particle, ForgeDirection dir) {
|
||||
particle.addDistance(3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getExitPos(Particle particle) {
|
||||
|
||||
@ -49,6 +49,10 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
|
||||
public long getMaxPower() {
|
||||
return 1_000_000;
|
||||
}
|
||||
|
||||
@Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot == 1 || slot == 2; }
|
||||
@Override public boolean canExtractItem(int slot, ItemStack stack, int side) { return slot == 3 || slot == 4; }
|
||||
@Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] { 1, 2, 3, 4 }; }
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@ -107,7 +111,7 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
|
||||
(recipe.input1.matchesRecipe(particle.input2, true) && recipe.input2.matchesRecipe(particle.input1, true)))) {
|
||||
if(canAccept(recipe)) {
|
||||
if(recipe.output1.getItem().hasContainerItem(recipe.output1)) this.decrStackSize(1, 1);
|
||||
if(recipe.output2.getItem().hasContainerItem(recipe.output2)) this.decrStackSize(2, 1);
|
||||
if(recipe.output2 != null && recipe.output2.getItem().hasContainerItem(recipe.output2)) this.decrStackSize(2, 1);
|
||||
|
||||
if(slots[3] == null) {
|
||||
slots[3] = recipe.output1.copy();
|
||||
@ -115,10 +119,12 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
|
||||
slots[3].stackSize += recipe.output1.stackSize;
|
||||
}
|
||||
|
||||
if(slots[4] == null) {
|
||||
slots[4] = recipe.output2.copy();
|
||||
} else {
|
||||
slots[4].stackSize += recipe.output2.stackSize;
|
||||
if(recipe.output2 != null) {
|
||||
if(slots[4] == null) {
|
||||
slots[4] = recipe.output2.copy();
|
||||
} else {
|
||||
slots[4].stackSize += recipe.output2.stackSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
particle.crash(PAState.SUCCESS);
|
||||
|
||||
@ -40,7 +40,7 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
|
||||
|
||||
@Override
|
||||
public long getMaxPower() {
|
||||
return 1_000_000;
|
||||
return 5_000_000;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -70,7 +70,8 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
|
||||
int mult = 1;
|
||||
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
|
||||
type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage());
|
||||
mult = type.diMin > particle.momentum ? 5 : 1;
|
||||
if(type.diMin > particle.momentum) mult *= 5;
|
||||
if(type.diDistMin > particle.distanceTraveled) mult *= 5;
|
||||
}
|
||||
|
||||
if(!isCool()) particle.crash(PAState.CRASH_NOCOOL);
|
||||
@ -79,8 +80,8 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
|
||||
if(type != null && type.diMax < particle.momentum) particle.crash(PAState.CRASH_OVERSPEED);
|
||||
|
||||
if(particle.invalid) return;
|
||||
|
||||
particle.momentum *= type.diMult;
|
||||
|
||||
particle.resetDistance();
|
||||
this.power -= this.usage * mult;
|
||||
}
|
||||
|
||||
|
||||
@ -62,7 +62,8 @@ public class TileEntityPAQuadrupole extends TileEntityCooledBase implements IGUI
|
||||
if(type != null && type.quadMax < particle.momentum) particle.crash(PAState.CRASH_OVERSPEED);
|
||||
|
||||
if(particle.invalid) return;
|
||||
|
||||
|
||||
particle.addDistance(3);
|
||||
particle.focus(focusGain);
|
||||
this.power -= this.usage * mult;
|
||||
}
|
||||
|
||||
@ -51,7 +51,8 @@ public class TileEntityPARFC extends TileEntityCooledBase implements IGUIProvide
|
||||
if(this.power < this.usage) particle.crash(PAState.CRASH_NOPOWER);
|
||||
|
||||
if(particle.invalid) return;
|
||||
|
||||
|
||||
particle.addDistance(9);
|
||||
particle.momentum += this.momentumGain;
|
||||
particle.defocus(defocusGain);
|
||||
this.power -= this.usage;
|
||||
|
||||
@ -127,7 +127,7 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
|
||||
super.serialize(buf);
|
||||
buf.writeInt(debugSpeed);
|
||||
buf.writeByte((byte) this.state.ordinal());
|
||||
buf.writeInt(particle != null ? particle.momentum : 0);
|
||||
buf.writeInt(this.lastSpeed);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -135,10 +135,7 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
|
||||
super.deserialize(buf);
|
||||
debugSpeed = buf.readInt();
|
||||
state = EnumUtil.grabEnumSafely(PAState.class, buf.readByte());
|
||||
int lastSpeed = buf.readInt();
|
||||
if(lastSpeed != 0) {
|
||||
this.lastSpeed = lastSpeed;
|
||||
}
|
||||
this.lastSpeed = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -243,6 +240,7 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
|
||||
public ForgeDirection dir;
|
||||
public int momentum;
|
||||
public int defocus;
|
||||
public int distanceTraveled;
|
||||
public static final int maxDefocus = 100;
|
||||
public boolean invalid = false;
|
||||
|
||||
@ -268,8 +266,12 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
|
||||
this.x = pos.getX();
|
||||
this.y = pos.getY();
|
||||
this.z = pos.getZ();
|
||||
this.source.lastSpeed = this.momentum;
|
||||
}
|
||||
|
||||
public void addDistance(int dist) { this.distanceTraveled += dist; }
|
||||
public void resetDistance() { this.distanceTraveled = 0; }
|
||||
|
||||
public void defocus(int amount) {
|
||||
this.defocus += amount;
|
||||
if(this.defocus > this.maxDefocus) this.crash(PAState.CRASH_DEFOCUS);
|
||||
|
||||
@ -2939,6 +2939,10 @@ item.ore_seared.name=Geätztes %serz
|
||||
item.ore_separated.name=Separiertes %serz
|
||||
item.overfuse.name=Singularitätsschraubenzieher
|
||||
item.oxy_mask.name=Sauerstoffmaske
|
||||
item.pa_coil.bscco.name=Große BSCCO-Spule
|
||||
item.pa_coil.chlorophyte.name=Große Grünalgenspule
|
||||
item.pa_coil.gold.name=Große Goldspule
|
||||
item.pa_coil.niobium.name=Große NbTi-Spule
|
||||
item.paa_boots.name=PaA-"olle Latschen"
|
||||
item.paa_legs.name=PaA-Beinverstärkungsschienen
|
||||
item.paa_plate.name=PaA-Brustschutzplatte
|
||||
|
||||
@ -3787,6 +3787,7 @@ item.overfuse.name=Singularity Screwdriver
|
||||
item.overfuse.desc=Say what?
|
||||
item.oxy_mask.name=Oxygen Mask
|
||||
item.pa_coil.bscco.name=Large BSCCO Coil
|
||||
item.pa_coil.chlorophyte.name=Large Chlorophyte Coil
|
||||
item.pa_coil.gold.name=Large Gold Coil
|
||||
item.pa_coil.niobium.name=Large NbTi Coil
|
||||
item.paa_boots.name=PaA "good ol' shoes"
|
||||
@ -4832,16 +4833,27 @@ itemGroup.tabTest=Nuclear Tech Mod Test Tab
|
||||
itemGroup.tabWeapon=NTM Weapons and Turrets
|
||||
|
||||
pa.idle=Idle
|
||||
pa.idle.desc=Idle
|
||||
pa.running=Running
|
||||
pa.running.desc=Running
|
||||
pa.success=Success
|
||||
pa.success.desc=Success
|
||||
pa.pause_unloaded=Paused
|
||||
pa.pause_unloaded.desc=The particle has entered an$unloaded chunk. The operation has$been suspended, until both the$particle and the particle source$are loaded.
|
||||
pa.crash_defocus=Defocus!
|
||||
pa.crash_defocus.desc=The particle has lost focus.$Ensure the accelerator has enough quadrupole magnets.
|
||||
pa.crash_derail=Derail!
|
||||
pa.crash_derail.desc=The particle has left the accelerator.$Ensure no parts are missing,$and that dipoles are configured correctly.
|
||||
pa.crash_cannot_enter=Denied!
|
||||
pa.crash_cannot_enter.desc=The particle tried to enter$part of the accelerator, but couldn't.$Ensure all parts are oriented correctly.
|
||||
pa.crash_nocool=No cooling!
|
||||
pa.crash_nocool.desc=The particle has entered an uncooled$part of the accelerator. Ensure all cooled$parts are connected and filled$with cold perfluoroethyl.
|
||||
pa.crash_nopower=No power!
|
||||
pa.crash_nopower.desc=The particle has entered an unpowered$part of the accelerator. Ensure all parts$receive power, and that the$power supply is sufficient.
|
||||
pa.crash_nocoil=No coils!
|
||||
pa.crash_nocoil.desc=The particle has entered a dipole$or quadrupole which lacks coils.$Install coils to allow this part to work.
|
||||
pa.crash_overspeed=Overspeed!
|
||||
pa.crash_overspeed.desc=The particle has entered a dipole$or quadrupole, while its speed exceeded$the coil's rating. Install higher$tier coils, or configure the dipoles$to leave the accelerator ring sooner.
|
||||
|
||||
potion.hbm_bang=! ! !
|
||||
potion.hbm_death=Astolfization
|
||||
@ -5193,7 +5205,7 @@ tile.cm_engine.bismuth.name=Bismuth Motor Block
|
||||
tile.cm_engine.desh.name=Desh Motor Block
|
||||
tile.cm_engine.standard.name=Motor Block
|
||||
tile.cm_flux.name=Neutron Flux Receiver
|
||||
tile.cm_heat.name=Heat receiver
|
||||
tile.cm_heat.name=Heat Receiver
|
||||
tile.cm_port.alloy.name=Advanced Alloy Port
|
||||
tile.cm_port.desh.name=Desh Port
|
||||
tile.cm_port.steel.name=Steel Port
|
||||
@ -5846,11 +5858,17 @@ tile.ore_verticium.name=Dollar Green Mineral
|
||||
tile.ore_volcano.name=Geothermal Vent
|
||||
tile.ore_weidanium.name=Weidite
|
||||
tile.pa_beamline.name=Beamline
|
||||
tile.pa_beamline.desc=Optional part, connects different accelerator parts.$Also allows to cheaply extend the ring's size,$for meeting dipole coil size requirements.
|
||||
tile.pa_detector.name=Particle Detector
|
||||
tile.pa_detector.desc=Requires cooling!$Accepts particles and performs the recipe.$Recipes may require containers (particle capsules).$Particle needs a defocus of 0 to be accepted.
|
||||
tile.pa_dipole.name=Dipole Magnets
|
||||
tile.pa_dipole.desc=Requires cooling!$Redirects particles based on momentum.$Has outputs for below threshold,$above threshold and above threshold$with restone applied.$Requires large coils to work.
|
||||
tile.pa_quadrupole.name=Quadrupole Magnets
|
||||
tile.pa_quadrupole.desc=Requires cooling!$Reduces particle defocus by 100 points.$Requires large coils to work.
|
||||
tile.pa_rfc.name=RF Cavity
|
||||
tile.pa_rfc.desc=Requires cooling!$Accelerates particles by 100 points,$and adds 100 points of defocus.
|
||||
tile.pa_source.name=Particle Source
|
||||
tile.pa_source.desc=Requires cooling!$Uses two items to create a particle.
|
||||
tile.part_emitter.name=Deco Particle Emitter
|
||||
tile.pedestal.name=Pedestal
|
||||
tile.pink_barrel.name=Kerosene Barrel
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/items/ingot_metal.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/ingot_metal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 552 B |
BIN
src/main/resources/assets/hbm/textures/items/ingot_metal_alt.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/ingot_metal_alt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 608 B |
Binary file not shown.
|
After Width: | Height: | Size: 401 B |
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
Loading…
x
Reference in New Issue
Block a user