Merge branch 'master' into oc-bat-rework

This commit is contained in:
HbmMods 2026-01-11 19:20:18 +01:00 committed by GitHub
commit 5c0ff2b603
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
51 changed files with 465 additions and 434 deletions

View File

@ -1,20 +1,28 @@
## Added
* Creative klystron
* Always outputs as much KyU as the most demanding existing recipe needs
## Changed
* Updated chinese and russian localization
* Increased density of osmiridium ores in tom craters considerably (from 1:500 to 1:200)
* Added a new server setting called `ENABLE_MKU` to toggle contageon effects, spread and save (part of `/ntmserver`)
* Extended logging now logs uses of MKU
* Mass storage units now display their held item on a display
* Improved HUD gauges, electric chestplates with jetpacks installed now two gauges side by side
* Material autogen now creates redstone in ingot form, allowing smaller than block quantities to be cast
* Removed the ancient ZPE blocks
* Drone hitboxes are now way smaller, which should cause them to get stuck when flying less
* The new FENSU now keeps its charge and installed muffler when broken
* Battery sockets are now compatible with comparator output
* Battery sockets now have a tooltip when a battery pack is installed
* Sef-charging batteries have been reworked
* They are now a new item with metadata (legacy ones still work)
* The base form is an empty selfcharger which is filled with two billets of material, i.e. no more upgrade recipes
* There are a few new variants like cobalt-60 and gold-198
* New selfchargers have a model when plugged into a battery socket
* Selfchargers are a fair bit weaker than their old counterparts, but substantially cheaper too
* Old batteries now have the "LEGACY" tag
## Fixed
* Fixed missing battery socket tooltip
* Potentially fixed an issue in regards to some hidden structures spawning
* Fixed FEnSU not immediately applying the muffler effect when used
* Fixed fluid counter valve not having a recipe
* Fixed issue where `/ntmreload` would break registered fluids from addons
* Fixed yet another issue regarding crates
* Fixed RBMK fluid heaters losing their tank types when unable to boil anything
* Fixed the FEnSU, cyclotron and reliant robin missile being uncraftable due to stacksize limitations
* The system for detecting impossible recipe has been improved, instead of a fixed 64 item limit, it now uses the actual limit of the item (or 64 for ore dictionary inputs)
* Fixed yet another issue regarding addon fluids breaking on recipe reload
* Fixed YET ANOTHER issue regarding crates, AGAIN
* Fixed a rare issue where the fusion reactor could have negative fuel
* Fixed battery socket priority tooltip offset
* Fixed enchantability on many armor sets being incorrect
* Most power armors are intended to not be enchantable at all
* Fixed crash caused by the balefire bomb
* Fixed JSON gun reload animations becoming faster and faster with the trenchmaster set
* Fixed heat transfer rate labels on the boilers and coker unit being off by a magnitude of 10
* Fixed crucible not having a heat transfer rate tooltip

View File

@ -1062,9 +1062,6 @@ public class ModBlocks {
public static Block machine_controller;
public static Block machine_spp_bottom;
public static Block machine_spp_top;
public static Block radiobox;
public static Block radiorec;
@ -2307,9 +2304,6 @@ public class ModBlocks {
machine_siren = new MachineSiren(Material.iron).setBlockName("machine_siren").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_siren");
machine_spp_bottom = new SPPBottom(Material.iron).setBlockName("machine_spp_bottom").setHardness(5.0F).setResistance(10.0F);
machine_spp_top = new SPPTop(Material.iron).setBlockName("machine_spp_top").setHardness(5.0F).setResistance(10.0F);
radiobox = new Radiobox(Material.iron).setBlockName("radiobox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiobox");
radiorec = new RadioRec(Material.iron).setBlockName("radiorec").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiorec");
@ -3126,8 +3120,6 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_powerrtg, machine_powerrtg.getUnlocalizedName());
GameRegistry.registerBlock(machine_radiolysis, machine_radiolysis.getUnlocalizedName());
GameRegistry.registerBlock(machine_hephaestus, machine_hephaestus.getUnlocalizedName());
GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName());
GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName());
GameRegistry.registerBlock(hadron_plating, hadron_plating.getUnlocalizedName());
GameRegistry.registerBlock(hadron_plating_blue, hadron_plating_blue.getUnlocalizedName());

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ICustomBlockHighlight;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.inventory.material.Mats.MaterialStack;
import com.hbm.items.machine.ItemScraps;
import com.hbm.main.MainRegistry;
@ -27,7 +28,7 @@ import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor {
public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor, ITooltipProvider {
public MachineCrucible() {
super(Material.rock);
@ -181,4 +182,9 @@ public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
this.addStandardInfo(stack, player, list, ext);
}
}

View File

@ -1,31 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineSPP;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class SPPBottom extends BlockContainer {
public SPPBottom(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityMachineSPP();
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_deprecated");
}
}

View File

@ -1,22 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
public class SPPTop extends Block {
public SPPTop(Material p_i45394_1_) {
super(p_i45394_1_);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_deprecated");
}
}

View File

@ -1,16 +1,27 @@
package com.hbm.blocks.network;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.IPersistentInfoProvider;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import com.hbm.util.BobMathUtil;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.stats.StatList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineBatteryREDD extends BlockDummyable {
public class MachineBatteryREDD extends BlockDummyable implements IPersistentInfoProvider {
public MachineBatteryREDD() {
super(Material.iron);
@ -47,4 +58,31 @@ public class MachineBatteryREDD extends BlockDummyable {
this.makeExtra(world, x + rot.offsetX * 4, y, z + rot.offsetZ * 4);
this.makeExtra(world, x - rot.offsetX * 4, y, z - rot.offsetZ * 4);
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
return IPersistentNBT.getDrops(world, x, y, z, this);
}
@Override
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
if(!player.capabilities.isCreativeMode) {
harvesters.set(player);
this.dropBlockAsItem(world, x, y, z, meta, 0);
harvesters.set(null);
}
}
@Override
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
player.addExhaustion(0.025F);
}
@Override
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
if(persistentTag != null && persistentTag.hasKey("power"))
list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.format(new BigInteger(persistentTag.getByteArray("power"))) + " HE");
}
}

View File

@ -1,20 +1,24 @@
package com.hbm.blocks.network;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.storage.TileEntityBatterySocket;
import com.hbm.util.BobMathUtil;
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.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineBatterySocket extends BlockDummyable implements ITooltipProvider {
public class MachineBatterySocket extends BlockDummyable implements ITooltipProvider, ILookOverlay {
public MachineBatterySocket() {
super(Material.iron);
@ -49,4 +53,43 @@ public class MachineBatterySocket extends BlockDummyable implements ITooltipProv
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
@Override
public boolean hasComparatorInputOverride() {
return true;
}
@Override
public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
if(world.getBlockMetadata(x, y, z) < 6) return 0;
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return 0;
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(te instanceof TileEntityBatterySocket)) return 0;
TileEntityBatterySocket battery = (TileEntityBatterySocket) te;
return battery.getComparatorPower();
}
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return;
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(te instanceof TileEntityBatterySocket)) return;
TileEntityBatterySocket socket = (TileEntityBatterySocket) te;
if(socket.syncStack == null) return;
List<String> text = new ArrayList();
text.add(BobMathUtil.getShortNumber(socket.powerFromStack(socket.syncStack)) + " / " + BobMathUtil.getShortNumber(socket.maxPowerFromStack(socket.syncStack)) + "HE");
double percent = (double) socket.powerFromStack(socket.syncStack) / (double) socket.maxPowerFromStack(socket.syncStack);
int charge = (int) Math.floor(percent * 10_000D);
int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8);
text.add("&[" + color + "&]" + (charge / 100D) + "%");
ILookOverlay.printGeneric(event, socket.syncStack.getDisplayName(), 0xffff00, 0x404000, text);
}
}

View File

@ -24,7 +24,7 @@ public abstract class EntityDroneBase extends Entity {
public EntityDroneBase(World world) {
super(world);
this.setSize(1.5F, 2.0F);
this.setSize(0.75F, 0.75F);
}
public void setTarget(double x, double y, double z) {

View File

@ -23,7 +23,7 @@ import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@Deprecated
@Deprecated // an experiment that i had to staple more and more features to until it ended up a bloated decaying corpse
public abstract class NEIUniversalHandler extends TemplateRecipeHandler implements ICompatNHNEI {
public LinkedList<RecipeTransferRect> transferRectsRec = new LinkedList<RecipeTransferRect>();

View File

@ -104,9 +104,6 @@ public class FluidType {
/** For CompatFluidRegistry */
public FluidType(String name, int id, int color, int p, int f, int r, EnumSymbol symbol, ResourceLocation texture) {
setupForeign(name, id, color, p, f, r, symbol, texture);
Fluids.foreignFluids.add(this);
Fluids.metaOrder.add(this);
}
public FluidType setupForeign(String name, int id, int color, int p, int f, int r, EnumSymbol symbol, ResourceLocation texture) {
@ -121,6 +118,7 @@ public class FluidType {
this.renderWithTint = true;
this.id = id;
Fluids.foreignFluids.add(this);
Fluids.register(this, id);
return this;
}

View File

@ -418,6 +418,8 @@ public class Fluids {
if(!customTypes.exists()) initDefaultFluids(customTypes);
readCustomFluids(customTypes);
for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad();
//AND DON'T FORGET THE META DOWN HERE
// V V V V V V V V
@ -601,6 +603,7 @@ public class Fluids {
ACID = PEROXIDE;
for(FluidType custom : customFluids) metaOrder.add(custom);
for(FluidType custom : foreignFluids) metaOrder.add(custom);
CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_LUNG, false)));
PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_LUNG, false)));
@ -670,7 +673,6 @@ public class Fluids {
throw new IllegalStateException("A severe error has occoured during NTM's fluid registering process! The MetaOrder and Mappings are inconsistent! Mapping size: " + idMapping.size()+ " / MetaOrder size: " + metaOrder.size());
}
/// FINAL ///
long baseline = 100_000L; //we do not know
@ -921,6 +923,7 @@ public class Fluids {
}
for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad();
for(FluidType custom : foreignFluids) metaOrder.add(custom);
}
private static void registerCalculatedFuel(FluidType type, double base, double combustMult, FuelGrade grade) {

View File

@ -67,7 +67,7 @@ public class GUIBatterySocket extends GuiInfoContainer {
String[] desc = I18nUtil.resolveKeyArray("battery.priority." + lang + ".desc");
for(String s : desc) priority.add(s);
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 152, guiTop + 35, 16, 16, mouseX, mouseY, priority);
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 125, guiTop + 35, 16, 16, mouseX, mouseY, priority);
}
protected void mouseClicked(int x, int y, int i) {

View File

@ -60,7 +60,7 @@ public class Mats {
public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setAutogen(FRAGMENT).n();
public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setAutogen(FRAGMENT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m();
public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setAutogen(FRAGMENT, WIRE, NUGGET, DUST, DENSEWIRE, CASTPLATE, BLOCK).m();
public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setAutogen(FRAGMENT).n();
public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setAutogen(FRAGMENT, INGOT).n();
public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n();
public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m();
public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89).m();

View File

@ -126,7 +126,6 @@ import net.minecraft.item.ItemStack;
makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600);
makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200);

View File

@ -28,6 +28,7 @@ import com.hbm.items.ItemEnums.EnumSecretType;
import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
import com.hbm.items.machine.ItemPACoil.EnumCoilType;
@ -424,7 +425,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_battery_redd, 1))
.inputItems(new ComparableStack(ModItems.ingot_electronium, 64),
new ComparableStack(ModItems.battery_pack, 16, EnumBatteryPack.BATTERY_QUANTUM),
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64),
@ -436,7 +437,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.ingot_cft, 64),
new ComparableStack(ModItems.ingot_cft, 64))
.inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64),
new ComparableStack(ModItems.battery_pack, 16, EnumBatteryPack.BATTERY_QUANTUM),
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM),
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.FERRO_PLATING),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
@ -456,12 +457,12 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16)));
this.register(new GenericRecipe("ass.orbus").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_orbus, 1))
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.coil_advanced_alloy, 24), new ComparableStack(ModItems.battery_sc_polonium, 1)));
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.coil_advanced_alloy, 24), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210)));
// accelerators
this.register(new GenericRecipe("ass.cyclotron").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_cyclotron, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 3, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 32), new OreDictStack(AL.plateWelded(), 16), new OreDictStack(RUBBER.ingot(), 32), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.CIRCUIT)));
this.register(new GenericRecipe("ass.beamline").setup(200, 100).outputItems(new ItemStack(ModBlocks.pa_beamline, 1))
.inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4))
@ -872,7 +873,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.stealthmissile").setup(1_200, 100).outputItems(new ItemStack(ModItems.missile_stealth, 1))
.inputItems(new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(STEEL.bolt(), 32)));
this.register(new GenericRecipe("ass.shuttlemissile").setup(200, 100).outputItems(new ItemStack(ModItems.missile_shuttle, 1))
.inputItems(new ComparableStack(ModItems.missile_generic, 2), new ComparableStack(ModItems.missile_strong, 1), new OreDictStack(KEY_ORANGE, 5), new ComparableStack(ModItems.canister_full, 24, Fluids.GASOLINE_LEADED.getID()), new OreDictStack(FIBER.ingot(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 8), new OreDictStack(KEY_ANYPANE, 6), new OreDictStack(STEEL.plate(), 4)));
.inputItems(new ComparableStack(ModItems.missile_generic, 1), new ComparableStack(ModItems.missile_strong, 1), new OreDictStack(KEY_ORANGE, 5), new ComparableStack(ModItems.canister_full, 24, Fluids.GASOLINE_LEADED.getID()), new OreDictStack(FIBER.ingot(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 8), new OreDictStack(KEY_ANYPANE, 6), new OreDictStack(STEEL.plate(), 4)));
this.register(new GenericRecipe("ass.launchpad").setup(200, 100).outputItems(new ItemStack(ModBlocks.launch_pad_large, 1))
.inputItems(new OreDictStack(STEEL.plateCast(), 6), new OreDictStack(ANY_CONCRETE.any(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 24), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED)));
this.register(new GenericRecipe("ass.launchpadsilo").setup(200, 100).outputItems(new ItemStack(ModBlocks.launch_pad, 1))

View File

@ -7,6 +7,7 @@ import com.hbm.inventory.FluidContainer;
import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.util.Tuple.Triplet;
import net.minecraft.init.Blocks;
@ -52,14 +53,8 @@ public class MachineRecipes {
fuels.add(new ItemStack(ModItems.fusion_core));
fuels.add(new ItemStack(ModItems.energy_core));
for(EnumBatteryPack num : EnumBatteryPack.values()) fuels.add(new ItemStack(ModItems.battery_pack, 1, num.ordinal()));
for(EnumBatterySC num : EnumBatterySC.values()) fuels.add(new ItemStack(ModItems.battery_sc, 1, num.ordinal()));
fuels.add(new ItemStack(ModItems.battery_creative));
fuels.add(new ItemStack(ModItems.battery_sc_uranium));
fuels.add(new ItemStack(ModItems.battery_sc_technetium));
fuels.add(new ItemStack(ModItems.battery_sc_plutonium));
fuels.add(new ItemStack(ModItems.battery_sc_polonium));
fuels.add(new ItemStack(ModItems.battery_sc_gold));
fuels.add(new ItemStack(ModItems.battery_sc_lead));
fuels.add(new ItemStack(ModItems.battery_sc_americium));
return fuels;
}

View File

@ -26,6 +26,7 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums.EnumChunkType;
import com.hbm.items.ModItems;
import com.hbm.items.food.ItemFlask.EnumInfusion;
import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.util.Tuple.Pair;
@ -751,7 +752,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.scrap, 1)),
new AnvilOutput(new ItemStack(ModItems.coil_tungsten, 2)),
new AnvilOutput(new ItemStack(Items.bread, 1), 0.5F),
new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F),
new AnvilOutput(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.RA226.ordinal()), 0.1F),
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F)
}

View File

@ -7,6 +7,7 @@ import java.util.Locale;
import com.hbm.config.GeneralConfig;
import com.hbm.inventory.FluidStack;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.recipes.loader.GenericRecipes.ChanceOutput;
import com.hbm.inventory.recipes.loader.GenericRecipes.ChanceOutputMulti;
import com.hbm.inventory.recipes.loader.GenericRecipes.IOutput;
@ -73,12 +74,18 @@ public class GenericRecipe {
public GenericRecipe setPools528(String... pools) { if(GeneralConfig.enable528) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); } return this; }
public GenericRecipe setGroup(String autoSwitch, GenericRecipes set) { this.autoSwitchGroup = autoSwitch; set.addToGroup(autoSwitch, this); return this; }
public GenericRecipe inputItems(AStack... input) { this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
public GenericRecipe inputItemsEx(AStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
public GenericRecipe inputItems(AStack... input) { this.inputItem = input; for(AStack stack : this.inputItem) if(exceedsStackLimit(stack)) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
public GenericRecipe inputItemsEx(AStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputItem = input; for(AStack stack : this.inputItem) if(exceedsStackLimit(stack)) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
public GenericRecipe inputFluids(FluidStack... input) { this.inputFluid = input; return this; }
public GenericRecipe inputFluidsEx(FluidStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputFluid = input; return this; }
public GenericRecipe outputItems(IOutput... output) { this.outputItem = output; return this; }
public GenericRecipe outputFluids(FluidStack... output) { this.outputFluid = output; return this; }
private boolean exceedsStackLimit(AStack stack) {
if(stack instanceof ComparableStack && stack.stacksize > ((ComparableStack) stack).item.getItemStackLimit(((ComparableStack) stack).toStack())) return true;
if(stack.stacksize > 64) return true;
return false;
}
public GenericRecipe outputItems(ItemStack... output) {
this.outputItem = new IOutput[output.length];

View File

@ -1657,13 +1657,15 @@ public class ModItems {
public static Item battery_spark;
public static Item battery_trixite;
public static Item battery_sc_uranium;
public static Item battery_sc_technetium;
public static Item battery_sc_plutonium;
public static Item battery_sc_polonium;
public static Item battery_sc_gold;
public static Item battery_sc_lead;
public static Item battery_sc_americium;
@Deprecated public static Item battery_sc_uranium;
@Deprecated public static Item battery_sc_technetium;
@Deprecated public static Item battery_sc_plutonium;
@Deprecated public static Item battery_sc_polonium;
@Deprecated public static Item battery_sc_gold;
@Deprecated public static Item battery_sc_lead;
@Deprecated public static Item battery_sc_americium;
public static Item battery_sc;
public static Item battery_potato;
public static Item battery_potatos;
@ -3899,13 +3901,14 @@ public class ModItems {
battery_creative = new ItemBatteryCreative().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new");
cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power");
battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium");
battery_sc_technetium = new ItemSelfcharger(25).setUnlocalizedName("battery_sc_technetium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_technetium");
battery_sc_plutonium = new ItemSelfcharger(100).setUnlocalizedName("battery_sc_plutonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_plutonium");
battery_sc_polonium = new ItemSelfcharger(500).setUnlocalizedName("battery_sc_polonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_polonium");
battery_sc_gold = new ItemSelfcharger(2500).setUnlocalizedName("battery_sc_gold").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_gold");
battery_sc_lead = new ItemSelfcharger(5000).setUnlocalizedName("battery_sc_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_lead");
battery_sc_americium = new ItemSelfcharger(10000).setUnlocalizedName("battery_sc_americium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_americium");
battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_uranium");
battery_sc_technetium = new ItemSelfcharger(25).setUnlocalizedName("battery_sc_technetium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_technetium");
battery_sc_plutonium = new ItemSelfcharger(100).setUnlocalizedName("battery_sc_plutonium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_plutonium");
battery_sc_polonium = new ItemSelfcharger(500).setUnlocalizedName("battery_sc_polonium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_polonium");
battery_sc_gold = new ItemSelfcharger(2500).setUnlocalizedName("battery_sc_gold").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_gold");
battery_sc_lead = new ItemSelfcharger(5000).setUnlocalizedName("battery_sc_lead").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_lead");
battery_sc_americium = new ItemSelfcharger(10000).setUnlocalizedName("battery_sc_americium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_sc_americium");
battery_sc = new ItemBatterySC().setUnlocalizedName("battery_sc").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc");
battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato");
battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos");
@ -4206,7 +4209,7 @@ public class ModItems {
public static void initializeItem2() {
ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 100);
ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 1000);
aMatZirconium.customCraftingMaterial = ModItems.ingot_zirconium;
zirconium_legs = new ArmorFSB(aMatZirconium, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs");
@ -4268,7 +4271,7 @@ public class ModItems {
dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs");
dieselsuit_boots = new ArmorDiesel(aMatDiesel, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_boots");
ArmorMaterial aMatAJR = EnumHelper.addArmorMaterial("HBM_T45AJR", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatAJR = EnumHelper.addArmorMaterial("HBM_T45AJR", 150, new int[] { 3, 8, 6, 3 }, 0);
aMatAJR.customCraftingMaterial = ModItems.plate_armor_ajr;
ajr_helmet = new ArmorAJR(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25)
.enableVATS(true)
@ -4310,7 +4313,7 @@ public class ModItems {
rpa_legs = new ArmorRPA(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_legs").setTextureName(RefStrings.MODID + ":rpa_legs");
rpa_boots = new ArmorRPA(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_boots").setTextureName(RefStrings.MODID + ":rpa_boots");
ArmorMaterial aMatBJ = EnumHelper.addArmorMaterial("HBM_BLACKJACK", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatBJ = EnumHelper.addArmorMaterial("HBM_BLACKJACK", 150, new int[] { 3, 8, 6, 3 }, 0);
aMatBJ.customCraftingMaterial = ModItems.plate_armor_lunar;
bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100)
.enableVATS(true)
@ -4329,7 +4332,7 @@ public class ModItems {
bj_legs = new ArmorBJ(aMatBJ, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs");
bj_boots = new ArmorBJ(aMatBJ, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots");
ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 10);
aMatEnv.customCraftingMaterial = ModItems.plate_armor_hev;
envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0)
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
@ -4340,7 +4343,7 @@ public class ModItems {
envsuit_legs = new ArmorEnvsuit(aMatEnv, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_legs").setTextureName(RefStrings.MODID + ":envsuit_legs");
envsuit_boots = new ArmorEnvsuit(aMatEnv, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_boots").setTextureName(RefStrings.MODID + ":envsuit_boots");
ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 0);
aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev;
hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0)
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
@ -4356,7 +4359,7 @@ public class ModItems {
jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt");
jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2");
ArmorMaterial aMatFau = EnumHelper.addArmorMaterial("HBM_DIGAMMA", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatFau = EnumHelper.addArmorMaterial("HBM_DIGAMMA", 150, new int[] { 3, 8, 6, 3 }, 0);
aMatFau.customCraftingMaterial = ModItems.plate_armor_fau;
fau_helmet = new ArmorDigamma(aMatFau, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0)
.addEffect(new PotionEffect(Potion.jump.id, 20, 1))
@ -4372,7 +4375,7 @@ public class ModItems {
fau_legs = new ArmorDigamma(aMatFau, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs");
fau_boots = new ArmorDigamma(aMatFau, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots");
ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 0);
aMatDNS.customCraftingMaterial = ModItems.plate_armor_dnt;
dns_helmet = new ArmorDNT(aMatDNS, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115)
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 9))
@ -4391,7 +4394,7 @@ public class ModItems {
dns_legs = new ArmorDNT(aMatDNS, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs");
dns_boots = new ArmorDNT(aMatDNS, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots");
ArmorMaterial aMatTaurun = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatTaurun = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 10);
aMatTaurun.customCraftingMaterial = ModItems.plate_iron;
taurun_helmet = new ArmorTaurun(aMatTaurun, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png")
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0))
@ -4401,7 +4404,7 @@ public class ModItems {
taurun_plate = new ArmorTaurun(aMatTaurun, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_plate").setTextureName(RefStrings.MODID + ":taurun_plate");
taurun_legs = new ArmorTaurun(aMatTaurun, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_legs").setTextureName(RefStrings.MODID + ":taurun_legs");
taurun_boots = new ArmorTaurun(aMatTaurun, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_boots").setTextureName(RefStrings.MODID + ":taurun_boots");
ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100);
ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 0);
aMatTrench.customCraftingMaterial = ModItems.plate_iron;
trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png")
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2))
@ -5704,6 +5707,7 @@ public class ModItems {
GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName());
GameRegistry.registerItem(battery_pack, battery_pack.getUnlocalizedName());
GameRegistry.registerItem(battery_sc, battery_sc.getUnlocalizedName());
GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName());
GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName());

View File

@ -164,12 +164,9 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider
stack.writeToNBT(slot);
nbt.setTag("slot" + i, slot);
}
if(nbt.hasNoTags()) {
nbt = null;
} else {
nbt.setLong("stacklock", rand.nextLong()); // add shit that prevents crates from stacking
}
// never, ever fucking ever remove the tag compound here, lack of tack compound makes the crate stackable
nbt.setLong("stacklock", rand.nextLong()); // add shit that prevents crates from stacking
target.setTagCompound(nbt);
}
@ -181,6 +178,16 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider
// Check for 6kb item vomit
target.setTagCompound(checkNBT(target.getTagCompound()));
player.inventoryContainer.detectAndSendChanges();
if(target.stackTagCompound != null) {
target.stackTagCompound.removeTag("stacklock");
if(target.stackTagCompound.hasNoTags()) {
target.setTagCompound(null); // if there's no tags left, clear compound to make the crate stackable again
} else {
target.stackTagCompound.setLong("stacklock", rand.nextLong()); // add shit that prevents crates from stacking
}
}
}
}
}

View File

@ -0,0 +1,62 @@
package com.hbm.items.machine;
import java.util.List;
import com.hbm.items.ItemEnumMulti;
import com.hbm.main.MainRegistry;
import com.hbm.util.BobMathUtil;
import com.hbm.util.EnumUtil;
import api.hbm.energymk2.IBatteryItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemBatterySC extends ItemEnumMulti implements IBatteryItem {
public ItemBatterySC() {
super(EnumBatterySC.class, true, true);
this.setMaxStackSize(1);
this.setCreativeTab(MainRegistry.controlTab);
}
public static enum EnumBatterySC {
EMPTY( 0),
WASTE( 150),
RA226( 200),
TC99( 500),
CO60( 750),
PU238( 1_000),
PO210( 1_250),
AU198( 1_500),
PB209( 2_000),
AM241( 2_500);
public long power;
private EnumBatterySC(long power) {
this.power = power;
}
}
@Override public void chargeBattery(ItemStack stack, long i) { }
@Override public void setCharge(ItemStack stack, long i) { }
@Override public void dischargeBattery(ItemStack stack, long i) { }
@Override public long getChargeRate(ItemStack stack) { return 0; }
@Override public long getCharge(ItemStack stack) { return getMaxCharge(stack); }
@Override public long getDischargeRate(ItemStack stack) { return getMaxCharge(stack); }
@Override
public long getMaxCharge(ItemStack stack) {
EnumBatterySC pack = EnumUtil.grabEnumSafely(EnumBatterySC.class, stack.getItemDamage());
return pack.power;
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
EnumBatterySC pack = EnumUtil.grabEnumSafely(EnumBatterySC.class, stack.getItemDamage());
if(pack.power > 0) list.add(EnumChatFormatting.YELLOW + "Discharge rate: " + BobMathUtil.getShortNumber(pack.power) + "HE/t");
}
}

View File

@ -31,6 +31,7 @@ import com.hbm.items.food.ItemConserve.EnumFoodType;
import com.hbm.items.machine.ItemArcElectrode.EnumElectrodeType;
import com.hbm.items.machine.ItemBattery;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemFluidIDMulti;
import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType;
@ -271,6 +272,17 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_REDSTONE.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', IRON.plate(), 'R', REDSTONE.block(), 'P', ModItems.plate_polymer });
addRecipeAuto(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_COPPER.ordinal()), new Object[] { "IRI", "PRP", "IRI", 'I', STEEL.plate(), 'R', CU.block(), 'P', ModItems.plate_polymer });
addRecipeAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.EMPTY.ordinal()), new Object[] { "PGP", "L L", "PGP", 'P', ANY_PLASTIC.ingot(), 'G', GOLD.wireFine(), 'L', PB.plate() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.WASTE.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), ModItems.billet_nuclear_waste, ModItems.billet_nuclear_waste });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.RA226.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), RA226.billet(), RA226.billet() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.TC99.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), TC99.billet(), TC99.billet() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.CO60.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), CO60.billet(), CO60.billet() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.PU238.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), PU238.billet(), PU238.billet() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.PO210.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), PO210.billet(), PO210.billet() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.AU198.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), AU198.billet(), AU198.billet() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.PB209.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), PB209.billet(), PB209.billet() });
addShapelessAuto(new ItemStack(ModItems.battery_sc, 1, EnumBatterySC.AM241.ordinal()), new Object[] { DictFrame.fromOne(ModItems.battery_sc, EnumBatterySC.EMPTY), AM241.billet(), AM241.billet() });
GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }));
GameRegistry.addRecipe(new ContainerUpgradeCraftingHandler(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', CU.plateCast(), 'C', ModBlocks.crate_steel }));
// Note: voids the last few slots when placed, because a safe's inventory is smaller than a crate's one
@ -535,14 +547,6 @@ public class CraftingManager {
addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() });
addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() });
addRecipeAuto(new ItemStack(ModItems.battery_sc_uranium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', U238.billet(), 'P', PB.plate(), 'C', ModItems.thermo_element });
addRecipeAuto(new ItemStack(ModItems.battery_sc_technetium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', TC99.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_uranium });
addRecipeAuto(new ItemStack(ModItems.battery_sc_plutonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PU238.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_technetium });
addRecipeAuto(new ItemStack(ModItems.battery_sc_polonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PO210.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_plutonium });
addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_polonium });
addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_gold });
addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_lead });
addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', STEEL.bolt(), 'K', Fluids.KEROSENE.getDict(1000) });
@ -738,7 +742,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() });
addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() });
addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium });
addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "I I", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus });
addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS });
addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler });
addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse });

View File

@ -1469,6 +1469,8 @@ public class MainRegistry {
ignoreMappings.add("hbm:tile.fusion_conductor");
ignoreMappings.add("hbm:tile.fusion_center");
ignoreMappings.add("hbm:tile.fusion_motor");
ignoreMappings.add("hbm:tile.machine_spp_bottom");
ignoreMappings.add("hbm:tile.machine_spp_top");
/// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -741,6 +741,7 @@ public class ResourceManager {
//FENSU
public static final ResourceLocation battery_socket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_socket.png");
public static final ResourceLocation battery_sc_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_sc.png");
public static final ResourceLocation battery_redd_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu2.png");
public static final ResourceLocation fensu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu.png");

View File

@ -64,7 +64,7 @@ public class ModuleMachineFusion extends ModuleMachineBase {
// fusion reactor is the only machine as of now that consumes input while not having finished the output
if(recipe.inputFluid != null) {
for(int i = 0; i < Math.min(recipe.inputFluid.length, inputTanks.length); i++) {
inputTanks[i].setFill(inputTanks[i].getFill() - (int) Math.ceil(recipe.inputFluid[i].fill * processSpeed));
inputTanks[i].setFill(Math.max(inputTanks[i].getFill() - (int) Math.ceil(recipe.inputFluid[i].fill * processSpeed), 0));
}
}

View File

@ -58,6 +58,7 @@ public class BusAnimationKeyframe {
public double value;
public IType interpolationType;
public EType easingType;
public int originalDuration;
public int duration;
// bezier handles
@ -78,7 +79,7 @@ public class BusAnimationKeyframe {
// this one can be used for "reset" type keyframes
public BusAnimationKeyframe() {
this.value = 0;
this.duration = 1;
this.originalDuration = this.duration = 1;
this.interpolationType = IType.LINEAR;
this.easingType = EType.AUTO;
}
@ -86,7 +87,7 @@ public class BusAnimationKeyframe {
public BusAnimationKeyframe(double value, int duration) {
this();
this.value = value;
this.duration = (int) (duration / Math.max(0.001D, ClientConfig.GUN_ANIMATION_SPEED.get()));
this.originalDuration = this.duration = (int) (duration / Math.max(0.001D, ClientConfig.GUN_ANIMATION_SPEED.get()));
}
public BusAnimationKeyframe(double value, int duration, IType interpolation) {

View File

@ -90,7 +90,9 @@ public class BusAnimationSequence {
for(Dimension dim : Dimension.values()) {
List<BusAnimationKeyframe> keyframes = transformKeyframes.get(dim.ordinal());
for(BusAnimationKeyframe keyframe : keyframes) keyframe.duration *= mult;
for(BusAnimationKeyframe keyframe : keyframes) {
keyframe.duration = (int) (keyframe.originalDuration * mult);
}
}
return this;
}

View File

@ -1,21 +1,34 @@
package com.hbm.render.tileentity;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import com.hbm.render.util.BeamPronter;
import com.hbm.render.util.HorsePronter;
import com.hbm.render.util.BeamPronter.EnumBeamType;
import com.hbm.render.util.BeamPronter.EnumWaveType;
import com.hbm.tileentity.machine.storage.TileEntityBatterySocket;
import com.hbm.util.EnumUtil;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Vec3;
import net.minecraftforge.client.IItemRenderer;
public class RenderBatterySocket extends TileEntitySpecialRenderer implements IItemRendererProvider {
private static ResourceLocation blorbo = new ResourceLocation(RefStrings.MODID, "textures/models/horse/sunburst.png");
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
@ -38,10 +51,37 @@ public class RenderBatterySocket extends TileEntitySpecialRenderer implements II
bindTexture(ResourceManager.battery_socket_tex);
ResourceManager.battery_socket.renderPart("Socket");
if(socket.renderPack >= 0) {
EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, socket.renderPack);
bindTexture(pack.texture);
ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery");
ItemStack render = socket.syncStack;
if(render != null) {
if(render.getItem() == ModItems.battery_pack) {
EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, render.getItemDamage());
bindTexture(pack.texture);
ResourceManager.battery_socket.renderPart(pack.isCapacitor() ? "Capacitor" : "Battery");
} else if(render.getItem() == ModItems.battery_sc) {
bindTexture(ResourceManager.battery_sc_tex);
ResourceManager.battery_socket.renderPart("Battery");
} else if(render.getItem() == ModItems.battery_creative) {
GL11.glPushMatrix();
GL11.glScaled(0.75, 0.75, 0.75);
GL11.glRotated((socket.getWorldObj().getTotalWorldTime() % 360 + interp) * 25D, 0, -1, 0);
this.bindTexture(blorbo);
HorsePronter.reset();
HorsePronter.enableHorn();
HorsePronter.pront();
GL11.glPopMatrix();
Random rand = new Random(tile.getWorldObj().getTotalWorldTime() / 5);
rand.nextBoolean();
for(int i = -1; i <= 1; i += 2) for(int j = -1; j <= 1; j += 2) if(rand.nextInt(4) == 0) {
GL11.glPushMatrix();
GL11.glTranslated(0, 0.75, 0);
BeamPronter.prontBeam(Vec3.createVectorHelper(0.4375 * i, 1.1875, 0.4375 * j), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.0625F, 3, 0.025F);
BeamPronter.prontBeam(Vec3.createVectorHelper(0.4375 * i, 1.1875, 0.4375 * j), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x404040, 0x002040, (int)(System.currentTimeMillis() % 1000) / 50, 1, 0, 3, 0.025F);
GL11.glPopMatrix();
}
}
}
GL11.glShadeModel(GL11.GL_FLAT);

View File

@ -6,81 +6,30 @@ import org.lwjgl.BufferUtils;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import com.hbm.render.util.HorsePronter;
import com.hbm.wiaj.WorldInAJar;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
public class RendererObjTester extends TileEntitySpecialRenderer {
private static RenderBlocks renderer;
private static WorldInAJar world;
private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png");
private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/sunburst.png");
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y + 1, z + 0.5);
GL11.glTranslated(x + 0.5, y, z + 0.5);
GL11.glDisable(GL11.GL_CULL_FACE);
if(world == null) {
world = new WorldInAJar(5, 3, 5);
for(int i = 0; i < 25; i++) world.setBlock(i / 5, 1, i % 5, Blocks.brick_block, 0);
for(int i = 0; i < 9; i++) world.setBlock(1 + i / 3, 0, 1 + i % 3, Blocks.brick_block, 0);
}
if(renderer == null) {
renderer = new RenderBlocks(world);
}
renderer.enableAO = true;
world.lightlevel = tileEntity.getWorldObj().getLightBrightnessForSkyBlocks(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0);
RenderHelper.disableStandardItemLighting();
GL11.glPushMatrix();
GL11.glRotated(15, 0, 0, 1);
GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0);
GL11.glTranslated(-2.5, 0, -2.5);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
GL11.glShadeModel(GL11.GL_SMOOTH);
Tessellator.instance.startDrawingQuads();
for(int ix = 0; ix < world.sizeX; ix++) {
for(int iy = 0; iy < world.sizeY; iy++) {
for(int iz = 0; iz < world.sizeZ; iz++) {
try { renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); } catch(Exception ex) { }
}
}
}
Tessellator.instance.draw();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
RenderHelper.enableStandardItemLighting();
GL11.glRotated(15, 0, 0, 1);
GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0);
GL11.glTranslated(0, 2.1, 0.5);
this.bindTexture(extra);
HorsePronter.reset();
double r = 60;
/*double r = 60;
HorsePronter.pose(HorsePronter.id_body, 0, -r, 0);
HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90);
HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35);
@ -88,20 +37,10 @@ public class RendererObjTester extends TileEntitySpecialRenderer {
HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5);
HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5);
HorsePronter.pose(HorsePronter.id_head, 0, r, 0);
HorsePronter.enableWings();*/
HorsePronter.enableHorn();
HorsePronter.enableWings();
HorsePronter.pront();
ItemStack stack = new ItemStack(ModItems.cigarette);
double scale = 0.25;
GL11.glTranslated(0.02, 1.13, -0.42);
GL11.glScaled(scale, scale, scale);
GL11.glRotated(90, 0, -1, 0);
GL11.glRotated(60, 0, 0, -1);
bindTexture(TextureMap.locationItemsTexture);
IIcon icon = stack.getIconIndex();
ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
GL11.glPopMatrix();
}

View File

@ -123,7 +123,6 @@ public class TileMappings {
put(TileEntityMachinePress.class, "tileentity_press");
put(TileEntityMachineAmmoPress.class, "tileentity_ammo_press");
put(TileEntityMachineSiren.class, "tileentity_siren");
put(TileEntityMachineSPP.class, "tileentity_spp");
put(TileEntityMachineRadGen.class, "tileentity_radgen");
put(TileEntityMachineRadarNT.class, "tileentity_radar");
put(TileEntityMachineRadarLarge.class, "tileentity_radar_large");

View File

@ -8,7 +8,6 @@ import com.hbm.items.ModItems;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energymk2.IBatteryItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
@ -104,17 +103,8 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU
}
public int getBattery() {
if(slots[1] != null && slots[1].getItem() == ModItems.battery_spark &&
((IBatteryItem)ModItems.battery_spark).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_spark).getMaxCharge(slots[1])) {
return 1;
}
if(slots[1] != null && slots[1].getItem() == ModItems.battery_trixite &&
((IBatteryItem)ModItems.battery_trixite).getCharge(slots[1]) == ((IBatteryItem)ModItems.battery_trixite).getMaxCharge(slots[1])) {
return 2;
}
if(slots[1] != null && slots[1].getItem() == ModItems.battery_spark) return 1;
if(slots[1] != null && slots[1].getItem() == ModItems.battery_trixite) return 2;
return 0;
}

View File

@ -1,97 +0,0 @@
package com.hbm.tileentity.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.CompatEnergyControl;
import api.hbm.energymk2.IEnergyProviderMK2;
import api.hbm.tile.IInfoProviderEC;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityMachineSPP extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC {
public long power;
public static final long maxPower = 100000;
public int age = 0;
public int gen = 0;
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
this.tryProvide(worldObj, xCoord + 1, yCoord, zCoord, Library.POS_X);
this.tryProvide(worldObj, xCoord - 1, yCoord, zCoord, Library.NEG_X);
this.tryProvide(worldObj, xCoord, yCoord, zCoord + 1, Library.POS_Z);
this.tryProvide(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z);
this.tryProvide(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y);
if(worldObj.getTotalWorldTime() % 20 == 0)
gen = checkStructure() * 15;
if(gen > 0)
power += gen;
if(power > maxPower)
power = maxPower;
}
}
public int checkStructure() {
int h = 0;
for(int i = yCoord + 1; i < 254; i++)
if(worldObj.getBlock(xCoord, i, zCoord) == ModBlocks.machine_spp_top) {
h = i;
break;
}
for(int i = yCoord + 1; i < h; i++)
if(!checkSegment(i))
return 0;
return h - yCoord - 1;
}
public boolean checkSegment(int y) {
// BBB
// BAB
// BBB
return (worldObj.getBlock(xCoord + 1, y, zCoord) != Blocks.air &&
worldObj.getBlock(xCoord + 1, y, zCoord + 1) != Blocks.air &&
worldObj.getBlock(xCoord + 1, y, zCoord - 1) != Blocks.air &&
worldObj.getBlock(xCoord - 1, y, zCoord + 1) != Blocks.air &&
worldObj.getBlock(xCoord - 1, y, zCoord) != Blocks.air &&
worldObj.getBlock(xCoord - 1, y, zCoord - 1) != Blocks.air &&
worldObj.getBlock(xCoord, y, zCoord + 1) != Blocks.air &&
worldObj.getBlock(xCoord, y, zCoord - 1) != Blocks.air &&
worldObj.getBlock(xCoord, y, zCoord) == Blocks.air);
}
@Override
public long getPower() {
return this.power;
}
@Override
public void setPower(long i) {
this.power = i;
}
@Override
public long getMaxPower() {
return this.maxPower;
}
@Override
public void provideExtraInfo(NBTTagCompound data) {
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.gen > 0);
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.gen);
}
}

View File

@ -5,6 +5,7 @@ import com.hbm.interfaces.IControlReceiver;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.uninos.UniNodespace;
import com.hbm.util.Compat;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -26,6 +27,7 @@ import li.cil.oc.api.network.SimpleComponent;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
@ -74,7 +76,13 @@ public abstract class TileEntityBatteryBase extends TileEntityMachineBase implem
}
byte comp = this.getComparatorPower();
if(comp != this.lastRedstone) this.markDirty();
if(comp != this.lastRedstone) {
System.out.println(comp);
for(BlockPos port : this.getPortPos()) {
TileEntity tile = Compat.getTileStandard(worldObj, port.getX(), port.getY(), port.getZ());
if(tile != null) tile.markDirty();
}
}
this.lastRedstone = comp;
prevPowerState = this.getPower();
@ -84,8 +92,8 @@ public abstract class TileEntityBatteryBase extends TileEntityMachineBase implem
}
public byte getComparatorPower() {
double frac = (double) this.getPower() / (double) this.getMaxPower() * 15D;
return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); //to combat eventual rounding errors with the FEnSU's stupid maxPower
double frac = (double) this.getPower() / (double) Math.max(this.getMaxPower(), 1) * 15D;
return (byte) (MathHelper.clamp_int((int) Math.round(frac), 0, 15)); //to combat eventual rounding errors with the FEnSU's stupid maxPower
}
@Override

View File

@ -7,6 +7,7 @@ import com.hbm.inventory.gui.GUIBatteryREDD;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -22,7 +23,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityBatteryREDD extends TileEntityBatteryBase {
public class TileEntityBatteryREDD extends TileEntityBatteryBase implements IPersistentNBT {
public float prevRotation = 0F;
public float rotation = 0F;
@ -155,7 +156,6 @@ public class TileEntityBatteryREDD extends TileEntityBatteryBase {
super.writeToNBT(nbt);
nbt.setByteArray("power", this.power.toByteArray());
}
@Override
@ -261,5 +261,20 @@ public class TileEntityBatteryREDD extends TileEntityBatteryBase {
case "getInfo": return getInfo(context, args);
}
throw new NoSuchMethodException();
}
@Override
public void writeNBT(NBTTagCompound nbt) {
NBTTagCompound data = new NBTTagCompound();
data.setByteArray("power", this.power.toByteArray());
data.setBoolean("muffled", muffled);
nbt.setTag(NBT_PERSISTENT_KEY, data);
}
@Override
public void readNBT(NBTTagCompound nbt) {
NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY);
this.power = new BigInteger(data.getByteArray("power"));
this.muffled = data.getBoolean("muffled");
}
}

View File

@ -2,7 +2,7 @@ package com.hbm.tileentity.machine.storage;
import com.hbm.inventory.container.ContainerBatterySocket;
import com.hbm.inventory.gui.GUIBatterySocket;
import com.hbm.items.ModItems;
import com.hbm.util.BufferUtil;
import com.hbm.util.CompatEnergyControl;
import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
@ -29,9 +29,9 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR
public long[] log = new long[20];
public long delta = 0;
public int renderPack = -1;
public ItemStack syncStack;
public TileEntityBatterySocket() {
super(1);
}
@ -60,20 +60,15 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
int renderPack = -1;
if(slots[0] != null && slots[0].getItem() == ModItems.battery_pack) {
renderPack = slots[0].getItemDamage();
}
buf.writeInt(renderPack);
buf.writeLong(delta);
BufferUtil.writeItemStack(buf, this.slots[0]);
}
@Override
public void deserialize(ByteBuf buf) {
super.deserialize(buf);
renderPack = buf.readInt();
delta = buf.readLong();
this.syncStack = BufferUtil.readItemStack(buf);
}
@Override
@ -87,22 +82,23 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase implements IR
@Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] {0}; }
@Override
public long getPower() {
if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0;
return ((IBatteryItem) slots[0].getItem()).getCharge(slots[0]);
}
@Override public long getPower() { return powerFromStack(slots[0]); }
@Override public long getMaxPower() { return maxPowerFromStack(slots[0]); }
@Override
public void setPower(long power) {
if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return;
((IBatteryItem) slots[0].getItem()).setCharge(slots[0], power);
}
@Override
public long getMaxPower() {
if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0;
return ((IBatteryItem) slots[0].getItem()).getMaxCharge(slots[0]);
public static long powerFromStack(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof IBatteryItem)) return 0;
return ((IBatteryItem) stack.getItem()).getCharge(stack);
}
public static long maxPowerFromStack(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof IBatteryItem)) return 0;
return ((IBatteryItem) stack.getItem()).getMaxCharge(stack);
}
@Override public long getProviderSpeed() {

View File

@ -184,10 +184,7 @@ public class BobMathUtil {
* @param amount
* @return the number as a string with thousand group commas
*/
public static String format(int amount) {
return String.format(Locale.US, "%,d", amount);
}
public static String format(long amount) {
public static String format(Number amount) {
return String.format(Locale.US, "%,d", amount);
}

View File

@ -1308,16 +1308,16 @@ item.ballistite.name=Ballistit
item.bandaid.name=Samtenes Pflaster
item.bathwater.name=Toxisches Seifenwasser
item.bathwater_mk2.name=Toxisches Seifenwasser (Pferdearoma)
item.battery_advanced.name=Fortgeschrittene Batterie
item.battery_advanced_cell.name=Fortgeschrittene Energiezelle
item.battery_advanced_cell_12.name=Zwölffache fortgeschrittene Energiezelle
item.battery_advanced_cell_4.name=Vierfache fortgeschrittene Energiezelle
item.battery_advanced.name=Fortgeschrittene Batterie (LEGACY)
item.battery_advanced_cell.name=Fortgeschrittene Energiezelle (LEGACY)
item.battery_advanced_cell_12.name=Zwölffache fortgeschrittene Energiezelle (LEGACY)
item.battery_advanced_cell_4.name=Vierfache fortgeschrittene Energiezelle (LEGACY)
item.battery_creative.name=Unendliche Batterie
item.battery_generic.name=Batterie
item.battery_lithium.name=Lithium-Ionen-Batterie
item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle
item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle
item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle
item.battery_generic.name=Batterie (LEGACY)
item.battery_lithium.name=Lithium-Ionen-Batterie (LEGACY)
item.battery_lithium_cell.name=Lithium-Ionen-Energiezelle (LEGACY)
item.battery_lithium_cell_3.name=Dreifache Lithium-Ionen-Energiezelle (LEGACY)
item.battery_lithium_cell_6.name=Sechsfache Lithium-Ionen-Energiezelle (LEGACY)
item.battery_pack.battery_lead.name=Bleisäure-Akku
item.battery_pack.battery_lithium.name=Lithium-Ionen-Akku
item.battery_pack.battery_quantum.name=Quantenakku
@ -1332,33 +1332,41 @@ item.battery_pack.capacitor_spark.name=Spark-Kondensator
item.battery_pack.capacitor_tantalum.name=Tantalkondensator
item.battery_potato.name=Katoffelbatterie
item.battery_potatos.name=PotatOS
item.battery_red_cell.name=Redstone-Energiezelle
item.battery_red_cell_24.name=24-fache Redstone-Energiezelle
item.battery_red_cell_6.name=Sechsfache Redstone-Energiezelle
item.battery_sc_americium.name=Americium-241-Selbstlader
item.battery_sc_gold.name=Gold-198-Selbstlader
item.battery_sc_lead.name=Blei-209-Selbstlader
item.battery_sc_plutonium.name=Plutonium-238-Selbstlader
item.battery_sc_polonium.name=Polonium-210-Selbstlader
item.battery_sc_technetium.name=Technerium-99-Selbstlader
item.battery_sc_uranium.name=Uran-238-Selbstlader
item.battery_schrabidium.name=Schrabidiumbatterie
item.battery_schrabidium_cell.name=Schrabidium-Energiezelle
item.battery_schrabidium_cell_2.name=Doppelte Schrabidium-Energiezelle
item.battery_schrabidium_cell_4.name=Vierfache Schrabidium-Energiezelle
item.battery_red_cell.name=Redstone-Energiezelle (LEGACY)
item.battery_red_cell_24.name=24-fache Redstone-Energiezelle (LEGACY)
item.battery_red_cell_6.name=Sechsfache Redstone-Energiezelle (LEGACY)
item.battery_sc.am241.name=Americium-241-Selbstlader
item.battery_sc.au198.name=Gold-198-Selbstlader
item.battery_sc.co60.name=Kobalt-60-Selbstlader
item.battery_sc.empty.name=Leerer Selbstlader
item.battery_sc.pb209.name=Blei-209-Selbstlader
item.battery_sc.po210.name=Polonium-210-Selbstlader
item.battery_sc.pu238.name=Plutonium-238-Selbstlader
item.battery_sc.ra226.name=Radium-226-Selbstlader
item.battery_sc.tc99.name=Technetium-99-Selbstlader
item.battery_sc.waste.name=Atommüll-Selbstlader
item.battery_sc_americium.name=Americium-241-Selbstlader (LEGACY)
item.battery_sc_gold.name=Gold-198-Selbstlader (LEGACY)
item.battery_sc_lead.name=Blei-209-Selbstlader (LEGACY)
item.battery_sc_plutonium.name=Plutonium-238-Selbstlader (LEGACY)
item.battery_sc_polonium.name=Polonium-210-Selbstlader (LEGACY)
item.battery_sc_technetium.name=Technerium-99-Selbstlader (LEGACY)
item.battery_sc_uranium.name=Uran-238-Selbstlader (LEGACY)
item.battery_schrabidium.name=Schrabidiumbatterie (LEGACY)
item.battery_schrabidium_cell.name=Schrabidium-Energiezelle (LEGACY)
item.battery_schrabidium_cell_2.name=Doppelte Schrabidium-Energiezelle (LEGACY)
item.battery_schrabidium_cell_4.name=Vierfache Schrabidium-Energiezelle (LEGACY)
item.battery_spark.name=Spark-Batterie
item.battery_spark_cell_100.name=Spark-Arkane Energiespeicher-Matrix
item.battery_spark_cell_1000.name=Spark-Arkane Massen-Energie Speicherleere
item.battery_spark_cell_10000.name=Spark Solider Raumzeit Kristall
item.battery_spark_cell_25.name=Spark-Arkane Autobatterie
item.battery_spark_cell_2500.name=Spark-Arkanes Dirac'sches Meer
item.battery_spark_cell_6.name=Spark-Energiezelle
item.battery_spark_cell_power.name=Spark Lächerliche Physik-missachtende Energiespeichereinheit
item.battery_steam.name=Dampfbetriebener Energiespeichertank
item.battery_steam_large.name=Großer dampfbetriebener Energiespeichertank
item.battery_su.name=Einwegbatterie
item.battery_su_l.name=Große Einwegbatterie
item.battery_trixite.name=Billige Spark-Batterie-Nachmache
item.battery_spark_cell_100.name=Spark-Arkane Energiespeicher-Matrix (LEGACY)
item.battery_spark_cell_1000.name=Spark-Arkane Massen-Energie Speicherleere (LEGACY)
item.battery_spark_cell_10000.name=Spark Solider Raumzeit Kristall (LEGACY)
item.battery_spark_cell_25.name=Spark-Arkane Autobatterie (LEGACY)
item.battery_spark_cell_2500.name=Spark-Arkanes Dirac'sches Meer (LEGACY)
item.battery_spark_cell_6.name=Spark-Energiezelle (LEGACY)
item.battery_spark_cell_power.name=Spark Lächerliche Physik-missachtende Energiespeichereinheit (LEGACY)
item.battery_steam.name=Dampfbetriebener Energiespeichertank (LEGACY)
item.battery_steam_large.name=Großer dampfbetriebener Energiespeichertank (LEGACY)
item.battery_trixite.name=Billiger Spark-Batterie Nachbau
item.bdcl.name=BDCL
item.bedrock_ore.grade.base.name=%s-Bedrockerz
item.bedrock_ore.grade.base_roasted.name=Geröstetes %s-Bedrockerz
@ -4479,7 +4487,7 @@ tile.machine_battery_redd.name=FEnSU
tile.machine_battery_socket.name=Batteriesockel
tile.machine_battery_socket.desc=Erlaubt es, Batterien direkt mit$dem Stromnetz zu verbinden.$Verhält sich wie ein Kabel, alle$Verbindungen sind im selben Netzwek.
tile.machine_boiler.name=Boiler
tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t
tile.machine_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.1 TU/t
tile.machine_boiler_electric_off.name=Elektrischer Ölwärmer
tile.machine_boiler_electric_on.name=Elektrischer Ölwärmer
tile.machine_boiler_off.name=Alter Boiler
@ -4495,7 +4503,7 @@ tile.machine_chungus.desc=Effizienz: 85%%
tile.machine_coal_off.name=Verbrennungsgenerator
tile.machine_coal_on.name=Verbrennungsgenerator
tile.machine_coker.name=Koker-Anlage
tile.machine_coker.desc=Verkokt Öl, erzeugt fluides Nebenprodukt.$Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.025 TU/t
tile.machine_coker.desc=Verkokt Öl, erzeugt fluides Nebenprodukt.$Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.25 TU/t
tile.machine_combine_factory.name=CMB-Stahl Hochofen
tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor
tile.machine_compressor.name=Kompressor
@ -4508,6 +4516,7 @@ tile.machine_converter_rf_he.name=RF zu HE Konverter
tile.machine_conveyor_press.name=Förderband-Presse
tile.machine_conveyor_press.desc=Band bewegt sich von links nach rechts$Rechtsclick um Stempel zu montieren$Stempel kann mit Schraubenzieher entfernt werden
tile.machine_crucible.name=Schmelztiegel
tile.machine_crucible.desc=Wärmestransferrate: ΔT*0.25 TU/t
tile.machine_crystallizer.name=Erzauflöser
tile.machine_cyclotron.name=Zyklotron
tile.machine_detector.name=Energiedetektor
@ -4543,7 +4552,7 @@ tile.machine_geo.name=Geothermiegenerator
tile.machine_hephaestus.name=Geothermischer Wärmetauscher
tile.machine_icf_press.name=ICF-Brennstoffpellet-Fabrikant
tile.machine_industrial_boiler.name=Industrieller Boiler
tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t$Überdrucksicher
tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.1 TU/t$Überdrucksicher
tile.machine_industrial_generator.name=Industrieller Generator
tile.machine_intake.name=Lufteinlass
tile.machine_keyforge.name=Schlossertisch

View File

@ -2066,16 +2066,16 @@ item.ballistite.name=Ballistite
item.bandaid.name=Velvet Band-Aid
item.bathwater.name=Toxic Soapy Water
item.bathwater_mk2.name=Toxic Soapy Water (Horse Scented)
item.battery_advanced.name=Advanced Battery
item.battery_advanced_cell.name=Advanced Power Cell
item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell
item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell
item.battery_advanced.name=Advanced Battery (LEGACY)
item.battery_advanced_cell.name=Advanced Power Cell (LEGACY)
item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell (LEGACY)
item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell (LEGACY)
item.battery_creative.name=Infinite Battery
item.battery_generic.name=Battery
item.battery_lithium.name=Lithium-Ion Battery
item.battery_lithium_cell.name=Lithium-Ion Power Cell
item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell
item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell
item.battery_generic.name=Battery (LEGACY)
item.battery_lithium.name=Lithium-Ion Battery (LEGACY)
item.battery_lithium_cell.name=Lithium-Ion Power Cell (LEGACY)
item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell (LEGACY)
item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell (LEGACY)
item.battery_pack.battery_lead.name=Lead-Acid Battery
item.battery_pack.battery_lithium.name=Lithium-Ion Battery
item.battery_pack.battery_quantum.name=Quantum Battery
@ -2090,32 +2090,40 @@ item.battery_pack.capacitor_spark.name=Spark Capacitor
item.battery_pack.capacitor_tantalum.name=Tantalum Capacitor
item.battery_potato.name=Potato Battery
item.battery_potatos.name=PotatOS
item.battery_red_cell.name=Redstone Power Cell
item.battery_red_cell_24.name=24-Fold Redstone Power Cell
item.battery_red_cell_6.name=Sixfold Redstone Power Cell
item.battery_sc_americium.name=Self-Charging Americium-241 Battery
item.battery_sc_gold.name=Self-Charging Gold-198 Battery
item.battery_sc_lead.name=Self-Charging Lead-209 Battery
item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery
item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery
item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery
item.battery_sc_uranium.name=Self-Charging Uranium-238 Battery
item.battery_schrabidium.name=Schrabidium Battery
item.battery_schrabidium_cell.name=Schrabidium Power Cell
item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell
item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell
item.battery_red_cell.name=Redstone Power Cell (LEGACY)
item.battery_red_cell_24.name=24-Fold Redstone Power Cell (LEGACY)
item.battery_red_cell_6.name=Sixfold Redstone Power Cell (LEGACY)
item.battery_sc.am241.name=Americium-241 Self-Charging Battery
item.battery_sc.au198.name=Gold-198 Self-Charging Battery
item.battery_sc.co60.name=Cobalt-60 Self-Charging Battery
item.battery_sc.empty.name=Empty Self-Charging Battery
item.battery_sc.pb209.name=Lead-209 Self-Charging Battery
item.battery_sc.po210.name=Polonium-210 Self-Charging Battery
item.battery_sc.pu238.name=Plutonium-238 Self-Charging Battery
item.battery_sc.ra226.name=Radium-226 Self-Charging Battery
item.battery_sc.tc99.name=Technetium-99 Self-Charging Battery
item.battery_sc.waste.name=Spent Fuel Self-Charging Battery
item.battery_sc_americium.name=Self-Charging Americium-241 Battery (LEGACY)
item.battery_sc_gold.name=Self-Charging Gold-198 Battery (LEGACY)
item.battery_sc_lead.name=Self-Charging Lead-209 Battery (LEGACY)
item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery (LEGACY)
item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery (LEGACY)
item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery (LEGACY)
item.battery_sc_uranium.name=Self-Charging Uranium-238 Battery (LEGACY)
item.battery_schrabidium.name=Schrabidium Battery (LEGACY)
item.battery_schrabidium_cell.name=Schrabidium Power Cell (LEGACY)
item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell (LEGACY)
item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell (LEGACY)
item.battery_spark.name=Spark Battery
item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array
item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void
item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal
item.battery_spark_cell_25.name=Spark Arcane Car Battery
item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea
item.battery_spark_cell_6.name=Spark Power Cell
item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit
item.battery_steam.name=Steam Powered Energy Storage Tank
item.battery_steam_large.name=Large Steam Powered Energy Storage Tank
item.battery_su.name=SU-Battery
item.battery_su_l.name=Large SU-Battery
item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array (LEGACY)
item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void (LEGACY)
item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal (LEGACY)
item.battery_spark_cell_25.name=Spark Arcane Car Battery (LEGACY)
item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea (LEGACY)
item.battery_spark_cell_6.name=Spark Power Cell (LEGACY)
item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit (LEGACY)
item.battery_steam.name=Steam Powered Energy Storage Tank (LEGACY)
item.battery_steam_large.name=Large Steam Powered Energy Storage Tank (LEGACY)
item.battery_trixite.name=Off-Brand Spark Battery
item.bdcl.name=BDCL
item.bedrock_ore.grade.base.name=%s Bedrock Ore
@ -5740,9 +5748,9 @@ tile.machine_battery.name=Energy Storage Block (LEGACY)
tile.machine_battery_potato.name=Potato Battery Block (LEGACY)
tile.machine_battery_redd.name=FEnSU
tile.machine_battery_socket.name=Battery Socket
tile.machine_battery_socket.desc=Allows battery items to be connected$to the power grid directly.$Acts as a cable, all ports are connected$to the same netowrk.
tile.machine_battery_socket.desc=Allows battery items to be connected$to the power grid directly.$Acts as a cable, all ports are connected$to the same network.
tile.machine_boiler.name=Boiler
tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t
tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.1 TU/t
tile.machine_boiler_electric_off.name=Electric Oil Heater
tile.machine_boiler_electric_on.name=Electric Oil Heater
tile.machine_boiler_off.name=Old Boiler
@ -5759,7 +5767,7 @@ tile.machine_chungus.desc=Efficiency: 85%%
tile.machine_coal_off.name=Combustion Generator
tile.machine_coal_on.name=Combustion Generator
tile.machine_coker.name=Coker Unit
tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t
tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.25 TU/t
tile.machine_combine_factory.name=CMB Steel Furnace
tile.machine_combustion_engine.name=Industrial Combustion Engine
tile.machine_compressor.name=Compressor
@ -5772,6 +5780,7 @@ tile.machine_converter_rf_he.name=RF to HE Converter
tile.machine_conveyor_press.name=Conveyor Press
tile.machine_conveyor_press.desc=Conveyor moves left to right$Right click stamp to install$Use screwdriver to remove stamp
tile.machine_crucible.name=Crucible
tile.machine_crucible.desc=Heat transfer rate: ΔT*0.25 TU/t
tile.machine_crystallizer.name=Ore Acidizer
tile.machine_cyclotron.name=Cyclotron
tile.machine_detector.name=Power Detector
@ -5808,7 +5817,7 @@ tile.machine_hephaestus.name=Geothermal Heat Exchanger
tile.machine_icf_press.name=ICF Fuel Pellet Maker
tile.machine_icf_press.desc=Fills ICF Fuel pellets$Left fuel slot is accepted by top/bottom, right by the sides$Muons and pellets may be supplied from any side
tile.machine_industrial_boiler.name=Industrial Boiler
tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode
tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.1 TU/t$Cannot explode
tile.machine_industrial_generator.name=Industrial Generator
tile.machine_intake.name=Air Intake
tile.machine_keyforge.name=Locksmith Table

View File

@ -5852,6 +5852,8 @@ tile.fusion_collector.name=Улавливающая камера (термояд
tile.fusion_collector.desc=Собирает дополнительное количество продуктов$при подключении к основной камере.
tile.fusion_klystron.name=Клистрон (термоядерный реактор)
tile.fusion_klystron.desc=Зажигает термоядерный реактор.$Требует охлаждения сжатым воздухом.
tile.fusion_klystron_creative.name=Творческий клистрон (термоядерный реактор)
tile.fusion_klystron_creative.desc=Обеспечивает бесконечную энергию клистрона.
tile.fusion_mhdt.name=МГД-турбина (термоядерный реактор)
tile.fusion_mhdt.desc=Извлекает электроэнергию из плазмы напрямую,$что позволяет достичь меньших потерь.$Требуется охлаждение!
tile.fusion_torus.name=Основная камера (термоядерный реактор)
@ -6008,6 +6010,7 @@ tile.machine_battery.name=Энергохранилище (LEGACY)
tile.machine_battery_potato.name=Картофельная батарея (LEGACY)
tile.machine_battery_redd.name=ЭМЭХ
tile.machine_battery_socket.name=Аккумуляторный массив
tile.machine_battery_socket.desc=Позволяет подключать аккумуляторы$напрямую к энергосети.$Выступает в качестве кабеля, все порты$подключены к одной сети.
tile.machine_boiler.name=Бойлер
tile.machine_boiler.desc=Большой бойлер для кипячения воды или нагрева нефти.$Требует внешний источник тепла.$Скорость передачи тепла: ΔT*0.01 TU/t
tile.machine_boiler_electric_off.name=Электрический нагреватель нефти
@ -6824,6 +6827,8 @@ desc.gui.upgrade.speed= * §4Скорость§r: Стакается до 3-х

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 B