Skip to content

Commit 13d9199

Browse files
committed
Port to 1.21.9
1 parent effbb26 commit 13d9199

18 files changed

+140
-141
lines changed

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ plugins {
66
id 'eclipse'
77
id 'idea'
88
id 'net.neoforged.moddev' version "$mod_dev_gradle"
9-
id 'se.bjurr.gitchangelog.git-changelog-gradle-plugin' version '3.0.7'
10-
id 'me.modmuss50.mod-publish-plugin' version '0.8.4'
9+
id 'se.bjurr.gitchangelog.git-changelog-gradle-plugin' version '3.1.1'
10+
id 'me.modmuss50.mod-publish-plugin' version '1.0.0'
1111
id 'com.diffplug.spotless' version '6.25.0'
1212
}
1313

@@ -106,10 +106,10 @@ repositories {
106106
}
107107

108108
dependencies {
109-
//implementation "edivad:EdivadLib-$minecraft_version:3.0.0-snapshot"
109+
//implementation "edivad:EdivadLib-$minecraft_version:3.3.0-snapshot"
110110
implementation "curse.maven:edivadlib-638508:$edivadlib_id"
111111

112-
localRuntime "mezz.jei:jei-$minecraft_version-neoforge:$jei_version"
112+
//localRuntime "mezz.jei:jei-$minecraft_version-neoforge:$jei_version"
113113
}
114114

115115
spotless {

gradle.properties

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,21 @@ org.gradle.caching=true
77
org.gradle.configuration-cache=true
88

99
## Environment Properties
10-
minecraft_version=1.21.8
11-
minecraft_version_range=[1.21.8,1.22)
12-
neo_version=21.8.36
13-
neo_version_range=[21.8.36,)
10+
minecraft_version=1.21.9
11+
minecraft_version_range=[1.21.9,1.22)
12+
neo_version=21.9.1-beta
13+
neo_version_range=[21.9.1-beta,)
1414
loader_version_range=[4,)
15-
mod_dev_gradle=2.0.107
15+
mod_dev_gradle=2.0.110
1616

1717
## Parchment
1818
parchment_minecraft_version=1.21.8
19-
parchment_mappings_version=2025.07.20
19+
parchment_mappings_version=2025.09.14
2020

2121
## Mod Properties
22-
mod_version=7.2.0
23-
edivadlib_id=6914263
24-
edivadlib_version_range=[3.2.0,)
22+
mod_version=7.3.0
23+
edivadlib_id=7050907
24+
edivadlib_version_range=[3.3.0,)
2525

2626
# Dependencies
2727
jei_version=24.0.0.2

src/main/java/edivad/solargeneration/SolarGeneration.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import edivad.solargeneration.datagen.SolarPanelBlockTagsProvider;
1414
import edivad.solargeneration.datagen.SolarPanelItemTagsProvider;
1515
import edivad.solargeneration.network.packet.UpdateSolarPanel;
16-
import edivad.solargeneration.setup.Registration;
16+
import edivad.solargeneration.setup.ModRegistration;
1717
import edivad.solargeneration.setup.SolarGenerationCreativeModeTabs;
1818
import edivad.solargeneration.tools.SolarGenerationDataComponents;
1919
import edivad.solargeneration.tools.SolarPanelLevel;
@@ -26,8 +26,9 @@
2626
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
2727
import net.neoforged.neoforge.common.NeoForge;
2828
import net.neoforged.neoforge.data.event.GatherDataEvent;
29-
import net.neoforged.neoforge.energy.ComponentEnergyStorage;
3029
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
30+
import net.neoforged.neoforge.transfer.access.ItemAccess;
31+
import net.neoforged.neoforge.transfer.energy.ItemAccessEnergyHandler;
3132

3233
@Mod(SolarGeneration.ID)
3334
public class SolarGeneration {
@@ -43,7 +44,7 @@ public SolarGeneration(IEventBus modEventBus) {
4344
modEventBus.addListener(this::handleGatherData);
4445
modEventBus.addListener(this::registerCapabilities);
4546
modEventBus.addListener(this::registerPayloads);
46-
Registration.register(modEventBus);
47+
ModRegistration.register(modEventBus);
4748
SolarGenerationCreativeModeTabs.register(modEventBus);
4849
SolarGenerationDataComponents.register(modEventBus);
4950
}
@@ -54,7 +55,7 @@ private void handleClientSetup(FMLClientSetupEvent event) {
5455

5556
private void handleRegisterMenuScreens(RegisterMenuScreensEvent event) {
5657
for (var level : SolarPanelLevel.values()) {
57-
var menu = Registration.SOLAR_PANEL_MENU.get(level).get();
58+
var menu = ModRegistration.SOLAR_PANEL_MENU.get(level).get();
5859
event.register(menu, SolarPanelScreen::new);
5960
}
6061
}
@@ -71,14 +72,14 @@ private void handleGatherData(GatherDataEvent.Client event) {
7172
}
7273

7374
private void registerCapabilities(RegisterCapabilitiesEvent event) {
74-
Registration.SOLAR_PANEL_BLOCK_ENTITY.forEach((__, blockEntityType) ->
75+
ModRegistration.SOLAR_PANEL_BLOCK_ENTITY.forEach((__, blockEntityType) ->
7576
event.registerBlockEntity(
76-
Capabilities.EnergyStorage.BLOCK, blockEntityType.get(),
77+
Capabilities.Energy.BLOCK, blockEntityType.get(),
7778
SolarPanelBlockEntity::getSolarPanelBattery));
7879

79-
Registration.HELMET.forEach((solarPanelLevel, item) ->
80-
event.registerItem(Capabilities.EnergyStorage.ITEM, (stack, context) ->
81-
new ComponentEnergyStorage(stack,
80+
ModRegistration.HELMET.forEach((solarPanelLevel, item) ->
81+
event.registerItem(Capabilities.Energy.ITEM, (stack, context) ->
82+
new ItemAccessEnergyHandler(ItemAccess.forStack(stack),
8283
SolarGenerationDataComponents.ENERGY_COMPONENT.get(),
8384
solarPanelLevel.getCapacity(), solarPanelLevel.getMaxTransfer()), item.get()));
8485
}

src/main/java/edivad/solargeneration/blockentity/SolarPanelBlockEntity.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import org.jetbrains.annotations.Nullable;
44
import edivad.solargeneration.menu.SolarPanelMenu;
55
import edivad.solargeneration.network.packet.UpdateSolarPanel;
6-
import edivad.solargeneration.setup.Registration;
6+
import edivad.solargeneration.setup.ModRegistration;
77
import edivad.solargeneration.tools.ProductionSolarPanel;
88
import edivad.solargeneration.tools.SolarGenerationDataComponents;
99
import edivad.solargeneration.tools.SolarPanelBattery;
@@ -25,6 +25,7 @@
2525
import net.minecraft.world.level.storage.ValueOutput;
2626
import net.neoforged.neoforge.capabilities.Capabilities;
2727
import net.neoforged.neoforge.network.PacketDistributor;
28+
import net.neoforged.neoforge.transfer.transaction.Transaction;
2829

2930
public class SolarPanelBlockEntity extends BlockEntity implements MenuProvider {
3031

@@ -35,7 +36,7 @@ public class SolarPanelBlockEntity extends BlockEntity implements MenuProvider {
3536
public int energyClient, energyProductionClient;
3637

3738
public SolarPanelBlockEntity(SolarPanelLevel levelSolarPanel, BlockPos pos, BlockState state) {
38-
super(Registration.SOLAR_PANEL_BLOCK_ENTITY.get(levelSolarPanel).get(), pos, state);
39+
super(ModRegistration.SOLAR_PANEL_BLOCK_ENTITY.get(levelSolarPanel).get(), pos, state);
3940
this.levelSolarPanel = levelSolarPanel;
4041

4142
energyGeneration = levelSolarPanel.getEnergyGeneration();
@@ -52,7 +53,7 @@ public static void serverTick(Level level, BlockPos blockPos, BlockState blockSt
5253
int energyProducedBySun = solarPanel.currentAmountEnergyProduced(level);
5354
solarPanel.solarPanelBattery.generatePower(energyProducedBySun);
5455
solarPanel.sendEnergy();
55-
int energyStored = solarPanel.solarPanelBattery.getEnergyStored();
56+
int energyStored = solarPanel.solarPanelBattery.getAmountAsInt();
5657
if (solarPanel.energyClient != energyStored
5758
|| solarPanel.energyProductionClient != energyProducedBySun) {
5859
int energyProduced = solarPanel.solarPanelBattery.isFullEnergy() ? 0 : energyProducedBySun;
@@ -69,22 +70,30 @@ private int currentAmountEnergyProduced(Level level) {
6970
}
7071

7172
private void sendEnergy() {
72-
var capacity = solarPanelBattery.getEnergyStored();
73+
var capacity = solarPanelBattery.getAmountAsInt();
7374

7475
for (int i = 0; (i < Direction.values().length) && capacity > 0; i++) {
7576
var facing = Direction.values()[i];
7677
if (facing.equals(Direction.UP)) {
7778
continue;
7879
}
7980

80-
var energyStorage = level.getCapability(Capabilities.EnergyStorage.BLOCK,
81+
var handler = level.getCapability(Capabilities.Energy.BLOCK,
8182
worldPosition.relative(facing), facing.getOpposite());
83+
if (handler == null) {
84+
continue;
85+
}
8286

83-
if (energyStorage != null && energyStorage.canReceive()) {
84-
int received = energyStorage.receiveEnergy(Math.min(capacity, maxTransfer), false);
85-
capacity -= received;
86-
solarPanelBattery.consumePower(received);
87+
try (var tx = Transaction.open(null)) {
88+
var energyInserted = handler.insert(Math.min(capacity, maxTransfer), tx);
89+
if (energyInserted == 0) {
90+
// If we can't insert any energy, skip this side.
91+
continue;
92+
}
93+
capacity -= energyInserted;
94+
solarPanelBattery.consumePower(energyInserted);
8795
setChanged();
96+
tx.commit();
8897
}
8998
}
9099
}
@@ -112,13 +121,13 @@ protected void saveAdditional(ValueOutput output) {
112121
@Override
113122
protected void applyImplicitComponents(DataComponentGetter componentGetter) {
114123
int energy = componentGetter.getOrDefault(SolarGenerationDataComponents.ENERGY_COMPONENT, 0);
115-
solarPanelBattery.setEnergy(energy);
124+
solarPanelBattery.set(energy);
116125
super.applyImplicitComponents(componentGetter);
117126
}
118127

119128
@Override
120129
protected void collectImplicitComponents(DataComponentMap.Builder components) {
121-
components.set(SolarGenerationDataComponents.ENERGY_COMPONENT, solarPanelBattery.getEnergyStored());
130+
components.set(SolarGenerationDataComponents.ENERGY_COMPONENT, solarPanelBattery.getAmountAsInt());
122131
}
123132

124133
@Nullable

src/main/java/edivad/solargeneration/blocks/SolarPanelBlock.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.ArrayList;
44
import org.jetbrains.annotations.Nullable;
55
import edivad.solargeneration.blockentity.SolarPanelBlockEntity;
6-
import edivad.solargeneration.setup.Registration;
6+
import edivad.solargeneration.setup.ModRegistration;
77
import edivad.solargeneration.tools.SolarGenerationDataComponents;
88
import edivad.solargeneration.tools.SolarPanelBattery;
99
import edivad.solargeneration.tools.SolarPanelLevel;
@@ -82,7 +82,7 @@ public VoxelShape getShape(BlockState state, BlockGetter blockGetter, BlockPos p
8282
public InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos,
8383
Player player, BlockHitResult hit) {
8484
if (player instanceof ServerPlayer serverPlayer) {
85-
level.getBlockEntity(pos, Registration.SOLAR_PANEL_BLOCK_ENTITY.get(this.solarPanelLevel).get())
85+
level.getBlockEntity(pos, ModRegistration.SOLAR_PANEL_BLOCK_ENTITY.get(this.solarPanelLevel).get())
8686
.ifPresent(blockEntity -> serverPlayer.openMenu(blockEntity, pos));
8787
}
8888
return InteractionResult.SUCCESS_SERVER;
@@ -114,21 +114,20 @@ public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, Block
114114
return level.isClientSide()
115115
? null
116116
: BaseEntityBlock.createTickerHelper(blockEntityType,
117-
Registration.SOLAR_PANEL_BLOCK_ENTITY.get(solarPanelLevel).get(),
117+
ModRegistration.SOLAR_PANEL_BLOCK_ENTITY.get(solarPanelLevel).get(),
118118
SolarPanelBlockEntity::serverTick);
119119
}
120120

121121
@Override
122122
public void setPlacedBy(Level level, BlockPos pos, BlockState state,
123123
@Nullable LivingEntity placer, ItemStack itemStack) {
124-
if (!level.isClientSide) {
124+
if (!level.isClientSide()) {
125125
var blockEntity = level.getBlockEntity(pos);
126126
if (blockEntity instanceof SolarPanelBlockEntity) {
127-
var energyStore = level.getCapability(Capabilities.EnergyStorage.BLOCK,
128-
blockEntity.getBlockPos(), null);
127+
var energyStore = level.getCapability(Capabilities.Energy.BLOCK, pos, null);
129128
var energy = itemStack.getOrDefault(SolarGenerationDataComponents.ENERGY_COMPONENT.get(), 0);
130129
if (energyStore != null) {
131-
((SolarPanelBattery) energyStore).setEnergy(energy);
130+
((SolarPanelBattery) energyStore).set(energy);
132131
}
133132
}
134133
}

src/main/java/edivad/solargeneration/datagen/SolarGenerationAdvancementProvider.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.util.function.Consumer;
66
import edivad.edivadlib.tools.TranslationsAdvancement;
77
import edivad.solargeneration.SolarGeneration;
8-
import edivad.solargeneration.setup.Registration;
8+
import edivad.solargeneration.setup.ModRegistration;
99
import edivad.solargeneration.tools.SolarPanelLevel;
1010
import edivad.solargeneration.tools.Translations;
1111
import net.minecraft.advancements.Advancement;
@@ -38,27 +38,27 @@ private static AdvancementType getFrameType(SolarPanelLevel level) {
3838
@Override
3939
public void generate(HolderLookup.Provider registries, Consumer<AdvancementHolder> writer) {
4040
var ROOT = Advancement.Builder.advancement()
41-
.display(Registration.PHOTOVOLTAIC_CELL.get(),
41+
.display(ModRegistration.PHOTOVOLTAIC_CELL.get(),
4242
Translations.ADVANCEMENTS_ROOT.translateTitle(),
4343
Translations.ADVANCEMENTS_ROOT.translateDescription(),
4444
SolarGeneration.rl("textures/gui/advancements.png"),
4545
AdvancementType.TASK,
4646
true, true, false)
4747
.addCriterion("inv_changed",
48-
InventoryChangeTrigger.TriggerInstance.hasItems(Registration.PHOTOVOLTAIC_CELL.get()))
48+
InventoryChangeTrigger.TriggerInstance.hasItems(ModRegistration.PHOTOVOLTAIC_CELL.get()))
4949
.save(writer, SolarGeneration.rl("root"));
5050

5151
AdvancementHolder parent = ROOT;
5252
for (var level : SolarPanelLevel.values()) {
53-
var item = Registration.SOLAR_PANEL_ITEM.get(level);
53+
var item = ModRegistration.SOLAR_PANEL_ITEM.get(level);
5454
var translations = Translations.SOLAR_PANEL_ADVANCEMENTS.get(level);
5555
parent = generateAdvancements(writer, level, parent, item.get(),
5656
translations, level.getSolarPanelName());
5757
}
5858

5959
parent = ROOT;
6060
for (var level : SolarPanelLevel.values()) {
61-
var item = Registration.HELMET.get(level);
61+
var item = ModRegistration.HELMET.get(level);
6262
var translations = Translations.HELMET_ADVANCEMENTS.get(level);
6363
parent = generateAdvancements(writer, level, parent, item.get(),
6464
translations, level.getSolarHelmetName());

src/main/java/edivad/solargeneration/datagen/SolarGenerationBlockLoot.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.Set;
44
import java.util.stream.Collectors;
5-
import edivad.solargeneration.setup.Registration;
5+
import edivad.solargeneration.setup.ModRegistration;
66
import edivad.solargeneration.tools.SolarGenerationDataComponents;
77
import edivad.solargeneration.tools.SolarPanelLevel;
88
import net.minecraft.core.HolderLookup;
@@ -14,6 +14,7 @@
1414
import net.minecraft.world.level.storage.loot.entries.LootItem;
1515
import net.minecraft.world.level.storage.loot.functions.CopyComponentsFunction;
1616
import net.minecraft.world.level.storage.loot.functions.CopyNameFunction;
17+
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
1718
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
1819
import net.neoforged.neoforge.registries.DeferredHolder;
1920

@@ -28,8 +29,8 @@ private LootTable.Builder createSolarPanelDrops(Block block) {
2829
.withPool(this.applyExplosionCondition(block, LootPool.lootPool()
2930
.setRolls(ConstantValue.exactly(1))
3031
.add(LootItem.lootTableItem(block)
31-
.apply(CopyNameFunction.copyName(CopyNameFunction.NameSource.BLOCK_ENTITY))
32-
.apply(CopyComponentsFunction.copyComponents(CopyComponentsFunction.Source.BLOCK_ENTITY)
32+
.apply(CopyNameFunction.copyName(new CopyNameFunction.Source(LootContextParams.BLOCK_ENTITY)))
33+
.apply(CopyComponentsFunction.copyComponentsFromBlockEntity(LootContextParams.BLOCK_ENTITY)
3334
.include(SolarGenerationDataComponents.ENERGY_COMPONENT.get()))
3435
)
3536
));
@@ -38,13 +39,13 @@ private LootTable.Builder createSolarPanelDrops(Block block) {
3839
@Override
3940
protected void generate() {
4041
for (var level : SolarPanelLevel.values()) {
41-
this.add(Registration.SOLAR_PANEL_BLOCK.get(level).get(), this::createSolarPanelDrops);
42+
this.add(ModRegistration.SOLAR_PANEL_BLOCK.get(level).get(), this::createSolarPanelDrops);
4243
}
4344
}
4445

4546
@Override
4647
protected Iterable<Block> getKnownBlocks() {
47-
return Registration.SOLAR_PANEL_BLOCK.values().stream()
48+
return ModRegistration.SOLAR_PANEL_BLOCK.values().stream()
4849
.map(DeferredHolder::get)
4950
.collect(Collectors.toList());
5051
}

src/main/java/edivad/solargeneration/datagen/SolarGenerationLang.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.HashMap;
44
import org.apache.commons.lang3.tuple.Pair;
55
import edivad.solargeneration.SolarGeneration;
6-
import edivad.solargeneration.setup.Registration;
6+
import edivad.solargeneration.setup.ModRegistration;
77
import edivad.solargeneration.tools.SolarPanelLevel;
88
import edivad.solargeneration.tools.Translations;
99
import net.minecraft.data.PackOutput;
@@ -26,15 +26,15 @@ protected void addTranslations() {
2626
translations.put(SolarPanelLevel.ADVANCED, "Advanced");
2727
translations.put(SolarPanelLevel.ULTIMATE, "Ultimate");
2828

29-
Registration.CORE.forEach(
29+
ModRegistration.CORE.forEach(
3030
(level, item) -> addItem(item, String.format("%s Solar Core", translations.get(level))));
31-
Registration.HELMET.forEach(
31+
ModRegistration.HELMET.forEach(
3232
(level, item) -> addItem(item, String.format("%s Solar Helmet", translations.get(level))));
33-
Registration.SOLAR_PANEL_BLOCK.forEach(
33+
ModRegistration.SOLAR_PANEL_BLOCK.forEach(
3434
(level, block) -> addBlock(block, String.format("%s Solar Panel", translations.get(level))));
3535

36-
add(Registration.LAPIS_SHARD.get(), "Lapis Shard");
37-
add(Registration.PHOTOVOLTAIC_CELL.get(), "Photovoltaic Cell");
36+
add(ModRegistration.LAPIS_SHARD.get(), "Lapis Shard");
37+
add(ModRegistration.PHOTOVOLTAIC_CELL.get(), "Photovoltaic Cell");
3838

3939
add(Translations.STORED_ENERGY, "Stored energy: %s");
4040
add(Translations.CAPACITY, "Capacity: %s");

src/main/java/edivad/solargeneration/datagen/SolarGenerationModelProvider.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package edivad.solargeneration.datagen;
22

33
import edivad.solargeneration.SolarGeneration;
4-
import edivad.solargeneration.setup.Registration;
4+
import edivad.solargeneration.setup.ModRegistration;
55
import net.minecraft.client.data.models.BlockModelGenerators;
66
import net.minecraft.client.data.models.ItemModelGenerators;
77
import net.minecraft.client.data.models.ModelProvider;
@@ -17,14 +17,14 @@ public SolarGenerationModelProvider(PackOutput output) {
1717

1818
@Override
1919
protected void registerModels(BlockModelGenerators blockModels, ItemModelGenerators itemModels) {
20-
itemModels.generateFlatItem(Registration.PHOTOVOLTAIC_CELL.get(), ModelTemplates.FLAT_ITEM);
21-
itemModels.generateFlatItem(Registration.LAPIS_SHARD.get(), ModelTemplates.FLAT_ITEM);
22-
Registration.CORE.forEach((core, item) ->
20+
itemModels.generateFlatItem(ModRegistration.PHOTOVOLTAIC_CELL.get(), ModelTemplates.FLAT_ITEM);
21+
itemModels.generateFlatItem(ModRegistration.LAPIS_SHARD.get(), ModelTemplates.FLAT_ITEM);
22+
ModRegistration.CORE.forEach((core, item) ->
2323
itemModels.generateFlatItem(item.get(), ModelTemplates.FLAT_ITEM));
24-
Registration.HELMET.forEach((core, item) ->
24+
ModRegistration.HELMET.forEach((core, item) ->
2525
itemModels.generateFlatItem(item.get(), ModelTemplates.FLAT_ITEM));
2626

27-
Registration.SOLAR_PANEL_BLOCK.forEach((level, block) -> {
27+
ModRegistration.SOLAR_PANEL_BLOCK.forEach((level, block) -> {
2828
blockModels.blockStateOutput.accept(
2929
BlockModelGenerators.createSimpleBlock(block.get(),
3030
BlockModelGenerators.plainVariant(ModelLocationUtils.getModelLocation(block.get()))));

0 commit comments

Comments
 (0)