can someone test this crap i think we're done here

This commit is contained in:
HbmMods 2026-07-25 14:43:38 +02:00
parent 25d31aa58c
commit d53aae7f5f
13 changed files with 97 additions and 7 deletions

View File

@ -167,8 +167,8 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new ComparableStack(ModItems.billet_ra226be, 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilepobe").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PO210BE.ordinal()))
.inputItems(new ComparableStack(ModItems.billet_po210be, 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilezr").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.ZR.ordinal()))
.inputItems(new OreDictStack(ZR.billet(), 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilezr").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 3, EnumPileRod.ZR.ordinal()))
.inputItems(new OreDictStack(ZR.billet(), 1)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilenu").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.NU.ordinal()))
.inputItems(new OreDictStack(U.billet(), 3)).setGroup(autoPileRod, INSTANCE));
this.register(new GenericRecipe("ass.pilepu239").setup(40, 200).outputItems(new ItemStack(ModItems.pile_rod, 1, EnumPileRod.PU239.ordinal()))

View File

@ -25,6 +25,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import java.util.List;
@ -92,8 +93,9 @@ public class NEIConfig implements IConfigureNEI {
API.hideItem(new ItemStack(ModBlocks.conveyor_double));
API.hideItem(new ItemStack(ModBlocks.conveyor_triple));
API.hideItem(new ItemStack(ModBlocks.brick_forgotten));
API.hideItem(new ItemStack(ModBlocks.brick_forgotten_lock));
API.hideItem(new ItemStack(ModBlocks.brick_forgotten, 1, OreDictionary.WILDCARD_VALUE));
API.hideItem(new ItemStack(ModBlocks.brick_forgotten_lock, 1, OreDictionary.WILDCARD_VALUE));
API.hideItem(new ItemStack(ModItems.coal_eternal));
API.registerHighlightIdentifier(ModBlocks.plushie, new IHighlightHandler() {
@Override public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) {

View File

@ -217,6 +217,10 @@ public class QMAWLoader implements IResourceManagerReloadListener {
QMAWLoader.triggers.put(new ComparableStack(trigger).makeSingular(), qmaw);
}
}
if(json.has("noindex") && json.get("noindex").getAsBoolean()) {
qmaw.noIndex();
}
if(!qmaw.contents.isEmpty()) {
QMAWLoader.qmaw.put(name, qmaw);

View File

@ -5,10 +5,13 @@ import java.util.HashMap;
import net.minecraft.item.ItemStack;
public class QuickManualAndWiki {
public String name;
public ItemStack icon;
/** Removes this manual from the calculator search feature */
public boolean noIndex = false;
public HashMap<String, String> title = new HashMap();
public HashMap<String, String> contents = new HashMap();
@ -30,4 +33,9 @@ public class QuickManualAndWiki {
this.contents.put(lang, contents);
return this;
}
public QuickManualAndWiki noIndex() {
this.noIndex = true;
return this;
}
}

View File

@ -182,6 +182,7 @@ public class TileEntityPileCore extends TileEntityTickingBase {
for(int i = 0; i < list.size(); i++) {
PileChannel chan = list.get(i);
if(chan.entry.compare(x, y, z) && chan.entry.getDir() == dir) {
if(chan.type == chan.type.FUEL) chan.ejectAll();
list.remove(i);
for(int j = 0; j < size; j++) {
int iX = x + dir.offsetX * j;
@ -250,6 +251,12 @@ public class TileEntityPileCore extends TileEntityTickingBase {
this.networkPackNT(25);
}
}
@Override
public void invalidate() {
super.invalidate();
for(PileChannel chan : this.fuelChannels) chan.ejectAll();
}
@Override
public void serialize(ByteBuf buf) {
@ -535,7 +542,15 @@ public class TileEntityPileCore extends TileEntityTickingBase {
if(stack != null) dropItem(stack, length);
}
public void ejectAll() {
for(int i = 0; i < this.rods.length; i++) {
this.dropItem(rods[i], length);
this.rods[i] = null;
}
}
public void dropItem(ItemStack stack, int depth) {
if(stack == null) return;
int x = entry.getX() + entry.getDir().offsetX * depth;
int y = entry.getY();
int z = entry.getZ() + entry.getDir().offsetZ * depth;

View File

@ -3838,7 +3838,7 @@ item.pile_rod.rgp.desc=Reactor-grade plutonium rod, mainly plutonium-239 with pl
item.pile_rod.waste.name=Chicago Pile Nuclear Waste Rod
item.pile_rod.waste.desc=Highly reactive end product from leaving a Chicago Pile fuel rod in the reactor for too long.
item.pile_rod.zr.name=Chicago Pile Zirconium Rod
item.pile_rod.zr.desc=Inert zirconium rod which is transparent to neutrons. Ideal for safely pushing other rods safely out of the reactor.
item.pile_rod.zr.desc=Inert zirconium rod which is transparent to neutrons. Ideal for pushing other rods safely out of the reactor.
item.pile_rod_boron.name=Chicago Pile Control Rod
item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle
item.pile_rod_detector.name=Chicago Pile Control & Detector Rod

View File

@ -2,10 +2,11 @@
"name": "Eternal Coal",
"icon": ["hbm:item.nothing"],
"trigger": [["hbm:item.coal_eternal"]],
"noindex": true,
"title": {
"en_US": "█ █ █ █ █ █"
},
"content": {
"en_US": "████████████ ███ ███ ██ ████████ ████████ ██ ████ ████ ████████ ████ ██████████ █ ████ █████ ██████ ████████ ████ █████ ██ ██ ███ ██████"
"en_US": "████████████ ███ ███ ██ ████████ ████████ ██ ████ ████ ████████ ████ ███ ███████ █ ████ █████ ██████ ███████ █ ████ █████ ██ ██ ███ ██████"
}
}

View File

@ -0,0 +1,12 @@
{
"name": "Chicago Pile",
"icon": ["hbm:tile.pile_brick", 1, 0],
"trigger": [["hbm:tile.pile_brick"]],
"title": {
"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]]"
}
}

View File

@ -0,0 +1,12 @@
{
"name": "Chicago Pile Control Rod",
"icon": ["hbm:tile.pile_device", 1, 2],
"trigger": [["hbm:tile.pile_device", 1, 2]],
"title": {
"en_US": "Chicago Pile Control Rod"
},
"content": {
"en_US": "Control rods can be placed on top of the vertically drilled channels of the [[Chicago Pile]]. Control rods, when inserted, will reduce the reactivity between fuel channels. The control rods can be controlled with a redstone signal, causing it to fully withdraw when a signal is supplied, or via [[RoR controller|Redstone-over-Radio Controller]], which allows more precise settings.<br><br>See also:<br>* [[Chicago Pile Fuel Loader]]<br>* [[Chicago Pile Vent]]"
}
}

View File

@ -0,0 +1,12 @@
{
"name": "Chicago Pile Fuel Loader",
"icon": ["hbm:tile.pile_device", 1, 0],
"trigger": [["hbm:tile.pile_device", 1, 0]],
"title": {
"en_US": "Chicago Pile Fuel Loader"
},
"content": {
"en_US": "The fuel loader is required to load [[Chicago Pile]] fuel rods into the Pile's fuel channels. Right-clicking with a fuel rod will insert that rod into the loader, and right-clicking again will load it into the Pile manually. Fuel can also be supplied using hoppers or conveyors, and the loading action can be triggered by supplying a redstone signal to the loader's back side (where the light grey circle is).<br><br>Additionally, the loader can relay information about the connected channel to the [[RoR reader|Redstone-over-Radio Reader]], like the type (metadata) and depletion of the backmost loaded fuel rod or the channel's current temperature.<br><br>See also:<br>* [[Chicago Pile Vent]]<br>* [[Chicago Pile Control Rod]]"
}
}

View File

@ -0,0 +1,12 @@
{
"name": "Chicago Pile Operation",
"icon": ["hbm:tile.pile_brick", 1, 0],
"trigger": [],
"title": {
"en_US": "Chicago Pile Operation"
},
"content": {
"en_US": "The [[Chicago Pile]] requires at least one fuel channel with some sort of neutron source, being radium-226-beryllium or polonium-210-beryllium rods. It's safest and easiest to simply have one fuel channel dedicated to the neutron sources, although mixing neutron sources in with the regular fuel is also an option. [[Ventilation|Chicago Pile Vent]] is also required before actually using fuel, the amount of compressed air used over time is static no matter how hot the reactor is, so doing a dry-run to see if the [[compressor|Compressor]] setup is sufficient is recommended.<br><br>Once ventilation and neutron sources are in place, fuel can be added, usually in the form of natural uranium which is bred into plutonium-239. The [[fuel loader|Chicago Pile Fuel Loader]] will only load one rod at a time, simply load as many rods as the channel can hold. Any extra rod loaded will cause the last rod in the channel to be pushed out the other end, where it can be collected with a hopper.<br><br>The supplied fuel will be bred as long as its in the reactor. Pu-239 can also be bred into RGP, which can be further bred into nuclear waste. Therefore, leaving fuel in the reactor for too long is undesirable. For this, the fuel loader can be read with an [[RoR reader|Redstone-over-Radio Reader]], which will report the fuel's lifetime and current type in the form of the numeric metadata of the item. For example, Plutonium-239 rods have a meta of 4. Using an [[RoR logic receiver|Redstone-over-Radio Logic Receiver]], this meta can be detected, causing a redstone signal to be sent to the fuel loader, pushing that fuel rod out.<br><br>It is not only desirable to eject the fuel in time due to the purity, but also because nuclear waste has a high heat output, which might destroy Piles not prepared for it. If no new fuel is available and the existing loaded fuel is intended to be ejected, rods made from zirconium are ideal, since they are cheap, inert, and transparent to neutrons, not adding any heat while not interfering with the Pile's reaction either.<br><br>In an emergency, should the Pile overheat, it will catch fire, explode, and eject many flaming graphite bricks which also explode into fire, setting the surroundings ablaze. It is recommended to keep the Pile in a small room, away from flammable material, and to keep a fire extinguisher nearby.<br><br>For people who want to make the most out of their fuel, using [[RoR controllers|Redstone-over-Radio Controller]] to adjust the control rod settings automatically may be desirable. Especially in larger setups, control rods are important to prevent the Pile from quickly overheating, and having an adaptive system controlled either by RoR logic receivers or an [[AUTOCAL]] unit can allow the Pile to run reasonably hot without exploding."
}
}

View File

@ -0,0 +1,12 @@
{
"name": "Chicago Pile Vent",
"icon": ["hbm:tile.pile_device", 1, 1],
"trigger": [["hbm:tile.pile_device", 1, 1]],
"title": {
"en_US": "Chicago Pile Vent"
},
"content": {
"en_US": "The vent is needed to insert compressed air at 1 PU into the [[Chicago Pile's|Chicago Pile]] ventilation channels. Due to the pressure requirement, each Pile therefore needs at least one [[compressor|Compressor]]. Hot air will harmlessly exit the Pile at the output side of the ventilation channel.<br><br>The vent's cooling effect only applies to fuel channels that touch the ventilation channel, or rather, fuel channels exactly one block above and below that ventilation channel. Without sufficient cooling, the channel will surpass 800°C, causing the highly-flammable graphite bricks to ignite, forcefully disassembling the Pile.<br><br>See also:<br>* [[Chicago Pile Fuel Loader]]<br>* [[Chicago Pile Control Rod]]"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 286 B