From f93f35b67ad5ec467896b89f0561a5e44864c656 Mon Sep 17 00:00:00 2001 From: Oier Bravo Urtasun Date: Sat, 29 Mar 2025 04:07:24 +0100 Subject: [PATCH] - CycleBehavior fix. - Jade progress literal fix. - SolidRendererFluid --- gradle.properties | 2 +- .../blockEntity/behaviour/CycleBehavior.java | 6 +- .../recipe/AbstractMechanicalRecipe.java | 4 +- .../MechanicalProgressComponentProvider.java | 2 +- ...anicalSolidRenderedPlaceableFluidType.java | 59 +++++++++++++++++++ 5 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/oierbravo/mechanicals/register/fluid/MechanicalSolidRenderedPlaceableFluidType.java diff --git a/gradle.properties b/gradle.properties index 6e16eb9..75e7f12 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,7 @@ parchment_version = 2024.11.17 mod_id=mechanicals mod_name=Mechanicals Lib mod_license=LGPL3 -mod_version=0.1.19 +mod_version=0.1.23 mod_group_id=com.oierbravo mod_author=oierbravo mod_description=Utility Library for Create Addons. diff --git a/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/CycleBehavior.java b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/CycleBehavior.java index 6ac404a..acfd2fd 100644 --- a/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/CycleBehavior.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/CycleBehavior.java @@ -124,11 +124,11 @@ public class CycleBehavior extends BlockEntityBehaviour { prevRunningTicks = runningTicks; runningTicks += getRunningTickSpeed(); - if (prevRunningTicks < cycleTime / 2 && runningTicks >= cycleTime / cycleDivider) { - runningTicks = cycleTime / 2; + if (prevRunningTicks < cycleTime / cycleDivider && runningTicks >= cycleTime / cycleDivider) { + runningTicks = cycleTime / cycleDivider; // Pause the ticks until a packet is received if (level.isClientSide && !blockEntity.isVirtual()) - runningTicks = -(cycleTime / 2); + runningTicks = -(cycleTime / cycleDivider); } } diff --git a/src/main/java/com/oierbravo/mechanicals/foundation/recipe/AbstractMechanicalRecipe.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/AbstractMechanicalRecipe.java index e7758e7..fed2ee5 100644 --- a/src/main/java/com/oierbravo/mechanicals/foundation/recipe/AbstractMechanicalRecipe.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/AbstractMechanicalRecipe.java @@ -25,7 +25,9 @@ public abstract class AbstractMechanicalRecipe getConditions(){ return conditions; } diff --git a/src/main/java/com/oierbravo/mechanicals/jade/MechanicalProgressComponentProvider.java b/src/main/java/com/oierbravo/mechanicals/jade/MechanicalProgressComponentProvider.java index a2caa7d..9fb1eb9 100644 --- a/src/main/java/com/oierbravo/mechanicals/jade/MechanicalProgressComponentProvider.java +++ b/src/main/java/com/oierbravo/mechanicals/jade/MechanicalProgressComponentProvider.java @@ -26,7 +26,7 @@ public class MechanicalProgressComponentProvider implements IBlockComponentProvi if(progress > 0){ IElementHelper helper = IElementHelper.get(); ProgressStyle progressStyle = helper.progressStyle().textColor(1); - tooltip.add(helper.progress((float)progress / 100, LibLang.translate("progress", progress).component().withColor(java.awt.Color.GRAY.getRGB()), progressStyle.color(java.awt.Color.YELLOW.getRGB()), BoxStyle.getTransparent(), false)); + tooltip.add(helper.progress((float)progress / 100, LibLang.translate("ui.progress", progress).component().withColor(java.awt.Color.GRAY.getRGB()), progressStyle.color(java.awt.Color.YELLOW.getRGB()), BoxStyle.getTransparent(), false)); } } diff --git a/src/main/java/com/oierbravo/mechanicals/register/fluid/MechanicalSolidRenderedPlaceableFluidType.java b/src/main/java/com/oierbravo/mechanicals/register/fluid/MechanicalSolidRenderedPlaceableFluidType.java new file mode 100644 index 0000000..73c85f3 --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/register/fluid/MechanicalSolidRenderedPlaceableFluidType.java @@ -0,0 +1,59 @@ +package com.oierbravo.mechanicals.register.fluid; + +import com.simibubi.create.AllFluids; +import com.tterrag.registrate.builders.FluidBuilder; +import net.createmod.catnip.theme.Color; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.material.FluidState; +import net.neoforged.neoforge.fluids.FluidStack; +import org.joml.Vector3f; + +import java.util.function.Supplier; + +public class MechanicalSolidRenderedPlaceableFluidType extends AllFluids.TintedFluidType { + + private Vector3f fogColor; + private Supplier fogDistance; + + public static FluidBuilder.FluidTypeFactory create(int fogColor, Supplier fogDistance) { + return (p, s, f) -> { + MechanicalSolidRenderedPlaceableFluidType fluidType = new MechanicalSolidRenderedPlaceableFluidType(p, s, f); + fluidType.fogColor = new Color(fogColor, false).asVectorF(); + fluidType.fogDistance = fogDistance; + return fluidType; + }; + } + + private MechanicalSolidRenderedPlaceableFluidType(Properties properties, ResourceLocation stillTexture, + ResourceLocation flowingTexture) { + super(properties, stillTexture, flowingTexture); + } + + @Override + protected int getTintColor(FluidStack stack) { + return NO_TINT; + } + + /* + * Removing alpha from tint prevents optifine from forcibly applying biome + * colors to modded fluids (this workaround only works for fluids in the solid + * render layer) + */ + @Override + public int getTintColor(FluidState state, BlockAndTintGetter world, BlockPos pos) { + return 0x00ffffff; + } + + @Override + protected Vector3f getCustomFogColor() { + return fogColor; + } + + @Override + protected float getFogDistanceModifier() { + return fogDistance.get(); + } + + } \ No newline at end of file