Skip to content

Commit

Permalink
made FluidPlatformUtils instance manually set instead of using java s…
Browse files Browse the repository at this point in the history
…ervices for it
  • Loading branch information
Trinsdar committed Mar 8, 2024
1 parent 53b64dd commit 04d7738
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 24 deletions.
40 changes: 20 additions & 20 deletions common/src/main/java/tesseract/FluidPlatformUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,31 @@
import java.util.function.Consumer;
import java.util.function.Predicate;

public interface FluidPlatformUtils {
FluidPlatformUtils INSTANCE = ServiceLoader.load(FluidPlatformUtils.class).findFirst().orElseThrow(() -> new IllegalStateException("No implementation of FluidPlatformUtils found"));
public abstract class FluidPlatformUtils {
public static FluidPlatformUtils INSTANCE; // = ServiceLoader.load(FluidPlatformUtils.class).findFirst().orElseThrow(() -> new IllegalStateException("No implementation of FluidPlatformUtils found"));
//public static FluidPlatformUtils INSTANCE = new FluidPlatformUtils();

static FluidHolder createFluidStack(Fluid fluid, long amount){
public static FluidHolder createFluidStack(Fluid fluid, long amount){
return FluidHooks.newFluidHolder(fluid,amount, null);
}

ResourceLocation getStillTexture(Fluid fluid);
public abstract ResourceLocation getStillTexture(Fluid fluid);

ResourceLocation getFlowingTexture(Fluid fluid);
public abstract ResourceLocation getFlowingTexture(Fluid fluid);

ResourceLocation getFluidId(Fluid fluid);
public abstract ResourceLocation getFluidId(Fluid fluid);

int getFluidTemperature(Fluid fluid);
public abstract int getFluidTemperature(Fluid fluid);

int getFluidDensity(Fluid fluid);
public abstract int getFluidDensity(Fluid fluid);

boolean isFluidGaseous(Fluid fluid);
public abstract boolean isFluidGaseous(Fluid fluid);

int getFluidColor(Fluid fluid);
public abstract int getFluidColor(Fluid fluid);

SoundEvent getFluidSound(Fluid fluid, boolean fill);
public abstract SoundEvent getFluidSound(Fluid fluid, boolean fill);

Component getFluidDisplayName(FluidHolder fluid);
public abstract Component getFluidDisplayName(FluidHolder fluid);

/**
* Fill a destination fluid handler from a source fluid handler with a max amount.
Expand All @@ -57,7 +57,7 @@ static FluidHolder createFluidStack(Fluid fluid, long amount){
* @return the fluidStack that was transferred from the source to the destination. null on failure.
*/
@NotNull
default FluidHolder tryFluidTransfer(PlatformFluidHandler fluidDestination, PlatformFluidHandler fluidSource, long maxAmount, boolean doTransfer) {
public FluidHolder tryFluidTransfer(PlatformFluidHandler fluidDestination, PlatformFluidHandler fluidSource, long maxAmount, boolean doTransfer) {
for (int i = 0; i < fluidSource.getTankAmount(); i++) {
FluidHolder fluid = fluidSource.getFluidInTank(i);
FluidHolder transfer = tryFluidTransfer(fluidDestination, fluidSource, fluid.copyWithAmount(Math.min(fluid.getFluidAmount(), maxAmount)), doTransfer);
Expand All @@ -78,7 +78,7 @@ default FluidHolder tryFluidTransfer(PlatformFluidHandler fluidDestination, Plat
* @return the FluidHolder that was transferred from the source to the destination. null on failure.
*/
@NotNull
default FluidHolder tryFluidTransfer(PlatformFluidHandler fluidDestination, PlatformFluidHandler fluidSource, FluidHolder resource, boolean doTransfer)
public FluidHolder tryFluidTransfer(PlatformFluidHandler fluidDestination, PlatformFluidHandler fluidSource, FluidHolder resource, boolean doTransfer)
{
FluidHolder drainable = fluidSource.extractFluid(resource, true);
if (!drainable.isEmpty() && resource.matches(drainable))
Expand Down Expand Up @@ -119,15 +119,15 @@ private static FluidHolder tryFluidTransfer_Internal(PlatformFluidHandler fluidD
return FluidHooks.emptyFluid();
}

default boolean fillItemFromContainer(ItemStack stack, PlatformFluidHandler handler, Consumer<ItemStack> consumer){
public boolean fillItemFromContainer(ItemStack stack, PlatformFluidHandler handler, Consumer<ItemStack> consumer){
return fillItemFromContainer(stack, handler, s -> true, consumer);
}

default boolean emptyItemIntoContainer(ItemStack stack, PlatformFluidHandler handler, Consumer<ItemStack> consumer){
public boolean emptyItemIntoContainer(ItemStack stack, PlatformFluidHandler handler, Consumer<ItemStack> consumer){
return emptyItemIntoContainer(stack, handler, s -> true, consumer);
}

default boolean fillItemFromContainer(ItemStack stack, PlatformFluidHandler handler, Predicate<ItemStack> tester, Consumer<ItemStack> consumer){
public boolean fillItemFromContainer(ItemStack stack, PlatformFluidHandler handler, Predicate<ItemStack> tester, Consumer<ItemStack> consumer){
PlatformFluidItemHandler itemHandler = FluidHooks.safeGetItemFluidManager(stack.copy()).orElse(null);
if (itemHandler == null) return false;
for (int i = 0; i < handler.getTankAmount(); i++) {
Expand All @@ -149,7 +149,7 @@ default boolean fillItemFromContainer(ItemStack stack, PlatformFluidHandler hand
return false;
}

default boolean emptyItemIntoContainer(ItemStack stack, PlatformFluidHandler handler, Predicate<ItemStack> tester, Consumer<ItemStack> consumer){
public boolean emptyItemIntoContainer(ItemStack stack, PlatformFluidHandler handler, Predicate<ItemStack> tester, Consumer<ItemStack> consumer){
PlatformFluidItemHandler itemHandler = FluidHooks.safeGetItemFluidManager(stack.copy()).orElse(null);
if (itemHandler == null) return false;
for (int i = 0; i < itemHandler.getTankAmount(); i++) {
Expand All @@ -173,7 +173,7 @@ default boolean emptyItemIntoContainer(ItemStack stack, PlatformFluidHandler han
return false;
}

default void writeToPacket(FriendlyByteBuf buffer, FluidHolder holder) {
public void writeToPacket(FriendlyByteBuf buffer, FluidHolder holder) {
if (holder.isEmpty()) {
buffer.writeBoolean(false);
} else {
Expand All @@ -184,7 +184,7 @@ default void writeToPacket(FriendlyByteBuf buffer, FluidHolder holder) {
}
}

default FluidHolder readFromPacket(FriendlyByteBuf buffer) {
public FluidHolder readFromPacket(FriendlyByteBuf buffer) {
if (!buffer.readBoolean()) return FluidHooks.emptyFluid();
Fluid fluid = Registry.FLUID.byId(buffer.readVarInt());
long amount = buffer.readVarLong();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import net.minecraft.world.level.material.Fluid;
import tesseract.FluidPlatformUtils;

public class FluidPlatformUtilsImpl implements FluidPlatformUtils {
public class FluidPlatformUtilsImpl extends FluidPlatformUtils {

public ResourceLocation getStillTexture(Fluid fluid){
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) {
Expand Down
11 changes: 11 additions & 0 deletions fabric/src/main/java/tesseract/fabric/TesseractPreLoad.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package tesseract.fabric;

import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint;
import tesseract.FluidPlatformUtils;

public class TesseractPreLoad implements PreLaunchEntrypoint {
@Override
public void onPreLaunch() {
FluidPlatformUtils.INSTANCE = new FluidPlatformUtilsImpl();
}
}

This file was deleted.

3 changes: 3 additions & 0 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
"entrypoints": {
"main": [
"tesseract.fabric.TesseractImpl"
],
"preLaunch" : [
"tesseract.fabric.TesseractPreLoad"
]
},
"depends": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import net.minecraft.world.level.material.Fluid;
import tesseract.FluidPlatformUtils;

public class FluidPlatformUtilsImpl implements FluidPlatformUtils {
public class FluidPlatformUtilsImpl extends FluidPlatformUtils {

public ResourceLocation getStillTexture(Fluid fluid){
return fluid.getAttributes().getStillTexture();
Expand Down
2 changes: 2 additions & 0 deletions forge/src/main/java/tesseract/forge/TesseractImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import net.minecraftforge.event.server.ServerStoppedEvent;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fml.common.Mod;
import tesseract.FluidPlatformUtils;
import tesseract.Tesseract;
import tesseract.api.GraphWrapper;
import tesseract.api.context.TesseractItemContext;
Expand All @@ -30,6 +31,7 @@ public class TesseractImpl extends Tesseract {
public static GraphWrapper<GTTransaction, IGTCable, IGTNode> GT_ENERGY = new GraphWrapper<>(Energy::new, IGTNode.GT_GETTER);

public TesseractImpl() {
FluidPlatformUtils.INSTANCE = new FluidPlatformUtilsImpl();
Tesseract.init();
MinecraftForge.EVENT_BUS.addListener(this::serverStoppedEvent);
MinecraftForge.EVENT_BUS.addListener(this::worldUnloadEvent);
Expand Down

This file was deleted.

0 comments on commit 04d7738

Please sign in to comment.