mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
perpetual agony mechanism
This commit is contained in:
parent
03e7db5d92
commit
1fcfa136be
@ -1,3 +1,6 @@
|
|||||||
|
## Added
|
||||||
|
* Precision assembler
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
* New fusion reactor and particle accelerator parts now have OpenComputers compat
|
* New fusion reactor and particle accelerator parts now have OpenComputers compat
|
||||||
* Irradiation recipe config now has the `fusionOnly` flag, preventing the recipe from being done in the RBMK irradiation channel
|
* Irradiation recipe config now has the `fusionOnly` flag, preventing the recipe from being done in the RBMK irradiation channel
|
||||||
@ -19,6 +22,7 @@
|
|||||||
* The recipes are lengthy, require a lot of power and have a low chance of succeeding
|
* The recipes are lengthy, require a lot of power and have a low chance of succeeding
|
||||||
* Recipes require the divine pufferfish, driver of all innovation
|
* Recipes require the divine pufferfish, driver of all innovation
|
||||||
* Where can you get this much pufferfish? Go figure it out
|
* Where can you get this much pufferfish? Go figure it out
|
||||||
|
* Chance output stacks no longer do an RNG call to determine if the whole stack is provided or none, rather, each single item of the stack has its own RNG call
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed gamebreaking issue causing crashes and world corruption where the multi detonator had its tooltip misspelled
|
* Fixed gamebreaking issue causing crashes and world corruption where the multi detonator had its tooltip misspelled
|
||||||
|
|||||||
@ -232,6 +232,8 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
this.register(new GenericRecipe("ass.purex").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_purex, 1))
|
this.register(new GenericRecipe("ass.purex").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_purex, 1))
|
||||||
.inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 8), new OreDictStack(PB.plateCast(), 4), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))
|
.inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 8), new OreDictStack(PB.plateCast(), 4), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.LEAD_PLATING), new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT)));
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.LEAD_PLATING), new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT)));
|
||||||
|
this.register(new GenericRecipe("ass.precass").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_precass, 1))
|
||||||
|
.inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(ZR.ingot(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR_BOARD)));
|
||||||
this.register(new GenericRecipe("ass.centrifuge").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_centrifuge, 1))
|
this.register(new GenericRecipe("ass.centrifuge").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_centrifuge, 1))
|
||||||
.inputItems(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG))
|
.inputItems(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG))
|
||||||
.inputItemsEx(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG)));
|
.inputItemsEx(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG)));
|
||||||
|
|||||||
@ -33,6 +33,8 @@ public class PrecAssRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
@Override
|
@Override
|
||||||
public void registerDefaults() {
|
public void registerDefaults() {
|
||||||
|
|
||||||
|
int min = 1_200;
|
||||||
|
|
||||||
registerPair(new GenericRecipe("precass.controller").setup(400, 15_000L)
|
registerPair(new GenericRecipe("precass.controller").setup(400, 15_000L)
|
||||||
.inputItems(new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CHIP),
|
.inputItems(new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CHIP),
|
||||||
new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CAPACITOR),
|
new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CAPACITOR),
|
||||||
@ -44,7 +46,7 @@ public class PrecAssRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER), 10, 25);
|
DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER), 10, 25);
|
||||||
|
|
||||||
// all hail the pufferfish, driver of all innovation
|
// all hail the pufferfish, driver of all innovation
|
||||||
this.register(new GenericRecipe("precass.blueprints").setup(5 * 60 * 20, 20_000L)
|
this.register(new GenericRecipe("precass.blueprints").setup(5 * min, 20_000L)
|
||||||
.inputItems(new ComparableStack(Items.paper, 16),
|
.inputItems(new ComparableStack(Items.paper, 16),
|
||||||
new OreDictStack(KEY_BLUE, 16),
|
new OreDictStack(KEY_BLUE, 16),
|
||||||
new ComparableStack(Items.fish, 16, FishType.PUFFERFISH))
|
new ComparableStack(Items.fish, 16, FishType.PUFFERFISH))
|
||||||
@ -52,7 +54,7 @@ public class PrecAssRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ChanceOutput(new ItemStack(ModItems.blueprint_folder, 1, 0), 10),
|
new ChanceOutput(new ItemStack(ModItems.blueprint_folder, 1, 0), 10),
|
||||||
new ChanceOutput(new ItemStack(Items.paper, 16, 0), 90))
|
new ChanceOutput(new ItemStack(Items.paper, 16, 0), 90))
|
||||||
));
|
));
|
||||||
this.register(new GenericRecipe("precass.beigeprints").setup(5 * 60 * 20, 50_000L)
|
this.register(new GenericRecipe("precass.beigeprints").setup(5 * min, 50_000L)
|
||||||
.inputItems(new ComparableStack(Items.paper, 24),
|
.inputItems(new ComparableStack(Items.paper, 24),
|
||||||
new OreDictStack(CINNABAR.gem(), 24),
|
new OreDictStack(CINNABAR.gem(), 24),
|
||||||
new ComparableStack(Items.fish, 32, FishType.PUFFERFISH))
|
new ComparableStack(Items.fish, 32, FishType.PUFFERFISH))
|
||||||
@ -76,14 +78,7 @@ public class PrecAssRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
IOutput[] recycle = new IOutput[recipe.inputItem.length];
|
IOutput[] recycle = new IOutput[recipe.inputItem.length];
|
||||||
for(int i = 0; i < recycle.length; i++) {
|
for(int i = 0; i < recycle.length; i++) {
|
||||||
ItemStack stack = recipe.inputItem[i].extractForNEI().get(0).copy();
|
ItemStack stack = recipe.inputItem[i].extractForNEI().get(0).copy();
|
||||||
int stackSize = (int) (recipe.inputItem[i].stacksize * fReclaim);
|
recycle[i] = new ChanceOutput(stack, fReclaim);
|
||||||
// if the resulting stack size is >= 1, use that, otherwise use the original stack size but a chance output percentage
|
|
||||||
if(stackSize > 0) {
|
|
||||||
stack.stackSize = stackSize;
|
|
||||||
recycle[i] = new ChanceOutput(stack);
|
|
||||||
} else {
|
|
||||||
recycle[i] = new ChanceOutput(stack, fReclaim);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FluidStack[] fluid = recipe.inputFluid != null ? new FluidStack[1] : null;
|
FluidStack[] fluid = recipe.inputFluid != null ? new FluidStack[1] : null;
|
||||||
|
|||||||
@ -239,7 +239,12 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
|
|||||||
@Override
|
@Override
|
||||||
public ItemStack collapse() {
|
public ItemStack collapse() {
|
||||||
if(this.chance >= 1F) return getSingle();
|
if(this.chance >= 1F) return getSingle();
|
||||||
return RNG.nextFloat() <= chance ? getSingle() : null;
|
int finalSize = 0;
|
||||||
|
for(int i = 0; i < this.stack.stackSize; i++) if(RNG.nextFloat() <= chance) finalSize++;
|
||||||
|
if(finalSize <= 0) return null;
|
||||||
|
ItemStack finalStack = getSingle();
|
||||||
|
finalStack.stackSize = finalSize;
|
||||||
|
return finalStack;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public ItemStack getSingle() { return this.stack.copy(); }
|
@Override public ItemStack getSingle() { return this.stack.copy(); }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user