Skip to content

Commit fca7d8a

Browse files
authored
Buff machine upgrades (#890)
1 parent f92dc73 commit fca7d8a

File tree

15 files changed

+83
-78
lines changed

15 files changed

+83
-78
lines changed

docs/ADDING_MACHINES.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,16 @@ MIMachineEvents.addEbfTiers(event => {
1818
```
1919

2020
## Adding electric machine upgrades
21-
You can add electric machine upgrades using KubeJS.
22-
This will allow them to be used in all the electric machines to increase the maximum EU that the machine can handle.
23-
24-
Example:
25-
```js
26-
MIMachineEvents.registerUpgrades(event => {
27-
// id of the upgrade item, number of added EU per upgrade
28-
event.register("minecraft:diamond", 42);
29-
});
21+
You can add electric machine upgrades using the `modern_industrialization:machine_upgrades` item data map.
22+
For example, in `data/modern_industrialization/data_maps/item/machine_upgrades.json`:
23+
```json
24+
{
25+
"values": {
26+
"minecraft:diamond": {
27+
"extraMaxEu": 42
28+
}
29+
}
30+
}
3031
```
3132

3233
## Registering a recipe type

src/generated/resources/data/modern_industrialization/advancement/advanced_upgrade.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"parent": "modern_industrialization:basic_upgrade",
2+
"parent": "modern_industrialization:chemical_reactor",
33
"criteria": {
44
"checkInv": {
55
"conditions": {

src/generated/resources/data/modern_industrialization/advancement/basic_upgrade.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"parent": "modern_industrialization:chemical_reactor",
2+
"parent": "modern_industrialization:assembler",
33
"criteria": {
44
"checkInv": {
55
"conditions": {
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"values": {
3+
"modern_industrialization:advanced_upgrade": {
4+
"extraMaxEu": 16
5+
},
6+
"modern_industrialization:basic_upgrade": {
7+
"extraMaxEu": 2
8+
},
9+
"modern_industrialization:highly_advanced_upgrade": {
10+
"extraMaxEu": 512
11+
},
12+
"modern_industrialization:quantum_upgrade": {
13+
"extraMaxEu": 999999999
14+
},
15+
"modern_industrialization:turbo_upgrade": {
16+
"extraMaxEu": 64
17+
}
18+
}
19+
}

src/main/java/aztech/modern_industrialization/MI.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ public MI(IEventBus modBus, Dist dist) {
199199
modBus.addListener(RegisterDataMapTypesEvent.class, event -> {
200200
event.register(MIDataMaps.FLUID_FUELS);
201201
event.register(MIDataMaps.ITEM_PIPE_UPGRADES);
202+
event.register(MIDataMaps.MACHINE_UPGRADES);
202203
});
203204

204205
if (MIConfig.loadAe2Compat()) {

src/main/java/aztech/modern_industrialization/api/datamaps/MIDataMaps.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ public final class MIDataMaps {
4545
.synced(ItemPipeUpgrade.CODEC, true)
4646
.build();
4747

48+
/**
49+
* Items that can be added to electric machines, to increase the maximum EU/t they can support.
50+
*/
51+
public static final DataMapType<Item, MachineUpgrade> MACHINE_UPGRADES = DataMapType
52+
.builder(
53+
MI.id("machine_upgrades"), Registries.ITEM, MachineUpgrade.CODEC)
54+
.synced(MachineUpgrade.CODEC, true)
55+
.build();
56+
4857
private MIDataMaps() {
4958
}
5059
}
Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
* SOFTWARE.
2323
*/
24-
package aztech.modern_industrialization.compat.kubejs.machine;
24+
package aztech.modern_industrialization.api.datamaps;
2525

26-
import aztech.modern_industrialization.machines.components.UpgradeComponent;
27-
import dev.latvian.mods.kubejs.event.KubeEvent;
28-
import net.minecraft.resources.ResourceLocation;
26+
import com.mojang.serialization.Codec;
27+
import com.mojang.serialization.codecs.RecordCodecBuilder;
28+
import net.minecraft.util.ExtraCodecs;
2929

30-
public class RegisterUpgradesEventJS implements KubeEvent {
31-
public static void register(ResourceLocation itemId, long extraEu) {
32-
UpgradeComponent.registerUpgrade(itemId, extraEu);
33-
}
30+
public record MachineUpgrade(int extraMaxEu) {
31+
public static final Codec<MachineUpgrade> CODEC = RecordCodecBuilder.create(
32+
instance -> instance
33+
.group(ExtraCodecs.POSITIVE_INT.fieldOf("extraMaxEu").forGetter(MachineUpgrade::extraMaxEu))
34+
.apply(instance, MachineUpgrade::new));
3435
}

src/main/java/aztech/modern_industrialization/compat/kubejs/LoadedKubeJSProxy.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,6 @@ public void fireRegisterMachinesEvent() {
6969
MIMachineKubeJSEvents.REGISTER_MACHINES.post(new RegisterMachinesEventJS());
7070
}
7171

72-
@Override
73-
public void fireRegisterUpgradesEvent() {
74-
MIMachineKubeJSEvents.REGISTER_UPGRADES.post(new RegisterUpgradesEventJS());
75-
}
76-
7772
@Override
7873
public void fireAddMultiblockSlotsEvent(String category, SlotPositions.Builder itemInputs, SlotPositions.Builder itemOutputs,
7974
SlotPositions.Builder fluidInputs, SlotPositions.Builder fluidOutputs) {

src/main/java/aztech/modern_industrialization/compat/kubejs/machine/MIMachineKubeJSEvents.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public interface MIMachineKubeJSEvents {
3434
EventHandler REGISTER_RECIPE_TYPES = EVENT_GROUP.startup("registerRecipeTypes", () -> RegisterRecipeTypesEventJS.class);
3535
EventHandler REGISTER_CASINGS = EVENT_GROUP.startup("registerCasings", () -> RegisterCasingsEventJS.class);
3636
EventHandler REGISTER_MACHINES = EVENT_GROUP.startup("registerMachines", () -> RegisterMachinesEventJS.class);
37-
EventHandler REGISTER_UPGRADES = EVENT_GROUP.startup("registerUpgrades", () -> RegisterUpgradesEventJS.class);
3837
TargetedEventHandler<String> ADD_MULTIBLOCK_SLOTS = EVENT_GROUP.startup("addMultiblockSlots", () -> AddMultiblockSlotsEventJS.class)
3938
.requiredTarget(EventTargetType.STRING);
4039
EventHandler ADD_EBF_TIERS = EVENT_GROUP.startup("addEbfTiers", () -> AddEbfTiersEventJS.class);

src/main/java/aztech/modern_industrialization/datagen/advancement/MIAdvancementsProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ public void generate(HolderLookup.Provider registries, Consumer<AdvancementHolde
212212
var quantumCircuit = createBasic(consumer, "quantum_circuit", mixedIngotIridium, AdvancementType.GOAL, "Mobius Strip Eigenvalues", "Craft a Quantum Circuit", existingFileHelper);
213213
var fusionReactor = createBasic(consumer, "fusion_reactor", quantumCircuit, AdvancementType.CHALLENGE, "Enslaved Star Core", "Craft a Fusion Reactor to produce insane amount of energy", existingFileHelper);
214214
var plasmaTurbine = createBasic(consumer, "plasma_turbine", fusionReactor, "Better than Nuclear Fission", "Craft a Plasma Turbine to transform Helium Plasma into energy", existingFileHelper);
215-
var basicUpgrade = createBasic(consumer, "basic_upgrade", chemicalReactor, AdvancementType.GOAL, "Machine Speedup", "Craft a Basic Upgrade to increase the maximum speed of an electric recipe", existingFileHelper);
216-
var advancedUpgrade = createBasic(consumer, "advanced_upgrade", basicUpgrade, "Machine Speedup-Speedup", "Craft a Advanced Upgrade", existingFileHelper);
215+
var basicUpgrade = createBasic(consumer, "basic_upgrade", assembler, AdvancementType.GOAL, "Machine Speedup", "Craft a Basic Upgrade to increase the maximum speed of an electric recipe", existingFileHelper);
216+
var advancedUpgrade = createBasic(consumer, "advanced_upgrade", chemicalReactor, "Machine Speedup-Speedup", "Craft a Advanced Upgrade", existingFileHelper);
217217
var turboUpgrade = createBasic(consumer, "turbo_upgrade", digitalCircuit, "Gotta go Fast", "Craft a Turbo Upgrade", existingFileHelper);
218218
var highlyAdvancedUpgrade = createBasic(consumer, "highly_advanced_upgrade", processingUnit, "I'm speed", "Craft an Highly Advanced Upgrade", existingFileHelper);
219219
var quantumUpgrade = createBasic(consumer, "quantum_upgrade", quantumCircuit, AdvancementType.GOAL, "Time Dilation", "Craft a Quantum Upgrade to unlock unlimited recipe speed", existingFileHelper);

0 commit comments

Comments
 (0)