even more throughput

This commit is contained in:
Boblet 2024-06-05 12:11:18 +02:00
parent 8618de3f1c
commit 14c5941bab
42 changed files with 71 additions and 55 deletions

View File

@ -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

View File

@ -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());

View File

@ -30,6 +30,8 @@ public class BlockConcreteColoredExt extends BlockEnumMulti {
INDIGO,
PURPLE,
PINK,
HAZARD
HAZARD,
SAND,
BRONZE
}
}

View File

@ -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));
}
}
}
}

View File

@ -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);

View File

@ -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));

View File

@ -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;
}
}
}

View File

@ -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));

View File

@ -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 });

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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();
}

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B