Merge pull request #3055 from irislgtm/master

The platemetal pr i did again because i fucked up git and im dumb im sorry
This commit is contained in:
HbmMods 2026-07-26 21:16:09 +02:00 committed by GitHub
commit 9da8b999fb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
68 changed files with 162 additions and 12 deletions

View File

@ -14,7 +14,7 @@ public class BlockEnumMulti extends BlockMulti {
public Class<? extends Enum> theEnum;
public boolean multiName;
private boolean multiTexture;
protected boolean multiTexture;
public BlockEnumMulti(Material mat, Class<? extends Enum> theEnum, boolean multiName, boolean multiTexture) {
super(mat);

View File

@ -26,7 +26,12 @@ public class BlockEnums {
public static enum EnumStalagmiteType {
SULFUR,
ASBESTOS
ASBESTOS,
ICE,
SNOW,
GLYPHID1,
GLYPHID2,
GLYPHID3
}
public static enum EnumCMMaterials {
@ -49,15 +54,15 @@ public class BlockEnums {
GOLD,
SCHRABIDIUM
}
/** DECO / STRUCTURE ENUMS */
//i apologize in advance
public static enum TileType {
LARGE,
SMALL
}
public static enum LightstoneType {
UNREFINED,
TILE,
@ -65,11 +70,11 @@ public class BlockEnums {
BRICKS_CHISELED,
CHISELED
}
public static enum DecoComputerEnum {
IBM_300PL
}
public static enum DecoCabinetEnum {
GREEN,
STEEL
@ -81,4 +86,21 @@ public class BlockEnums {
HALOGEN
}
public static enum PlatemetalType {
BASE,
BLACK,
WHITE,
RED,
GREEN,
LIGHT_GRAY,
BLUE,
PURPLE,
CYAN,
PINK,
LIME,
YELLOW,
LIGHT_BLUE,
MAGENTA,
ORANGE
}
}

View File

@ -255,6 +255,7 @@ public class ModBlocks {
public static Block deco_rusty_steel;
public static Block deco_lead;
public static Block deco_beryllium;
public static Block platemetal;
public static Block deco_asbestos;
public static Block deco_rbmk;
public static Block deco_rbmk_smooth;
@ -1430,6 +1431,7 @@ public class ModBlocks {
deco_rusty_steel = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_rusty_steel").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_rusty_steel");
deco_lead = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_lead");
deco_beryllium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_beryllium");
platemetal = new BlockEnumMultiCT(Material.iron, BlockEnums.PlatemetalType.class, true, true).setBlockName("platemetal").setCreativeTab(MainRegistry.blockTab).setStepSound(ModSoundTypes.platemetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":platemetal");
deco_asbestos = new BlockOutgas(Material.cloth, true, 5, true).noFortune().setBlockName("deco_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_asbestos");
deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top");
deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_blank_top");
@ -1642,8 +1644,8 @@ public class ModBlocks {
mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush");
mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin");
mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem");
glyphid_base = new BlockGlyphid(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base");
glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_eggs_alt");
glyphid_base = new BlockGlyphid(Material.coral).setBlockName("glyphid_base").setStepSound(ModSoundTypes.flesh).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base");
glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(ModSoundTypes.flesh).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_eggs_alt");
plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
@ -2585,6 +2587,7 @@ public class ModBlocks {
GameRegistry.registerBlock(deco_rusty_steel, deco_rusty_steel.getUnlocalizedName());
GameRegistry.registerBlock(deco_lead, deco_lead.getUnlocalizedName());
GameRegistry.registerBlock(deco_beryllium, deco_beryllium.getUnlocalizedName());
GameRegistry.registerBlock(platemetal, ItemBlockBlastInfo.class, platemetal.getUnlocalizedName());
GameRegistry.registerBlock(deco_asbestos, deco_asbestos.getUnlocalizedName());
GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName());
GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName());
@ -2915,7 +2918,7 @@ public class ModBlocks {
GameRegistry.registerBlock(red_barrel, ItemBlockLore.class, red_barrel.getUnlocalizedName());
GameRegistry.registerBlock(pink_barrel, ItemBlockLore.class, pink_barrel.getUnlocalizedName());
GameRegistry.registerBlock(lox_barrel, ItemBlockLore.class, lox_barrel.getUnlocalizedName());
GameRegistry.registerBlock(taint_barrel, taint_barrel.getUnlocalizedName());
GameRegistry.registerBlock(taint_barrel, ItemBlockLore.class, taint_barrel.getUnlocalizedName());
GameRegistry.registerBlock(yellow_barrel, yellow_barrel.getUnlocalizedName());
GameRegistry.registerBlock(vitrified_barrel, vitrified_barrel.getUnlocalizedName());

View File

@ -10,4 +10,6 @@ public class ModSoundTypes {
if(type == ModSoundType.SubType.BREAK) in -= 0.15F;
return in + rand.nextFloat() * 0.2F;
});
public static final ModSoundType flesh = ModSoundType.placeBreakStep("hbm:block.flesh", "hbm:block.flesh", "hbm:block.flesh", 0.5F, 1.0F);
public static final ModSoundType platemetal = ModSoundType.placeBreakStep("hbm:block.platemetalPlace", "hbm:block.platemetalPlace", "hbm:step.platemetal", 1.0F, 1.0F);
}

View File

@ -0,0 +1,65 @@
package com.hbm.blocks.generic;
import com.hbm.blocks.BlockEnumMulti;
import com.hbm.render.block.ct.CT;
import com.hbm.render.block.ct.CTStitchReceiver;
import com.hbm.render.block.ct.IBlockCT;
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;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
public class BlockEnumMultiCT extends BlockEnumMulti implements IBlockCT {
@SideOnly(Side.CLIENT)
public CTStitchReceiver[] receivers;
// im planning ts for shi like deco blocks n shit when the time comes
public BlockEnumMultiCT(Material mat, Class<? extends Enum> theEnum, boolean multiName, boolean multiTexture)
{
super(mat, theEnum, multiName, multiTexture);
}
@Override
public int getRenderType() {
return CT.renderID;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister reg) {
if(multiTexture) {
Enum[] enums = theEnum.getEnumConstants();
this.icons = new IIcon[enums.length];
this.receivers = new CTStitchReceiver[enums.length];
for(int i = 0; i < icons.length; i++)
{
Enum num = enums[i];
String texName = this.getTextureMultiName(num);
this.icons[i] = reg.registerIcon(texName);
this.receivers[i] = IBlockCT.primeReceiver(reg, texName, this.icons[i]);
}
}
else
{
this.blockIcon = reg.registerIcon(this.getTextureName());
this.receivers = new CTStitchReceiver[1];
this.receivers[0] = IBlockCT.primeReceiver(reg, this.getTextureName(), this.blockIcon);
}
}
@Override
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z, int side)
{
int meta = world.getBlockMetadata(x, y, z);
return receivers[meta % receivers.length].fragCache;
}
@Override
public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) {
return this == block;
}
}

View File

@ -10,6 +10,7 @@ import com.hbm.items.ModItems;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
@ -43,6 +44,8 @@ public class BlockStalagmite extends BlockEnumMulti {
switch(meta) {
case 0: return ModItems.sulfur;
case 1: return ModItems.powder_asbestos;
case 2: return ModItems.powder_ice;
case 3: return Items.snowball;
}
return null;

View File

@ -17,7 +17,6 @@ import net.minecraft.world.World;
public class RedBarrel extends BlockDetonatable {
// Flammable barrels also explode when shot
public RedBarrel(Material material, boolean flammable) {
super(material, flammable ? 2 : 0, flammable ? 15 : 0, 100, true, flammable);
}

View File

@ -42,6 +42,8 @@ public class StructureConfig {
public static int lighthouseSpawnWeight = 4;
public static int oilRigSpawnWeight = 5;
public static int broadcastingTowerSpawnWeight = 25;
public static int waterPumpSpawnWeight = 15;
public static int deadDishSmallSpawnWeight = 15;
public static int beachedPatrolSpawnWeight = 15;
public static int vertibirdSpawnWeight = 6;
public static int vertibirdCrashedSpawnWeight = 10;
@ -117,6 +119,8 @@ public class StructureConfig {
craneSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.39_craneSpawnWeight", "Spawn weight for crane structure.", 20);
broadcastingTowerSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.40_broadcastingTowerSpawnWeight", "Spawn weight for broadcasting tower structure.", 25);
towerBaseSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.41_towerBaseSpawnWeight", "Spawn weight for tower base.", 30);
waterPumpSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.42_waterPumpSpawnWeight", "Spawn weight for water pump structure.", 15);
deadDishSmallSpawnWeight = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.43_deadDishSmallSpawnWeight", "Spawn weight for dead dish small structure.", 15);
structureMinChunks = CommonConfig.setDef(structureMinChunks, 4);

View File

@ -178,6 +178,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AStack[] {new ComparableStack(Blocks.stonebrick, 16), new ComparableStack(ModItems.ingot_firebrick, 16), new OreDictStack(IRON.ingot(), 8), new OreDictStack(CU.ingot(), 8)},
new AnvilOutput(new ItemStack(ModBlocks.machine_annihilator))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(IRON.plate(), 1), new AnvilOutput(new ItemStack(ModBlocks.platemetal, 4, 0))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(BE.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_beryllium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(PB.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_lead, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
@ -658,6 +659,7 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.platemetal, 4, 0), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.plate_iron, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModBlocks.heater_firebox),

View File

@ -2,6 +2,7 @@ package com.hbm.main;
import com.hbm.blocks.BlockEnums.DecoCabinetEnum;
import com.hbm.blocks.BlockEnums.LightstoneType;
import com.hbm.blocks.BlockEnums.PlatemetalType;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockAbsorber.EnumAbsorberTier;
import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType;
@ -391,6 +392,13 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored, 1, OreDictionary.WILDCARD_VALUE) });
addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { new ItemStack(ModBlocks.concrete_colored_ext, 1, OreDictionary.WILDCARD_VALUE) });
String[] plateDyes = { "Black", "White", "Red", "Green", "LightGray", "Blue", "Purple", "Cyan", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange" };
for(int i = 0; i < 14; i++) {
String dyeName = "dye" + plateDyes[i];
addRecipeAuto(new ItemStack(ModBlocks.platemetal, 8, i + 1), new Object[] { "PPP", "PDP", "PPP", 'P', new ItemStack(ModBlocks.platemetal, 1, PlatemetalType.BASE.ordinal()), 'D', dyeName });
}
addShapelessAuto(new ItemStack(ModBlocks.platemetal, 1, PlatemetalType.BASE.ordinal()), new Object[] { new ItemStack(ModBlocks.platemetal, 1, OreDictionary.WILDCARD_VALUE) });
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_GRAY });
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE_STRIPE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_BLACK });
addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.INDIGO.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BLUE, '2', KEY_PURPLE });

View File

@ -60,6 +60,8 @@ public class StructureManager {
public static final NBTStructure beached_patrol = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/beached_patrol.nbt"));
public static final NBTStructure lighthouse = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/lighthouse.nbt"));
public static final NBTStructure dish = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/dish.nbt"));
public static final NBTStructure water_pump = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/water_pump.nbt"));
public static final NBTStructure dead_dish_small = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/dead_dish_small.nbt"));
public static final NBTStructure desert_shack_1 = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/desert_shack_1.nbt"));
public static final NBTStructure desert_shack_2 = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/desert_shack_2.nbt"));
public static final NBTStructure desert_shack_3 = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/desert_shack_3.nbt"));

View File

@ -117,6 +117,12 @@ public class NTMWorldGenerator implements IWorldGenerator {
spawnWeight = StructureConfig.dishSpawnWeight;
}});
NBTStructure.registerStructure(0, new SpawnCondition("water_pump") {{
canSpawn = biome -> BiomeDictionary.isBiomeOfType(biome, Type.PLAINS) || BiomeDictionary.isBiomeOfType(biome, Type.SWAMP);
structure = new JigsawPiece("water_pump", StructureManager.water_pump, -10);
spawnWeight = StructureConfig.waterPumpSpawnWeight;
}});
NBTStructure.registerStructure(0, new SpawnCondition("forestchem") {{
canSpawn = biome -> biome.heightVariation <= 0.3F && !isWaterBiome(biome);
structure = new JigsawPiece("forest_chem", StructureManager.forest_chem, -9);
@ -191,6 +197,12 @@ public class NTMWorldGenerator implements IWorldGenerator {
spawnWeight = StructureConfig.desertShack3SpawnWeight;
}});
NBTStructure.registerStructure(0, new SpawnCondition("dead_dish_small") {{
canSpawn = biome -> BiomeDictionary.isBiomeOfType(biome, Type.SANDY);
structure = new JigsawPiece("dead_dish_small", StructureManager.dead_dish_small, -5);
spawnWeight = StructureConfig.deadDishSmallSpawnWeight;
}});
NBTStructure.registerStructure(0, new SpawnCondition("ruinA") {{
canSpawn = biome -> !isWaterBiome(biome) && biome.canSpawnLightningBolt();
structure = new JigsawPiece("NTMRuinsA", StructureManager.ntmruinsA, -1) {{conformToTerrain = true;}};

View File

@ -5382,6 +5382,21 @@ tile.crystal_virus.name=Dark Crystal
tile.deco_aluminium.name=Aluminium Deco Block
tile.deco_asbestos.name=Asbestos Roof
tile.deco_beryllium.name=Beryllium Deco Block
tile.platemetal.base.name=Platemetal Block
tile.platemetal.black.name=Black Platemetal Block
tile.platemetal.white.name=White Platemetal Block
tile.platemetal.red.name=Red Platemetal Block
tile.platemetal.green.name=Green Platemetal Block
tile.platemetal.light_gray.name=Light Gray Platemetal Block
tile.platemetal.blue.name=Blue Platemetal Block
tile.platemetal.purple.name=Purple Platemetal Block
tile.platemetal.cyan.name=Cyan Platemetal Block
tile.platemetal.pink.name=Pink Platemetal Block
tile.platemetal.lime.name=Lime Platemetal Block
tile.platemetal.yellow.name=Yellow Platemetal Block
tile.platemetal.light_blue.name=Light Blue Platemetal Block
tile.platemetal.magenta.name=Magenta Platemetal Block
tile.platemetal.orange.name=Orange Platemetal Block
tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL
tile.deco_crt.name=Old CRT Screen
tile.deco_emitter.name=Deco Light Emitter
@ -6296,8 +6311,18 @@ tile.spotlight_fluoro.name=Fluorescent Light
tile.spotlight_halogen.name=Halogen Floodlight
tile.stalactite.asbestos.name=Asbestos Stalactite
tile.stalactite.sulfur.name=Sulfurous Stalactite
tile.stalactite.ice.name=Icy Stalactite
tile.stalactite.snow.name=Snowy Stalactite
tile.stalactite.glyphid1.name=Glyphid Stalactite
tile.stalactite.glyphid2.name=Bloated Glyphid Stalactite
tile.stalactite.glyphid3.name=Putrid Glyphid Stalactite
tile.stalagmite.asbestos.name=Asbestos Stalagmite
tile.stalagmite.sulfur.name=Sulfurous Stalagmite
tile.stalagmite.ice.name=Icy Stalagmite
tile.stalagmite.snow.name=Snowy Stalagmite
tile.stalagmite.glyphid1.name=Glyphid Stalagmite
tile.stalagmite.glyphid2.name=Bloated Glyphid Stalagmite
tile.stalagmite.glyphid3.name=Putrid Glyphid Stalagmite
tile.steel_beam.name=Steel Beam
tile.steel_corner.name=Steel Wall Corner
tile.steel_grate.name=Steel Grate

View File

@ -6,7 +6,7 @@
"en_US": "Chicago Pile"
},
"content": {
"en_US": "The Chcago Pile is a low-tech low-power reactor used for breeding nuclear material, mainly turning [[uranium|Uranium]] into [[plutonium-239|Plutonium-239]]. Due to its simplicity, operating it either requires manual intervention or some form of external operation with [[Redstone over Radio]].<br><br>The pile is constructed out of a box of Chicago Pile graphite bricks at least 5x5x5 blocks in size, and at most 15x15x15 blocks. The box does not need to be a perfect cube, so shapes like 5x7x9 are valid, so long as the box is filled. Using a hand drill, the pile is assembled, with the drilled block acting as the core.<br><br>To prepare the Chicago Pile for use, channels need to be drilled, again with a hand drill. The function of the channel depends on the orientation relative to the core. Using the hand drill again on the input side of an existing channel will close the channel again. Channels cannot intersect one another.<br><br>Fuel channels are channels that follow the core's orientation, i.e. either the input or output side is on the same face as the core's panel. Fuel channels can be loaded with Chicago Pile fuel rods using a [[fuel loader|Chicago Pile Fuel Loader]]. The amount of fuel that fits into any given channel depends on its length, with one block of channel being able to hold one fuel rod.<br><br>Ventilation channels are channels which are perpendicular to the core's orientation and therefore also to the fuel channels. Ventilation channels cool down fuel channels which touch (but not intersect) them if compressed air is supplied at a pressure of 1 PU via a [[vent|Chicago Pile Vent]]. Passive cooling in the Chicago Pile is quite low, so while technically optional, vents are basically mandatory for every Pile in practice.<br><br>Channels drilled from the top are for [[control rods|Chicago Pile Control Rod]]. Control rods are used to reduce the interactiion between fuel channels in larger Pile setups, although smaller setups are usually fine without control rods. Still, throttling the reactor can be useful when cycling fuel, since the window for extracting pure plutonium-239 is quite small.<br><>br>If the Pile is disassembled, channels can be drilled again without having to remove all the attachments like fuel loaders and vents, simply shift-click the attachment with the hand drill and a channel will be drilled into the Pile behind it.<br><br>See also:<br>* [[Chicago Pile Operation]]"
"en_US": "The Chicago Pile is a low-tech low-power reactor used for breeding nuclear material, mainly turning [[uranium|Uranium]] into [[plutonium-239|Plutonium-239]]. Due to its simplicity, operating it either requires manual intervention or some form of external operation with [[Redstone over Radio]].<br><br>The pile is constructed out of a box of Chicago Pile graphite bricks at least 5x5x5 blocks in size, and at most 15x15x15 blocks. The box does not need to be a perfect cube, so shapes like 5x7x9 are valid, so long as the box is filled. Using a hand drill, the pile is assembled, with the drilled block acting as the core.<br><br>To prepare the Chicago Pile for use, channels need to be drilled, again with a hand drill. The function of the channel depends on the orientation relative to the core. Using the hand drill again on the input side of an existing channel will close the channel again. Channels cannot intersect one another.<br><br>Fuel channels are channels that follow the core's orientation, i.e. either the input or output side is on the same face as the core's panel. Fuel channels can be loaded with Chicago Pile fuel rods using a [[fuel loader|Chicago Pile Fuel Loader]]. The amount of fuel that fits into any given channel depends on its length, with one block of channel being able to hold one fuel rod.<br><br>Ventilation channels are channels which are perpendicular to the core's orientation and therefore also to the fuel channels. Ventilation channels cool down fuel channels which touch (but not intersect) them if compressed air is supplied at a pressure of 1 PU via a [[vent|Chicago Pile Vent]]. Passive cooling in the Chicago Pile is quite low, so while technically optional, vents are basically mandatory for every Pile in practice.<br><br>Channels drilled from the top are for [[control rods|Chicago Pile Control Rod]]. Control rods are used to reduce the interactiion between fuel channels in larger Pile setups, although smaller setups are usually fine without control rods. Still, throttling the reactor can be useful when cycling fuel, since the window for extracting pure plutonium-239 is quite small.<br><>br>If the Pile is disassembled, channels can be drilled again without having to remove all the attachments like fuel loaders and vents, simply shift-click the attachment with the hand drill and a channel will be drilled into the Pile behind it.<br><br>See also:<br>* [[Chicago Pile Operation]]"
}
}

View File

@ -27,6 +27,7 @@
"block.debris": {"category": "block", "sounds": ["block/debris1", "block/debris2", "block/debris3"]},
"block.centrifugeOperate": {"category": "block", "sounds": [{"name": "block/centrifugeOperate", "stream": false}]},
"block.pipePlaced": {"category": "block", "sounds": [{"name": "block/pipePlaced", "stream": false}]},
"block.flesh": {"category": "block", "sounds": ["block/flesh1", "block/flesh2", "block/flesh4", "block/flesh5"]},
"block.missileAssembly": {"category": "block", "sounds": [{"name": "block/missileAssembly", "stream": false}]},
"block.missileAssembly2": {"category": "block", "sounds": [{"name": "block/missileAssembly2", "stream": false}]},
"block.openDoor": {"category": "block", "sounds": ["block/door_open_1", "block/door_open_2"]},
@ -324,6 +325,8 @@
"step.iron_land": {"category": "player", "sounds": [{"name": "footsteps/iron_land", "stream": false}]},
"step.iron": {"category": "player", "sounds": ["footsteps/iron1", "footsteps/iron2", "footsteps/iron3", "footsteps/iron4"]},
"step.metalBlock": {"category": "block", "sounds": ["footsteps/metalStep1", "footsteps/metalStep2", "footsteps/metalStep3", "footsteps/metalStep4"]},
"step.platemetal": {"category": "block", "sounds": ["block/platemetal_step"]},
"block.platemetalPlace": {"category": "block", "sounds": ["block/platemetal_bar1", "block/platemetal_bar2", "block/platemetal_bar3", "block/platemetal_bar4", "block/platemetal_bar5", "block/platemetal_bar6"]},
"step.powered": {"category": "player", "sounds": ["footsteps/powered1", "footsteps/powered2", "footsteps/powered3"]},
"player.vomit": {"category": "player", "sounds": [{"name": "player/vomit", "stream": false}]},

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B