Skip to content

Commit bb7baa7

Browse files
committed
wip porting
1 parent cd8b48d commit bb7baa7

23 files changed

+246
-239
lines changed

src/main/java/com/mrh0/createaddition/CreateAddition.java

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
import com.mrh0.createaddition.config.CommonConfig;
44
import com.mrh0.createaddition.index.*;
55
import com.mrh0.createaddition.index.CASounds;
6+
import com.mrh0.createaddition.network.ObservePacketPayload;
67
import com.mrh0.createaddition.ponder.CAPonderPlugin;
78
import com.mrh0.createaddition.trains.schedule.CASchedule;
89
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock;
910
import com.simibubi.create.foundation.item.ItemDescription;
1011
import com.simibubi.create.foundation.item.KineticStats;
1112
import net.createmod.catnip.lang.FontHelper;
13+
import net.createmod.catnip.platform.CatnipServices;
1214
import net.createmod.ponder.foundation.PonderIndex;
1315
import net.minecraft.client.renderer.ItemBlockRenderTypes;
1416
import net.minecraft.client.renderer.RenderType;
@@ -27,24 +29,21 @@
2729
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
2830
import net.neoforged.fml.event.lifecycle.FMLLoadCompleteEvent;
2931
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
30-
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
3132
import net.neoforged.neoforge.event.RegisterCommandsEvent;
32-
import net.neoforged.neoforge.event.server.ServerStartingEvent;
3333
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
34+
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
35+
import net.neoforged.neoforge.network.handling.DirectionalPayloadHandler;
36+
import net.neoforged.neoforge.network.registration.HandlerThread;
37+
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
3438
import net.neoforged.neoforge.registries.DeferredHolder;
3539
import net.neoforged.neoforge.registries.DeferredRegister;
36-
import net.minecraftforge.network.NetworkRegistry;
37-
import net.minecraftforge.network.simple.SimpleChannel;
38-
39-
import net.minecraftforge.registries.RegisterEvent;
40+
import net.neoforged.neoforge.registries.RegisterEvent;
4041
import org.apache.logging.log4j.LogManager;
4142
import org.apache.logging.log4j.Logger;
4243

4344
import com.mojang.brigadier.CommandDispatcher;
4445
import com.mrh0.createaddition.blocks.liquid_blaze_burner.LiquidBlazeBurnerBlock;
4546
import com.mrh0.createaddition.commands.CCApiCommand;
46-
import com.mrh0.createaddition.network.EnergyNetworkPacket;
47-
import com.mrh0.createaddition.network.ObservePacket;
4847
import com.simibubi.create.foundation.data.CreateRegistrate;
4948
import com.simibubi.create.foundation.item.TooltipModifier;
5049
import com.simibubi.create.api.boiler.BoilerHeater;
@@ -62,13 +61,13 @@ public class CreateAddition {
6261
public static boolean AE2_ACTIVE = false;
6362

6463
public static final CreateRegistrate REGISTRATE = CreateRegistrate.create(CreateAddition.MODID);
65-
66-
private static final String PROTOCOL = "1";
64+
/*
6765
public static final SimpleChannel Network = NetworkRegistry.ChannelBuilder.named(new ResourceLocation(MODID, "main"))
6866
.clientAcceptedVersions(PROTOCOL::equals)
6967
.serverAcceptedVersions(PROTOCOL::equals)
7068
.networkProtocolVersion(() -> PROTOCOL)
7169
.simpleChannel();
70+
*/
7271

7372
static {
7473
REGISTRATE.setTooltipModifierFactory(item -> new ItemDescription.Modifier(item, FontHelper.Palette.STANDARD_CREATE)
@@ -113,7 +112,7 @@ public CreateAddition(IEventBus eventBus, ModContainer container) {
113112
CASchedule.register();
114113
CADamageTypes.register();
115114
CADisplaySources.register();
116-
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> CAPartials::init);
115+
CatnipServices.PLATFORM.executeOnClientOnly(() -> CAPartials::init);
117116
}
118117

119118
private void setup(final FMLCommonSetupEvent event) {
@@ -134,8 +133,8 @@ private void doClientStuff(final FMLClientSetupEvent event) {
134133
}
135134

136135
public void postInit(FMLLoadCompleteEvent evt) {
137-
Network.registerMessage(0, ObservePacket.class, ObservePacket::encode, ObservePacket::decode, ObservePacket::handle);
138-
Network.registerMessage(1, EnergyNetworkPacket.class, EnergyNetworkPacket::encode, EnergyNetworkPacket::decode, EnergyNetworkPacket::handle);
136+
//Network.registerMessage(0, ObservePacketLegacy.class, ObservePacketLegacy::encode, ObservePacketLegacy::decode, ObservePacketLegacy::handle);
137+
//Network.registerMessage(1, EnergyNetworkPacket.class, EnergyNetworkPacket::encode, EnergyNetworkPacket::decode, EnergyNetworkPacket::handle);
139138

140139
BoilerHeater.REGISTRY.register(CABlocks.LIQUID_BLAZE_BURNER.get(), (level, pos, state) -> {
141140
BlazeBurnerBlock.HeatLevel value = state.getValue(LiquidBlazeBurnerBlock.HEAT_LEVEL);
@@ -158,6 +157,21 @@ public void onRegisterCommandEvent(RegisterCommandsEvent event) {
158157
CCApiCommand.register(dispather);
159158
}
160159

160+
private static final String PROTOCOL = "1";
161+
@SubscribeEvent
162+
public static void register(final RegisterPayloadHandlersEvent event) {
163+
PayloadRegistrar registrar = event.registrar(PROTOCOL);
164+
registrar = registrar.executesOn(HandlerThread.MAIN);
165+
registrar.playBidirectional(
166+
ObservePacketPayload.TYPE,
167+
ObservePacketPayload.STREAM_CODEC,
168+
new DirectionalPayloadHandler<>(
169+
ClientPayloadHandler::handleDataOnMain,
170+
ServerPayloadHandler::handleDataOnMain
171+
)
172+
);
173+
}
174+
161175
public static ResourceLocation asResource(String path) {
162176
return ResourceLocation.fromNamespaceAndPath(MODID, path);
163177
}

src/main/java/com/mrh0/createaddition/blocks/alternator/AlternatorBlockEntity.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import com.mrh0.createaddition.sound.CASoundScapes;
1414
import com.mrh0.createaddition.sound.CASoundScapes.AmbienceGroup;
1515
import com.mrh0.createaddition.util.Util;
16-
import com.simibubi.create.AllBlockEntityTypes;
1716
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
1817
import com.simibubi.create.foundation.utility.CreateLang;
1918

@@ -26,14 +25,10 @@
2625
import net.minecraft.server.level.ServerLevel;
2726
import net.minecraft.util.Mth;
2827
import net.minecraft.world.level.block.Block;
29-
import net.minecraft.world.level.block.entity.BlockEntity;
3028
import net.minecraft.world.level.block.entity.BlockEntityType;
3129
import net.minecraft.world.level.block.state.BlockState;
3230
import net.neoforged.api.distmarker.Dist;
3331
import net.neoforged.api.distmarker.OnlyIn;
34-
//import net.neoforged.neoforge.capabilities.BlockCapability;
35-
//import net.neoforged.neoforge.capabilities.ForgeCapabilities;
36-
//import net.neoforged.fml.util.LazyOptional;
3732
import net.neoforged.neoforge.capabilities.BlockCapabilityCache;
3833
import net.neoforged.neoforge.capabilities.Capabilities;
3934
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;

src/main/java/com/mrh0/createaddition/blocks/connector/base/AbstractConnectorBlockEntity.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.mrh0.createaddition.blocks.connector.base;
22

3-
import java.security.DrbgParameters;
43
import java.util.HashSet;
54
import java.util.List;
65
import java.util.Set;
@@ -13,7 +12,7 @@
1312
import com.mrh0.createaddition.util.Util;
1413
import com.mrh0.createaddition.network.EnergyNetworkPacket;
1514
import com.mrh0.createaddition.network.IObserveTileEntity;
16-
import com.mrh0.createaddition.network.ObservePacket;
15+
import com.mrh0.createaddition.network.ObservePacketLegacy;
1716

1817
import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation;
1918
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
@@ -27,15 +26,13 @@
2726
import net.minecraft.network.chat.Component;
2827
import net.minecraft.server.level.ServerLevel;
2928
import net.minecraft.server.level.ServerPlayer;
30-
import net.minecraft.world.level.block.entity.BlockEntity;
3129
import net.minecraft.world.level.block.entity.BlockEntityType;
3230
import net.minecraft.world.level.block.state.BlockState;
3331
import net.minecraft.world.phys.shapes.Shapes;
3432
import net.minecraft.world.phys.shapes.VoxelShape;
3533
import net.neoforged.neoforge.capabilities.BlockCapabilityCache;
3634
import net.neoforged.neoforge.capabilities.Capabilities;
3735
import net.neoforged.neoforge.energy.IEnergyStorage;
38-
import org.jetbrains.annotations.NotNull;
3936
import org.jetbrains.annotations.Nullable;
4037

4138
public abstract class AbstractConnectorBlockEntity extends SmartBlockEntity implements IWireNode, IObserveTileEntity, IHaveGoggleInformation, IDebugDrawer, IEnergyProvider {
@@ -339,14 +336,14 @@ public ConnectorMode getMode() {
339336
}
340337

341338
@Override
342-
public void onObserved(ServerPlayer player, ObservePacket pack) {
339+
public void onObserved(ServerPlayer player, ObservePacketLegacy pack) {
343340
if(isNetworkValid(0))
344341
EnergyNetworkPacket.send(worldPosition, getNetwork(0).getPulled(), getNetwork(0).getPushed(), player);
345342
}
346343

347344
@Override
348345
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
349-
ObservePacket.send(worldPosition, 0);
346+
ObservePacketLegacy.send(worldPosition, 0);
350347

351348
String spacing = " ";
352349
tooltip.add(Component.literal(spacing)

src/main/java/com/mrh0/createaddition/blocks/digital_adapter/DigitalAdapterBlockEntity.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.mrh0.createaddition.CreateAddition;
44
import com.mrh0.createaddition.compat.computercraft.DigitalAdapterPeripheral;
55
import com.mrh0.createaddition.compat.computercraft.Peripherals;
6+
import com.mrh0.createaddition.index.CABlockEntities;
67
import com.simibubi.create.content.contraptions.bearing.MechanicalBearingBlockEntity;
78
import com.simibubi.create.content.contraptions.elevator.ElevatorPulleyBlockEntity;
89
import com.simibubi.create.content.contraptions.piston.MechanicalPistonBlockEntity;
@@ -18,6 +19,8 @@
1819
import net.minecraft.world.level.block.entity.BlockEntity;
1920
import net.minecraft.world.level.block.entity.BlockEntityType;
2021
import net.minecraft.world.level.block.state.BlockState;
22+
import net.neoforged.neoforge.capabilities.Capabilities;
23+
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
2124

2225
import javax.annotation.Nonnull;
2326
import java.util.ArrayList;
@@ -39,6 +42,16 @@ public DigitalAdapterBlockEntity(BlockEntityType<?> tileEntityTypeIn, BlockPos p
3942
// this.peripheral = LazyOptional.of(() -> Peripherals.createDigitalAdapterPeripheral(this));
4043
}
4144

45+
/*
46+
public static void registerCapabilities(RegisterCapabilitiesEvent event) {
47+
event.registerBlockEntity(
48+
Capabilities.EnergyStorage.BLOCK,
49+
CABlockEntities.ALTERNATOR.get(),
50+
(be, context) -> be.capability
51+
);
52+
}
53+
*/
54+
4255
private int line = 1;
4356

4457
public void incrementLine() {

src/main/java/com/mrh0/createaddition/blocks/electric_motor/ElectricMotorBlockEntity.java

Lines changed: 27 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.mrh0.createaddition.compat.computercraft.Peripherals;
99
import com.mrh0.createaddition.config.CommonConfig;
1010
import com.mrh0.createaddition.energy.InternalEnergyStorage;
11+
import com.mrh0.createaddition.index.CABlockEntities;
1112
import com.mrh0.createaddition.index.CABlocks;
1213
import com.mrh0.createaddition.sound.CASoundScapes;
1314
import com.mrh0.createaddition.util.Util;
@@ -22,21 +23,22 @@
2223
import net.minecraft.ChatFormatting;
2324
import net.minecraft.core.BlockPos;
2425
import net.minecraft.core.Direction;
26+
import net.minecraft.core.HolderLookup;
2527
import net.minecraft.nbt.CompoundTag;
2628
import net.minecraft.network.chat.Component;
2729
import net.minecraft.world.level.block.Block;
2830
import net.minecraft.world.level.block.entity.BlockEntityType;
2931
import net.minecraft.world.level.block.state.BlockState;
30-
import net.minecraftforge.common.capabilities.Capability;
31-
import net.minecraftforge.common.capabilities.ForgeCapabilities;
32-
import net.minecraftforge.common.util.LazyOptional;
32+
import net.neoforged.neoforge.capabilities.Capabilities;
33+
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
34+
import net.neoforged.neoforge.energy.IEnergyStorage;
3335

3436
public class ElectricMotorBlockEntity extends GeneratingKineticBlockEntity {
3537
protected float motorSpeed;
3638
protected ScrollValueBehaviour generatedSpeed;
3739
protected final InternalEnergyStorage energy;
38-
private LazyOptional<net.minecraftforge.energy.IEnergyStorage> lazyEnergy;
39-
private LazyOptional<ElectricMotorPeripheral> lazyPeripheral = null;
40+
private final IEnergyStorage capability;
41+
//private LazyOptional<ElectricMotorPeripheral> lazyPeripheral = null;
4042

4143
private boolean cc_update_rpm = false;
4244
private float cc_new_rpm = 32.0f;
@@ -46,13 +48,23 @@ public class ElectricMotorBlockEntity extends GeneratingKineticBlockEntity {
4648
public ElectricMotorBlockEntity(BlockEntityType<? extends ElectricMotorBlockEntity> type, BlockPos pos, BlockState state) {
4749
super(type, pos, state);
4850
energy = new InternalEnergyStorage(CommonConfig.ELECTRIC_MOTOR_CAPACITY.get(), CommonConfig.ELECTRIC_MOTOR_MAX_INPUT.get(), 0);
49-
lazyEnergy = LazyOptional.of(() -> energy);
51+
capability = energy;
52+
/*
5053
if(CreateAddition.CC_ACTIVE) {
5154
lazyPeripheral = LazyOptional.of(() -> Peripherals.createElectricMotorPeripheral(this));
5255
}
56+
*/
5357
setLazyTickRate(20);
5458
}
5559

60+
public static void registerCapabilities(RegisterCapabilitiesEvent event) {
61+
event.registerBlockEntity(
62+
Capabilities.EnergyStorage.BLOCK,
63+
CABlockEntities.ELECTRIC_MOTOR.get(),
64+
(be, context) -> be.capability
65+
);
66+
}
67+
5668
@Override
5769
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
5870
super.addBehaviours(behaviours);
@@ -64,7 +76,7 @@ public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
6476
generatedSpeed.between(-CommonConfig.ELECTRIC_MOTOR_RPM_RANGE.get(), CommonConfig.ELECTRIC_MOTOR_RPM_RANGE.get());
6577
generatedSpeed.value = 32;
6678
//generatedSpeed.withUnit(i -> Lang.translateDirect("generic.unit.rpm"));
67-
generatedSpeed.withCallback(i -> this.updateGeneratedRotation(i));
79+
generatedSpeed.withCallback(this::updateGeneratedRotation);
6880
//generatedSpeed.withStepFunction(ElectricMotorTileEntity::step);
6981
behaviours.add(generatedSpeed);
7082
}
@@ -126,39 +138,18 @@ protected Block getStressConfigKey() {
126138
return AllBlocks.WATER_WHEEL.get();
127139
}
128140

129-
public InternalEnergyStorage getEnergyStorage() {
130-
return energy;
131-
}
132-
133141
@Override
134-
public <T> LazyOptional<T> getCapability(Capability<T> cap, Direction side) {
135-
if(cap == ForgeCapabilities.ENERGY) return lazyEnergy.cast();
136-
if(CreateAddition.CC_ACTIVE) {
137-
if(Peripherals.isPeripheral(cap)) return lazyPeripheral.cast();
138-
}
139-
return super.getCapability(cap, side);
140-
}
141-
142-
public boolean isEnergyInput(Direction side) {
143-
return true;
144-
}
145-
146-
public boolean isEnergyOutput(Direction side) {
147-
return false;
148-
}
149-
150-
@Override
151-
public void read(CompoundTag compound, boolean clientPacket) {
152-
super.read(compound, clientPacket);
153-
energy.read(compound);
154-
active = compound.getBoolean("active");
142+
protected void read(CompoundTag tag, HolderLookup.Provider registries, boolean clientPacket) {
143+
super.read(tag, registries, clientPacket);
144+
energy.read(tag);
145+
active = tag.getBoolean("active");
155146
}
156147

157148
@Override
158-
public void write(CompoundTag compound, boolean clientPacket) {
159-
super.write(compound, clientPacket);
160-
energy.write(compound);
161-
compound.putBoolean("active", active);
149+
public void writeSafe(CompoundTag tag, HolderLookup.Provider registries) {
150+
super.writeSafe(tag, registries);
151+
energy.write(tag);
152+
tag.putBoolean("active", active);
162153
}
163154

164155
@Override
@@ -170,13 +161,6 @@ public static int getEnergyConsumptionRate(float rpm) {
170161
return Math.abs(rpm) > 0 ? (int)Math.max((double) CommonConfig.FE_RPM.get() * ((double)Math.abs(rpm) / 256d), (double) CommonConfig.ELECTRIC_MOTOR_MINIMUM_CONSUMPTION.get()) : 0;
171162
}
172163

173-
@Override
174-
public void remove() {
175-
lazyEnergy.invalidate();
176-
if(lazyPeripheral != null) lazyPeripheral.invalidate();
177-
super.remove();
178-
}
179-
180164
// CC
181165
boolean first = true;
182166

src/main/java/com/mrh0/createaddition/blocks/liquid_blaze_burner/LiquidBlazeBurnerBlockEntity.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,9 @@
33
import java.util.List;
44
import java.util.Optional;
55

6-
import javax.annotation.Nonnull;
7-
import javax.annotation.Nullable;
8-
96
import com.mrh0.createaddition.index.CARecipes;
107
import com.mrh0.createaddition.network.IObserveTileEntity;
11-
import com.mrh0.createaddition.network.ObservePacket;
8+
import com.mrh0.createaddition.network.ObservePacketLegacy;
129
import com.mrh0.createaddition.recipe.FluidRecipeWrapper;
1310
import com.mrh0.createaddition.recipe.liquid_burning.LiquidBurningRecipe;
1411
import com.simibubi.create.AllBlocks;
@@ -17,7 +14,6 @@
1714
import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation;
1815
import com.simibubi.create.content.fluids.tank.FluidTankBlock;
1916
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock;
20-
import com.simibubi.create.content.processing.burner.BlazeBurnerBlockEntity;
2117
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
2218
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
2319
import com.simibubi.create.foundation.fluid.SmartFluidTank;
@@ -49,9 +45,7 @@
4945
import net.neoforged.api.distmarker.OnlyIn;
5046
import net.neoforged.neoforge.capabilities.Capabilities;
5147
import net.neoforged.neoforge.fluids.FluidStack;
52-
import net.neoforged.neoforge.fluids.IFluidTank;
5348
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
54-
import net.neoforged.neoforge.fluids.capability.IFluidHandlerItem;
5549
import net.neoforged.neoforge.fluids.capability.templates.FluidTank;
5650

5751
public class LiquidBlazeBurnerBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation, IObserveTileEntity {
@@ -447,12 +441,12 @@ public enum FuelType {
447441
@Override
448442
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
449443
if (level == null) return false;
450-
ObservePacket.send(worldPosition, 0);
444+
ObservePacketLegacy.send(worldPosition, 0);
451445
return containedFluidTooltip(tooltip, isPlayerSneaking, level.getCapability(Capabilities.FluidHandler.BLOCK, getBlockPos(), null));
452446
}
453447

454448
@Override
455-
public void onObserved(ServerPlayer player, ObservePacket pack) {
449+
public void onObserved(ServerPlayer player, ObservePacketLegacy pack) {
456450
notifyUpdate();
457451
}
458452
}

0 commit comments

Comments
 (0)