diff --git a/runs/client/usercache.json b/runs/client/usercache.json index c9c4e9821..71caae29c 100644 --- a/runs/client/usercache.json +++ b/runs/client/usercache.json @@ -1 +1 @@ -[{"name":"Dev","uuid":"380df991-f603-344c-a090-369bad2a924a","expiresOn":"2024-12-25 20:15:16 -0600"}] \ No newline at end of file +[{"name":"Dev","uuid":"380df991-f603-344c-a090-369bad2a924a","expiresOn":"2025-01-10 19:18:34 -0600"}] \ No newline at end of file diff --git a/src/main/java/electrodynamics/common/network/type/FluidNetwork.java b/src/main/java/electrodynamics/common/network/type/FluidNetwork.java index 6c4f05c26..7accf1b69 100644 --- a/src/main/java/electrodynamics/common/network/type/FluidNetwork.java +++ b/src/main/java/electrodynamics/common/network/type/FluidNetwork.java @@ -80,7 +80,10 @@ public FluidStack emit(FluidStack transfer, ArrayList ignored, bool availableAcceptors.addAll(acceptorSet); availableAcceptors.removeAll(ignored); - availableAcceptors.removeAll(priorityFilled.getSecond()); + + if(priorityFilled.getSecond().size() > 0) { + availableAcceptors.removeAll(priorityFilled.getSecond()); + } if (availableAcceptors.isEmpty()) { return FluidStack.EMPTY; @@ -98,7 +101,7 @@ public FluidStack emit(FluidStack transfer, ArrayList ignored, bool for (BlockEntity tile : availableAcceptors) { - perTile = new FluidStack(initial.getFluid(), initial.getAmount() / size); + perTile = new FluidStack(initial.getFluid(), (int) ((double) initial.getAmount() / (double) size)); prePerTile = perTile.copy(); connections = acceptorInputMap.getOrDefault(tile, new HashSet<>()); @@ -107,7 +110,7 @@ public FluidStack emit(FluidStack transfer, ArrayList ignored, bool for (Direction dir : connections) { - perConnection = new FluidStack(initial.getFluid(), perTile.getAmount() / connectionsSize); + perConnection = new FluidStack(initial.getFluid(), (int) ((double) perTile.getAmount() / (double) connectionsSize)); prePerConnection = perConnection.copy(); amtTaken = FluidUtilities.receiveFluid(tile, dir, perConnection, false); @@ -273,7 +276,7 @@ public boolean isConductorClass(BlockEntity tile) { @Override public boolean isAcceptor(BlockEntity acceptor, Direction orientation) { - return FluidUtilities.isFluidReceiver(acceptor, orientation); + return FluidUtilities.isFluidReceiver(acceptor, orientation.getOpposite()); } @Override diff --git a/src/main/java/electrodynamics/common/tile/pipelines/fluid/GenericTileFluidPipe.java b/src/main/java/electrodynamics/common/tile/pipelines/fluid/GenericTileFluidPipe.java index a04eb4ebe..c3035d038 100644 --- a/src/main/java/electrodynamics/common/tile/pipelines/fluid/GenericTileFluidPipe.java +++ b/src/main/java/electrodynamics/common/tile/pipelines/fluid/GenericTileFluidPipe.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.HashSet; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; import electrodynamics.api.network.cable.type.IFluidPipe; @@ -66,12 +67,10 @@ public boolean isFluidValid(int tank, FluidStack stack) { @Override public int fill(FluidStack resource, FluidAction action) { - if (action == FluidAction.SIMULATE || getNetwork() == null) { + if (action == FluidAction.SIMULATE || getNetwork() == null || resource.isEmpty()) { return 0; } - ArrayList ignored = new ArrayList<>(); - ignored.add(level.getBlockEntity(new BlockPos(worldPosition).relative(dir))); - return fluidNetwork.emit(resource, ignored, false).getAmount(); + return fluidNetwork.emit(resource, Lists.newArrayList(level.getBlockEntity(new BlockPos(worldPosition).relative(dir))), false).getAmount(); } @Override diff --git a/src/main/java/electrodynamics/datagen/client/ElectrodynamicsBlockStateProvider.java b/src/main/java/electrodynamics/datagen/client/ElectrodynamicsBlockStateProvider.java index f204f2695..f272a3b0c 100644 --- a/src/main/java/electrodynamics/datagen/client/ElectrodynamicsBlockStateProvider.java +++ b/src/main/java/electrodynamics/datagen/client/ElectrodynamicsBlockStateProvider.java @@ -29,7 +29,6 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.PressurePlateBlock; import net.minecraft.world.level.block.SnowyDirtBlock; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @@ -535,7 +534,7 @@ public ItemModelBuilder horrRotatedBlock(Block block, ModelFile file, int yRotat } public ItemModelBuilder horrRotatedLitBlock(DeferredHolder block, ModelFile off, ModelFile on, boolean registerItem) { - return horrRotatedBlock(block, on, 0, 0, registerItem); + return horrRotatedLitBlock(block, off, on, 0, 0, registerItem); } public ItemModelBuilder horrRotatedLitBlock(DeferredHolder block, ModelFile off, ModelFile on, int yRotationOffset, int xRotation, boolean registerItem) { diff --git a/src/main/java/electrodynamics/datagen/server/ElectrodynamicsLootTablesProvider.java b/src/main/java/electrodynamics/datagen/server/ElectrodynamicsLootTablesProvider.java index b7d12e4a1..6fd90b696 100644 --- a/src/main/java/electrodynamics/datagen/server/ElectrodynamicsLootTablesProvider.java +++ b/src/main/java/electrodynamics/datagen/server/ElectrodynamicsLootTablesProvider.java @@ -201,12 +201,12 @@ public void addMachineTable(Block block, DeferredHolder< * @param reg The block that will be added * @author SeaRobber69 */ - public void addSilkTouchOnlyTable(DeferredHolder reg) { + public void addSilkTouchOnlyTable(DeferredHolder reg) { Block block = reg.get(); add(block, createSilkTouchOnlyTable(name(block), block)); } - public void addFortuneAndSilkTouchTable(DeferredHolder reg, Item nonSilk, int minDrop, int maxDrop) { + public void addFortuneAndSilkTouchTable(DeferredHolder reg, Item nonSilk, int minDrop, int maxDrop) { addFortuneAndSilkTouchTable(reg.get(), nonSilk, minDrop, maxDrop); } @@ -214,7 +214,7 @@ public void addFortuneAndSilkTouchTable(Block block, Item nonSilk, int minDrop, add(block, createSilkTouchAndFortuneTable(name(block), block, nonSilk, minDrop, maxDrop)); } - public void addSimpleBlock(DeferredHolder reg) { + public void addSimpleBlock(DeferredHolder reg) { addSimpleBlock(reg.get()); } diff --git a/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluid2item/ElectrodynamicsChemicalCrystallizerRecipes.java b/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluid2item/ElectrodynamicsChemicalCrystallizerRecipes.java index 9b6926944..4c658f3fe 100644 --- a/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluid2item/ElectrodynamicsChemicalCrystallizerRecipes.java +++ b/src/main/java/electrodynamics/datagen/server/recipe/types/custom/fluid2item/ElectrodynamicsChemicalCrystallizerRecipes.java @@ -18,7 +18,7 @@ public class ElectrodynamicsChemicalCrystallizerRecipes extends AbstractRecipeGe public static double CHEMICALCRYSTALLIZER_USAGE_PER_TICK = 800.0; public static int CHEMICALCRYSTALLIZER_REQUIRED_TICKS = 200; - private final String modID; + public final String modID; public ElectrodynamicsChemicalCrystallizerRecipes(String modID) { this.modID = modID; diff --git a/src/main/java/electrodynamics/prefab/properties/Property.java b/src/main/java/electrodynamics/prefab/properties/Property.java index fa542ad38..c6d43a73e 100644 --- a/src/main/java/electrodynamics/prefab/properties/Property.java +++ b/src/main/java/electrodynamics/prefab/properties/Property.java @@ -5,7 +5,6 @@ import electrodynamics.Electrodynamics; import electrodynamics.common.packet.types.server.PacketSendUpdatePropertiesServer; -import electrodynamics.registers.ElectrodynamicsBlocks; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.Block; @@ -129,6 +128,10 @@ public Property set(Object updated) { public void forceDirty() { if (!manager.getOwner().getLevel().isClientSide()) { manager.setDirty(this); + } else { + CompoundTag data = new CompoundTag(); + saveToTag(data, manager.getOwner().getLevel().registryAccess()); + PacketDistributor.sendToServer(new PacketSendUpdatePropertiesServer(data, getIndex(), manager.getOwner().getBlockPos())); } }