even more throughput
12
changelog
@ -16,6 +16,16 @@
|
||||
* CRTs are now crafted in the crafting table instead of via assembler, making use of vacuum tubes
|
||||
* Chainlink fences now only create posts on edges or intersections
|
||||
* The new chainlink fence post block will always create a post, emulating the behavior of the old fences
|
||||
* Removed gold sands (frees up 2 block IDs)
|
||||
* There's now two new variants of builder's choice concrete, desert storm (the texture from the launch pad) and bronze plating (the old ICF laser texture)
|
||||
* Microwaves are no longer electric furnace copies, instead their recipes are restricted to things considered food
|
||||
* Electric furnaces now cause minor pollution (does not connect to smoke stacks!)
|
||||
* Increased the arc furnace's liquid buffer to 128 blocks (from 24)
|
||||
* The arc furnace can now accept up to *16* items per slot (effective amount is lower depending on the output in order to prevent >64 stacks)
|
||||
* Due to technical limitations, clicking into a slot once will only place a single item, however after the item is present, the slot's capacity extends to 16
|
||||
* This is especially apparent when clicking items into slots by hand, and still noticeable when shift clicking by how the items spred out
|
||||
* This does not affect automation at all, items will stack up nicely without spreading out unnecessarily
|
||||
* Reduced arc furnace pollution from 15 to 10 soot per cycle
|
||||
|
||||
## Fixed
|
||||
* Fixed dupe regarding conveyor grabbers
|
||||
@ -23,4 +33,4 @@
|
||||
* Fixed a bug where missile debris would always spawn with a stack size of 1 and a meta of 0
|
||||
* Fixed FM radios disassembling into incorrect parts
|
||||
* Fixed 256k tanks yielding too much steel when shredded
|
||||
* Fixed the wire mold only creating 1 wie instead of the intended 8 due to the changes to the wire oredict
|
||||
* Fixed the wire mold only creating 1 wire instead of the intended 8 due to the changes to the wire oredict
|
||||
@ -454,8 +454,6 @@ public class ModBlocks {
|
||||
public static Block sand_uranium;
|
||||
public static Block sand_polonium;
|
||||
public static Block sand_quartz;
|
||||
public static Block sand_gold;
|
||||
public static Block sand_gold198;
|
||||
public static Block ash_digamma;
|
||||
public static Block glass_boron;
|
||||
public static Block glass_lead;
|
||||
@ -1644,8 +1642,6 @@ public class ModBlocks {
|
||||
sand_uranium = new BlockFalling(Material.sand).setBlockName("sand_uranium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_uranium");
|
||||
sand_polonium = new BlockFalling(Material.sand).setBlockName("sand_polonium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_polonium");
|
||||
sand_quartz = new BlockFalling(Material.sand).setBlockName("sand_quartz").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_quartz");
|
||||
sand_gold = new BlockGoldSand(Material.sand).setBlockName("sand_gold").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_gold");
|
||||
sand_gold198 = new BlockGoldSand(Material.sand).setBlockName("sand_gold198").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_gold");
|
||||
glass_boron = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_boron", Material.glass).setBlockName("glass_boron").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F);
|
||||
glass_lead = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_lead", Material.glass).setBlockName("glass_lead").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F);
|
||||
glass_uranium = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_uranium", Material.glass).setBlockName("glass_uranium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F);
|
||||
@ -2943,8 +2939,6 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(sand_uranium, sand_uranium.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sand_polonium, sand_polonium.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sand_quartz, sand_quartz.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sand_gold, sand_gold.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sand_gold198, sand_gold198.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(glass_boron, glass_boron.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(glass_lead, glass_lead.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(glass_uranium, glass_uranium.getUnlocalizedName());
|
||||
|
||||
@ -30,6 +30,8 @@ public class BlockConcreteColoredExt extends BlockEnumMulti {
|
||||
INDIGO,
|
||||
PURPLE,
|
||||
PINK,
|
||||
HAZARD
|
||||
HAZARD,
|
||||
SAND,
|
||||
BRONZE
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.extprop.HbmLivingProps;
|
||||
import com.hbm.extprop.HbmLivingProps.ContaminationEffect;
|
||||
|
||||
import net.minecraft.block.BlockFalling;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockGoldSand extends BlockFalling {
|
||||
|
||||
public BlockGoldSand(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityWalking(World world, int x, int y, int z, Entity entity) {
|
||||
|
||||
if(entity instanceof EntityLivingBase) {
|
||||
entity.attackEntityFrom(DamageSource.inFire, 2F);
|
||||
|
||||
if(this == ModBlocks.sand_gold198) {
|
||||
HbmLivingProps.addCont((EntityLivingBase)entity, new ContaminationEffect(5F, 300, false));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -32,9 +32,6 @@ public class MineralRecipes {
|
||||
add1To9Pair(ModItems.dust, ModItems.dust_tiny);
|
||||
add1To9Pair(ModItems.powder_coal, ModItems.powder_coal_tiny);
|
||||
add1To9Pair(ModItems.ingot_mercury, ModItems.nugget_mercury);
|
||||
|
||||
add1To9Pair(ModBlocks.sand_gold, ModItems.powder_gold);
|
||||
add1To9Pair(ModBlocks.sand_gold198, ModItems.powder_au198);
|
||||
|
||||
add1To9Pair(ModBlocks.block_aluminium, ModItems.ingot_aluminium);
|
||||
add1To9Pair(ModBlocks.block_graphite, ModItems.ingot_graphite);
|
||||
|
||||
@ -216,7 +216,6 @@ public class HazardRegistry {
|
||||
HazardSystem.register(ancient_scrap, makeData(RADIATION, 150F));
|
||||
HazardSystem.register(block_corium, makeData(RADIATION, 150F));
|
||||
HazardSystem.register(block_corium_cobble, makeData(RADIATION, 150F));
|
||||
HazardSystem.register(sand_gold198, makeData(RADIATION, au198 * block * powder_mult));
|
||||
|
||||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 0), makeData(RADIATION, 0.5F));
|
||||
HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 1), makeData(RADIATION, 1F));
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotNonRetarded;
|
||||
import com.hbm.inventory.recipes.ArcFurnaceRecipes;
|
||||
import com.hbm.inventory.recipes.ArcFurnaceRecipes.ArcFurnaceRecipe;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge;
|
||||
@ -87,10 +89,21 @@ public class ContainerMachineArcFurnaceLarge extends Container {
|
||||
public SlotArcFurnace(IInventory inventory, int id, int x, int y) {
|
||||
super(inventory, id, x, y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValid(ItemStack stack) {
|
||||
TileEntityMachineArcFurnaceLarge furnace = (TileEntityMachineArcFurnaceLarge) this.inventory;
|
||||
if(furnace.liquidMode) return true;
|
||||
ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, furnace.liquidMode);
|
||||
if(recipe != null && recipe.solidOutput != null) {
|
||||
return recipe.solidOutput.stackSize * stack.stackSize <= recipe.solidOutput.getMaxStackSize() && stack.stackSize <= TileEntityMachineArcFurnaceLarge.MAX_INPUT_STACK_SIZE;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlotStackLimit() {
|
||||
return this.getHasStack() ? this.getStack().stackSize : 1;
|
||||
return this.getHasStack() ? TileEntityMachineArcFurnaceLarge.MAX_INPUT_STACK_SIZE : 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ public class ItemMold extends Item {
|
||||
registerMold(new MoldShape( 1, S, "billet", MaterialShapes.BILLET));
|
||||
registerMold(new MoldShape( 2, S, "ingot", MaterialShapes.INGOT));
|
||||
registerMold(new MoldShape( 3, S, "plate", MaterialShapes.PLATE));
|
||||
registerMold(new MoldShape( 4, S, "wires", MaterialShapes.WIRE, 8));
|
||||
registerMold(new MoldShape( 4, S, "wire", MaterialShapes.WIRE, 8));
|
||||
|
||||
registerMold(new MoldShape( 19, S, "plate_cast", MaterialShapes.CASTPLATE));
|
||||
registerMold(new MoldShape( 20, S, "wire_dense", MaterialShapes.DENSEWIRE));
|
||||
|
||||
@ -413,6 +413,8 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PURPLE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PURPLE, '2', KEY_PURPLE });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PINK.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PINK, '2', KEY_RED });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.HAZARD.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_YELLOW, '2', KEY_BLACK });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.SAND.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_YELLOW, '2', KEY_GRAY });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.BRONZE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_ORANGE, '2', KEY_BROWN });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModBlocks.gneiss_tile, 4), new Object[] { "CC", "CC", 'C', ModBlocks.stone_gneiss });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.gneiss_brick, 4), new Object[] { "CC", "CC", 'C', ModBlocks.gneiss_tile });
|
||||
|
||||
@ -1330,6 +1330,8 @@ public class MainRegistry {
|
||||
ignoreMappings.add("hbm:tile.machine_generator");
|
||||
ignoreMappings.add("hbm:item.v1");
|
||||
ignoreMappings.add("hbm:item.arc_electrode_desh");
|
||||
ignoreMappings.add("hbm:tile.sand_gold");
|
||||
ignoreMappings.add("hbm:tile.sand_gold198");
|
||||
|
||||
/// REMAP ///
|
||||
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);
|
||||
|
||||
@ -71,7 +71,9 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
|
||||
public static final byte ELECTRODE_USED = 2;
|
||||
public static final byte ELECTRODE_DEPLETED = 3;
|
||||
|
||||
public static final int maxLiquid = MaterialShapes.BLOCK.q(24);
|
||||
public static final int MAX_INPUT_STACK_SIZE = 16;
|
||||
|
||||
public static final int maxLiquid = MaterialShapes.BLOCK.q(128);
|
||||
public List<MaterialStack> liquids = new ArrayList();
|
||||
|
||||
public TileEntityMachineArcFurnaceLarge() {
|
||||
@ -127,7 +129,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
|
||||
this.process();
|
||||
this.progress = 0;
|
||||
this.delay = (int) (120 / (upgrade * 0.5 + 1));
|
||||
PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, 15F);
|
||||
PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, 10F);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -280,7 +282,9 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
|
||||
if(recipe == null) continue;
|
||||
|
||||
if(!liquidMode && recipe.solidOutput != null) {
|
||||
int amount = slots[i].stackSize;
|
||||
slots[i] = recipe.solidOutput.copy();
|
||||
slots[i].stackSize *= amount;
|
||||
}
|
||||
|
||||
if(liquidMode && recipe.fluidOutput != null) {
|
||||
@ -330,17 +334,34 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl
|
||||
|
||||
@Override
|
||||
public boolean canInsertItem(int slot, ItemStack stack, int side) {
|
||||
return this.isItemValidForSlot(slot, stack) && stack.stackSize <= 1 && this.lid > 0;
|
||||
if(lid <= 0) return false;
|
||||
if(slot < 3) return stack.getItem() == ModItems.arc_electrode;
|
||||
if(slot > 4) {
|
||||
ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, this.liquidMode);
|
||||
if(recipe == null) return false;
|
||||
if(liquidMode) {
|
||||
return recipe.fluidOutput != null;
|
||||
} else {
|
||||
if(recipe.solidOutput == null) return false;
|
||||
int sta = slots[slot] != null ? slots[slot].stackSize : 0;
|
||||
sta += stack.stackSize;
|
||||
return sta * recipe.solidOutput.stackSize <= recipe.solidOutput.getMaxStackSize() && sta <= MAX_INPUT_STACK_SIZE;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slot, ItemStack stack) {
|
||||
if(slot < 3) return stack.getItem() == ModItems.arc_electrode;
|
||||
if(slot > 4) {
|
||||
if(slots[slot] != null) return false;
|
||||
ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, this.liquidMode);
|
||||
if(recipe == null) return false;
|
||||
return liquidMode ? recipe.fluidOutput != null : recipe.solidOutput != null;
|
||||
if(liquidMode) {
|
||||
return recipe.fluidOutput != null;
|
||||
} else {
|
||||
return recipe.solidOutput != null;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -4,6 +4,8 @@ import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.machine.MachineElectricFurnace;
|
||||
import com.hbm.handler.pollution.PollutionHandler;
|
||||
import com.hbm.handler.pollution.PollutionHandler.PollutionType;
|
||||
import com.hbm.inventory.UpgradeManager;
|
||||
import com.hbm.inventory.container.ContainerElectricFurnace;
|
||||
import com.hbm.inventory.gui.GUIMachineElectricFurnace;
|
||||
@ -195,6 +197,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl
|
||||
progress++;
|
||||
|
||||
power -= consumption;
|
||||
|
||||
if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND);
|
||||
|
||||
if(this.progress >= maxProgress) {
|
||||
this.progress = 0;
|
||||
|
||||
@ -17,6 +17,7 @@ import li.cil.oc.api.network.SimpleComponent;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemFood;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@ -131,11 +132,9 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg
|
||||
|
||||
ItemStack stack = FurnaceRecipes.smelting().getSmeltingResult(slots[0]);
|
||||
|
||||
if(slots[1] == null)
|
||||
return true;
|
||||
|
||||
if(!stack.isItemEqual(slots[1]))
|
||||
return false;
|
||||
if(!(slots[0].getItem() instanceof ItemFood) && !(stack.getItem() instanceof ItemFood)) return false;
|
||||
if(slots[1] == null) return true;
|
||||
if(!stack.isItemEqual(slots[1])) return false;
|
||||
|
||||
return stack.stackSize + slots[1].stackSize <= stack.getMaxStackSize();
|
||||
}
|
||||
|
||||
@ -3864,12 +3864,14 @@ tile.concrete_colored.red.name=Roter Beton
|
||||
tile.concrete_colored.silver.name=Hellgrauer Beton
|
||||
tile.concrete_colored.white.name=Weißer Beton
|
||||
tile.concrete_colored.yellow.name=Gelber Beton
|
||||
tile.concrete_colored_ext.bronze.name=Builder's Choice Concrete - Bronzeplatten
|
||||
tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Gefahrenstreifen
|
||||
tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Tiefes Indigo
|
||||
tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrieller Ton
|
||||
tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrieller Streifen
|
||||
tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Männliches Pink
|
||||
tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysteriöses Lila
|
||||
tile.concrete_colored_ext.sand.name=Builder's Choice Concrete - Wüstensturm
|
||||
tile.concrete_pillar.name=Stahlbetonsäule
|
||||
tile.concrete_slab.asphalt.name=Asphaltstufe
|
||||
tile.concrete_slab.concrete.name=Betonfliesenstufe
|
||||
|
||||
@ -4915,12 +4915,14 @@ tile.concrete_colored.red.name=Red Concrete
|
||||
tile.concrete_colored.silver.name=Light Gray Concrete
|
||||
tile.concrete_colored.white.name=White Concrete
|
||||
tile.concrete_colored.yellow.name=Yellow Concrete
|
||||
tile.concrete_colored_ext.bronze.name=Builder's Choice Concrete - Bronze Plating
|
||||
tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe
|
||||
tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo
|
||||
tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge
|
||||
tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe
|
||||
tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink
|
||||
tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple
|
||||
tile.concrete_colored_ext.sand.name=Builder's Choice Concrete - Desert Storm
|
||||
tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar
|
||||
tile.concrete_slab.asphalt.name=Asphalt Slab
|
||||
tile.concrete_slab.concrete.name=Concrete Tile Slab
|
||||
|
||||
|
After Width: | Height: | Size: 620 B |
|
After Width: | Height: | Size: 528 B |
|
Before Width: | Height: | Size: 701 B |
|
Before Width: | Height: | Size: 620 B |
|
Before Width: | Height: | Size: 675 B |
|
Before Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 594 B |
|
Before Width: | Height: | Size: 429 B |
|
Before Width: | Height: | Size: 536 B |
|
Before Width: | Height: | Size: 417 B |
|
Before Width: | Height: | Size: 483 B |
|
Before Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 655 B |
|
Before Width: | Height: | Size: 422 B |
|
Before Width: | Height: | Size: 485 B |
|
Before Width: | Height: | Size: 526 B |
|
Before Width: | Height: | Size: 572 B |
|
Before Width: | Height: | Size: 587 B |
|
Before Width: | Height: | Size: 652 B |
|
Before Width: | Height: | Size: 613 B |
|
Before Width: | Height: | Size: 768 B |
|
Before Width: | Height: | Size: 420 B |
|
Before Width: | Height: | Size: 441 B |
|
Before Width: | Height: | Size: 414 B |
|
Before Width: | Height: | Size: 344 B |
|
Before Width: | Height: | Size: 293 B |
|
Before Width: | Height: | Size: 424 B |