Skip to content

Commit

Permalink
Fixed porting issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Duqueeee committed Feb 6, 2024
1 parent 9ed555f commit 64036f6
Show file tree
Hide file tree
Showing 14 changed files with 84 additions and 72 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ registrate_version = MC1.20-1.3.3

maven_group = me.duquee
archives_base_name = createutilities
mod_version = 0.1.4
mod_version = 0.2.0

forge_version = 47.1.43
minecraft_version = 1.20.1
Expand Down
10 changes: 8 additions & 2 deletions src/main/java/me/duquee/createutilities/CreateUtilities.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import com.simibubi.create.foundation.data.CreateRegistrate;

import me.duquee.createutilities.blocks.CUBlocks;
import me.duquee.createutilities.blocks.CUPartialsModels;
import me.duquee.createutilities.blocks.CUTileEntities;
import me.duquee.createutilities.blocks.voidtypes.CUContainerTypes;
import me.duquee.createutilities.blocks.voidtypes.battery.VoidBatteryData;
import me.duquee.createutilities.blocks.voidtypes.chest.VoidChestInventoriesData;
import me.duquee.createutilities.blocks.voidtypes.tank.VoidTanksData;
import me.duquee.createutilities.items.CUItems;
Expand All @@ -16,6 +16,7 @@
import net.minecraft.resources.ResourceLocation;

import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.common.Mod;
Expand All @@ -35,7 +36,9 @@ public class CreateUtilities {

public static final VoidMotorNetworkHandler VOID_MOTOR_LINK_NETWORK_HANDLER = new VoidMotorNetworkHandler();
public static VoidChestInventoriesData VOID_CHEST_INVENTORIES_DATA;

public static VoidTanksData VOID_TANKS_DATA;
public static VoidBatteryData VOID_BATTERIES_DATA;

public CreateUtilities() {
onCtor();
Expand All @@ -44,6 +47,7 @@ public CreateUtilities() {
public static void onCtor() {

IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
IEventBus forgeEventBus = MinecraftForge.EVENT_BUS;

REGISTRATE.registerEventListeners(modEventBus);

Expand All @@ -54,7 +58,9 @@ public static void onCtor() {
CUCreativeTabs.register(modEventBus);

modEventBus.addListener(CreateUtilities::init);
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> CUPartialsModels::init);
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () ->
CreateUtilitiesClient.onCtorClient(modEventBus, forgeEventBus)
);

}

Expand Down
15 changes: 15 additions & 0 deletions src/main/java/me/duquee/createutilities/CreateUtilitiesClient.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
package me.duquee.createutilities;

import me.duquee.createutilities.blocks.CUPartialsModels;
import me.duquee.createutilities.blocks.voidtypes.VoidStorageClient;
import me.duquee.createutilities.blocks.voidtypes.battery.VoidBattery;
import me.duquee.createutilities.blocks.voidtypes.tank.VoidTank;
import me.duquee.createutilities.ponder.CUPonderIndex;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;

public class CreateUtilitiesClient {

Expand All @@ -11,4 +17,13 @@ public class CreateUtilitiesClient {
public static final VoidStorageClient<VoidBattery> VOID_BATTERIES = new VoidStorageClient<>(
VoidBattery::new);

public static void onCtorClient(IEventBus modEventBus, IEventBus forgeEventBus) {
modEventBus.addListener(CreateUtilitiesClient::clientInit);
}

public static void clientInit(final FMLClientSetupEvent event) {
CUPartialsModels.init();
CUPonderIndex.register();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,10 @@
import com.simibubi.create.foundation.block.IBE;

import me.duquee.createutilities.blocks.CUTileEntities;
import net.fabricmc.fabric.api.block.BlockPickInteractionAware;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.Block;
Expand All @@ -24,9 +21,8 @@
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.DirectionProperty;
import net.minecraft.world.phys.HitResult;

public class LShapedGearboxBlock extends KineticBlock implements IBE<GearboxBlockEntity>, BlockPickInteractionAware, ITransformableBlock {
public class LShapedGearboxBlock extends KineticBlock implements IBE<GearboxBlockEntity>, ITransformableBlock {

public static final DirectionProperty FACING_1 = BlockStateProperties.HORIZONTAL_FACING;
public static final DirectionProperty FACING_2 = DirectionProperty.create("facing_2",
Expand Down Expand Up @@ -86,11 +82,6 @@ public Direction.Axis getRotationAxis(BlockState state) {
return Direction.Axis.Y;
}

@Override
public ItemStack getPickedStack(BlockState state, BlockGetter view, BlockPos pos, Player player, HitResult result) {
return new ItemStack(this);
}

@Override
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
return hasShaftTowards(state, face);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@


import me.duquee.createutilities.blocks.voidtypes.motor.VoidMotorNetworkHandler;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;

@Environment(EnvType.CLIENT)
@OnlyIn(Dist.CLIENT)
public class VoidStorageClient<T> {

public final Map<VoidMotorNetworkHandler.NetworkKey, T> storages = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
import me.duquee.createutilities.blocks.voidtypes.motor.VoidMotorNetworkHandler.NetworkKey;
import me.duquee.createutilities.networking.CUPackets;
import me.duquee.createutilities.networking.packets.VoidBatteryUpdatePacket;
import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext;
import net.minecraft.nbt.CompoundTag;
import team.reborn.energy.api.base.SimpleEnergyStorage;
import net.minecraftforge.energy.EnergyStorage;
import net.minecraftforge.network.PacketDistributor;

public class VoidBattery extends SimpleEnergyStorage {
public class VoidBattery extends EnergyStorage {

private final NetworkKey key;

Expand All @@ -18,40 +18,36 @@ public VoidBattery(NetworkKey key) {
}

public boolean isEmpty() {
return amount == 0;
}

public CompoundTag serializeNBT() {
CompoundTag nbt = new CompoundTag();
nbt.putLong("Energy", amount);
return nbt;
}

public void deserializeNBT(CompoundTag nbt) {
amount = nbt.getLong("Energy");
return energy == 0;
}

@Override
protected void onFinalCommit() {
if (CreateUtilities.VOID_BATTERIES_DATA != null) CreateUtilities.VOID_BATTERIES_DATA.setDirty();
}

@Override
public long insert(long maxAmount, TransactionContext transaction) {
long inserted = super.insert(maxAmount, transaction);
public int receiveEnergy(int maxReceive, boolean simulate) {
int inserted = super.receiveEnergy(maxReceive, simulate);
if (inserted != 0) onContentsChanged();
return inserted;
}

@Override
public long extract(long maxAmount, TransactionContext transaction) {
long extracted = super.extract(maxAmount, transaction);
public int extractEnergy(int maxExtract, boolean simulate) {
int extracted = super.extractEnergy(maxExtract, simulate);
if (extracted != 0) onContentsChanged();
return extracted;
}

private void onContentsChanged() {
CUPackets.channel.sendToClientsInCurrentServer(new VoidBatteryUpdatePacket(key, this));
if (CreateUtilities.VOID_BATTERIES_DATA != null) CreateUtilities.VOID_BATTERIES_DATA.setDirty();
CUPackets.channel.send(PacketDistributor.ALL.noArg(), new VoidBatteryUpdatePacket(key, this));
}

public CompoundTag serializeNBT() {
CompoundTag nbt = new CompoundTag();
nbt.putLong("Energy", energy);
return nbt;
}

public void deserializeNBT(CompoundTag nbt) {
energy = nbt.getInt("Energy");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@

import com.simibubi.create.foundation.render.CachedBufferer;

import com.simibubi.create.foundation.utility.animation.LerpedFloat;

import me.duquee.createutilities.CreateUtilitiesClient;
import me.duquee.createutilities.blocks.CUPartialsModels;
import me.duquee.createutilities.blocks.voidtypes.VoidTileRenderer;
import net.minecraft.client.model.SkullModel;
Expand Down Expand Up @@ -42,7 +39,7 @@ protected void renderDial(VoidBatteryTileEntity te, float partialTicks, PoseStac
VertexConsumer vb = buffer.getBuffer(RenderType.solid());

VoidBattery battery = te.getBattery();
float progress = (float) battery.amount / battery.capacity;
float progress = (float) battery.getEnergyStored() / battery.getMaxEnergyStored();

Direction direction = state.getValue(VoidBatteryBlock.FACING);
Vector3f vec = new Vector3f(.5f, .375f, .5f)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@

import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;

import com.simibubi.create.foundation.utility.Lang;

import com.simibubi.create.foundation.utility.LangBuilder;

import me.duquee.createutilities.CreateUtilitiesClient;
import net.minecraft.ChatFormatting;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;

import net.minecraft.network.chat.Component;

import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import org.apache.commons.lang3.tuple.Triple;

import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
Expand All @@ -26,6 +28,8 @@
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class VoidBatteryTileEntity extends SmartBlockEntity implements IHaveGoggleInformation {

Expand Down Expand Up @@ -55,16 +59,24 @@ private boolean hasPersistentData() {
return level != null && !level.isClientSide;
}

private static VoidBatteryData getPersistentData() {
private static VoidBatteryData getPersistentStorageData() {
return CreateUtilities.VOID_BATTERIES_DATA;
}

public VoidBattery getBattery() {
return hasPersistentData() ?
getPersistentData().computeStorageIfAbsent(link.getNetworkKey()) :
getPersistentStorageData().computeStorageIfAbsent(link.getNetworkKey()) :
CreateUtilitiesClient.VOID_BATTERIES.computeStorageIfAbsent(link.getNetworkKey());
}

@Override
public @NotNull <T> LazyOptional<T> getCapability(@NotNull Capability<T> cap, @Nullable Direction side) {
if (cap == ForgeCapabilities.FLUID_HANDLER) {
return LazyOptional.of(this::getBattery).cast();
}
return super.getCapability(cap, side);
}

@Override
protected void read(CompoundTag tag, boolean clientPacket) {
super.read(tag, clientPacket);
Expand Down Expand Up @@ -93,13 +105,13 @@ public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneak

new LangBuilder(CreateUtilities.ID)
.add(new LangBuilder(CreateUtilities.ID)
.text(battery.amount+ "fe")
.text(battery.getEnergyStored() + "fe")
.style(ChatFormatting.GOLD))
.add(new LangBuilder(CreateUtilities.ID)
.text(" / ")
.style(ChatFormatting.GRAY))
.add(new LangBuilder(CreateUtilities.ID)
.text(battery.capacity + "fe")
.text(battery.getMaxEnergyStored() + "fe")
.style(ChatFormatting.DARK_GRAY))
.forGoggles(tooltip, 1);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package me.duquee.createutilities.blocks.voidtypes.tank;

import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
Expand All @@ -20,7 +19,6 @@
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import org.apache.commons.lang3.tuple.Triple;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -84,6 +82,6 @@ public boolean isClosed() {

@Override
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
return containedFluidTooltip(tooltip, isPlayerSneaking, getFluidStorage());
return containedFluidTooltip(tooltip, isPlayerSneaking, getCapability(ForgeCapabilities.FLUID_HANDLER));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ private void returnForVoidChest(BlockEntity te, CallbackInfo ci) {
if (te instanceof VoidChestTileEntity) ci.cancel();
}

@Inject(method = "serialize()Lnet/minecraft/nbt/CompoundTag;", at = @At("HEAD"), cancellable = true)
@Inject(method = "serialize()Lnet/minecraft/nbt/CompoundTag;", at = @At("HEAD"), cancellable = true, remap = false)
private void serializeVoidChest(CallbackInfoReturnable<CompoundTag> cir) {

if (!(handler instanceof VoidChestInventory voidChest)) return;
Expand All @@ -52,7 +52,7 @@ private void serializeVoidChest(CallbackInfoReturnable<CompoundTag> cir) {

}

@Inject(method = "deserialize(Lnet/minecraft/nbt/CompoundTag;)Lcom/simibubi/create/content/contraptions/MountedStorage;", at = @At("HEAD"), cancellable = true)
@Inject(method = "deserialize(Lnet/minecraft/nbt/CompoundTag;)Lcom/simibubi/create/content/contraptions/MountedStorage;", at = @At("HEAD"), cancellable = true, remap = false)
private static void deserializeVoidChest(CompoundTag nbt, CallbackInfoReturnable<MountedStorage> cir) {

if (nbt == null) return;
Expand All @@ -69,7 +69,7 @@ private static void deserializeVoidChest(CompoundTag nbt, CallbackInfoReturnable

}

@Inject(method = "canUseAsStorage(Lnet/minecraft/world/level/block/entity/BlockEntity;)Z", at = @At("HEAD"), cancellable = true)
@Inject(method = "canUseAsStorage(Lnet/minecraft/world/level/block/entity/BlockEntity;)Z", at = @At("HEAD"), cancellable = true, remap = false)
private static void canUseVoidChestAsStorage(BlockEntity be, CallbackInfoReturnable<Boolean> cir) {
if (be instanceof VoidChestTileEntity)
cir.setReturnValue(true);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package me.duquee.createutilities.networking.packets;

import com.simibubi.create.foundation.networking.SimplePacketBase;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import com.tterrag.registrate.fabric.EnvExecutor;

import me.duquee.createutilities.CreateUtilitiesClient;
import me.duquee.createutilities.blocks.voidtypes.battery.VoidBattery;
import me.duquee.createutilities.blocks.voidtypes.motor.VoidMotorNetworkHandler.NetworkKey;
import net.fabricmc.api.EnvType;
import net.minecraft.network.FriendlyByteBuf;
import team.reborn.energy.api.base.SimpleEnergyStorage;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.network.NetworkEvent;

public class VoidBatteryUpdatePacket extends SimplePacketBase {

Expand All @@ -34,8 +33,8 @@ public void write(FriendlyByteBuf buffer) {
}

@Override
public boolean handle(Context context) {
context.enqueueWork(() -> EnvExecutor.runWhenOn(EnvType.CLIENT, () -> () ->
public boolean handle(NetworkEvent.Context context) {
context.enqueueWork(() -> DistExecutor.runWhenOn(Dist.CLIENT, () -> () ->
CreateUtilitiesClient.VOID_BATTERIES.storages.put(key, battery)
));
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public void write(FriendlyByteBuf buffer) {
@Override
public boolean handle(NetworkEvent.Context context) {
context.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () ->
CreateUtilitiesClient.VOID_TANKS.clientTanks.put(key, tank)));
CreateUtilitiesClient.VOID_TANKS.storages.put(key, tank)));
return true;
}

Expand Down
Loading

0 comments on commit 64036f6

Please sign in to comment.