From 53117999880113912ef67a71f3263d46ec8401f0 Mon Sep 17 00:00:00 2001 From: HypherionSA Date: Thu, 29 Dec 2022 18:15:42 +0200 Subject: [PATCH] Initial 1.19.3 Porting with new Creative Tab API --- .idea/misc.xml | 5 -- .../api/inventory/CraterCreativeModeTab.java | 71 +++++++++++++++++++ .../client/gui/config/CraterConfigScreen.java | 2 +- .../config/widgets/AbstractConfigWidget.java | 4 +- .../client/gui/config/widgets/BaseWidget.java | 6 +- .../config/widgets/InternalConfigButton.java | 9 +-- .../gui/config/widgets/SubConfigWidget.java | 3 +- .../gui/config/widgets/ToggleButton.java | 2 +- .../client/gui/tabs/CreativeTabBuilder.java | 48 ------------- .../common/network/BaseNetworkPacket.java | 6 -- .../platform/services/LibCommonHelper.java | 1 - .../systems/internal/CreativeTabRegistry.java | 21 ++++++ .../craterlib/util/RenderUtils.java | 2 +- .../craterlib/CraterLibInitializer.java | 8 +-- .../client/CraterLibClientInitializer.java | 3 +- .../craterlib/client/FabricClientHelper.java | 6 ++ .../client/gui/widgets/FluidStackWidget.java | 16 +++-- .../craterlib/common/FabricCommonHelper.java | 19 ----- .../craterlib/systems/fluid/FluidUtils.java | 5 +- Fabric/src/main/resources/fabric.mod.json | 2 +- .../client/gui/widgets/FluidStackWidget.java | 20 +++--- .../craterlib/common/ForgeCommonEvents.java | 28 ++++++++ .../craterlib/common/ForgeCommonHelper.java | 23 ++---- Forge/src/main/resources/META-INF/mods.toml | 6 +- build.gradle | 2 +- gradle.properties | 10 +-- 26 files changed, 182 insertions(+), 146 deletions(-) create mode 100644 Common/src/main/java/me/hypherionmc/craterlib/api/inventory/CraterCreativeModeTab.java delete mode 100644 Common/src/main/java/me/hypherionmc/craterlib/client/gui/tabs/CreativeTabBuilder.java delete mode 100644 Common/src/main/java/me/hypherionmc/craterlib/common/network/BaseNetworkPacket.java create mode 100644 Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java create mode 100644 Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 2ed7d25..88a2c85 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -12,9 +12,4 @@ - - - \ No newline at end of file diff --git a/Common/src/main/java/me/hypherionmc/craterlib/api/inventory/CraterCreativeModeTab.java b/Common/src/main/java/me/hypherionmc/craterlib/api/inventory/CraterCreativeModeTab.java new file mode 100644 index 0000000..78df225 --- /dev/null +++ b/Common/src/main/java/me/hypherionmc/craterlib/api/inventory/CraterCreativeModeTab.java @@ -0,0 +1,71 @@ +package me.hypherionmc.craterlib.api.inventory; + +import me.hypherionmc.craterlib.systems.internal.CreativeTabRegistry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.ItemStack; + +import java.util.function.Supplier; + +public class CraterCreativeModeTab implements Supplier { + + private final ResourceLocation resourceLocation; + private final ItemStack icon; + private final String backgroundSuffix; + private CreativeModeTab tab; + + protected CraterCreativeModeTab(Builder builder) { + this.resourceLocation = builder.location; + this.icon = builder.stack == null ? ItemStack.EMPTY : builder.stack; + this.backgroundSuffix = builder.backgroundSuffix == null ? "" : builder.backgroundSuffix; + + CreativeTabRegistry.registerTab(this); + } + + public ResourceLocation getResourceLocation() { + return this.resourceLocation; + } + + public ItemStack getIcon() { + return icon; + } + + public String getBackgroundSuffix() { + return backgroundSuffix; + } + + public void setTab(CreativeModeTab tab) { + this.tab = tab; + } + + public static class Builder { + private final ResourceLocation location; + private ItemStack stack; + private String backgroundSuffix; + + public Builder(ResourceLocation location) { + this.location = location; + } + + public Builder setIcon(ItemStack icon) { + stack = icon; + return this; + } + + public Builder backgroundSuffix(String backgroundSuffix) { + this.backgroundSuffix = backgroundSuffix; + return this; + } + + public CraterCreativeModeTab build() { + return new CraterCreativeModeTab(this); + } + + } + + @Override + public CreativeModeTab get() { + return tab == null ? CreativeModeTabs.getDefaultTab() : tab; + } +} diff --git a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java index 10e4048..98b626e 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/CraterConfigScreen.java @@ -2,7 +2,6 @@ package me.hypherionmc.craterlib.client.gui.config; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; -import com.mojang.math.Matrix4f; import me.hypherionmc.craterlib.CraterConstants; import me.hypherionmc.craterlib.client.gui.config.widgets.*; import me.hypherionmc.craterlib.common.config.ModuleConfig; @@ -17,6 +16,7 @@ import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; +import org.joml.Matrix4f; import javax.annotation.Nullable; import java.lang.reflect.Field; diff --git a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java index be8a035..0915523 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/AbstractConfigWidget.java @@ -19,8 +19,8 @@ public class AbstractConfigWidget extends BaseWidge public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) { super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta); int i = (widget instanceof EditBox ? 1 : 0); - widget.x = x + width - 200 - resetButtonOffset + i; - widget.y = y + i + 1; + widget.setX(x + width - 200 - resetButtonOffset + i); + widget.setY(y + i + 1); widget.render(matrices, mouseX, mouseY, delta); } } diff --git a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java index 2b47dba..9d15d5e 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/BaseWidget.java @@ -16,7 +16,7 @@ import net.minecraft.network.chat.TextColor; public class BaseWidget extends Option { public static final int resetButtonOffset = 48; - private final Button resetButton = addChild(new Button(0, 0, 46, 20, Component.literal("Reset"), this::onResetPressed)); + private final Button resetButton = addChild(Button.builder(Component.literal("Reset"), this::onResetPressed).size(46, 20).build()); private boolean hideReset = false; private boolean isSubConfig = false; @@ -51,8 +51,8 @@ public class BaseWidget extends Option { text.withStyle(ChatFormatting.GRAY); } font.draw(matrices, text, x, y + 8, 0xFFFFFF); - resetButton.x = x + width - 46; - resetButton.y = y + 1; + resetButton.setX(x + width - 46); + resetButton.setY(y + 1); resetButton.active = isNotDefault(); if (!hideReset) { resetButton.render(matrices, mouseX, mouseY, delta); diff --git a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java index 7bbff7b..2858392 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/InternalConfigButton.java @@ -30,6 +30,11 @@ public class InternalConfigButton extends AbstractButton { super.render(poseStack, i, j, f); } + @Override + protected void updateWidgetNarration(NarrationElementOutput narrationElementOutput) { + narrationElementOutput.add(NarratedElementType.USAGE, getMessage()); + } + @Override public void onPress() { if (cancel) { @@ -39,9 +44,5 @@ public class InternalConfigButton extends AbstractButton { } } - @Override - public void updateNarration(NarrationElementOutput narrationElementOutput) { - narrationElementOutput.add(NarratedElementType.USAGE, getMessage()); - } } diff --git a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java index cff7602..d3e60fe 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/SubConfigWidget.java @@ -19,7 +19,8 @@ public class SubConfigWidget extends AbstractConfigWidget { this.config = config; this.subConfig = subConfig; this.screen = screen; - this.widget = addChild(new Button(0, 0, 200, buttonHeight, Component.translatable("t.clc.opensubconfig"), this::openSubConfig)); + + this.widget = addChild(Button.builder(Component.translatable("t.clc.opensubconfig"), this::openSubConfig).size(200, buttonHeight).build()); } @Override diff --git a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java index 0a594da..b2774d2 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/config/widgets/ToggleButton.java @@ -18,7 +18,7 @@ public class ToggleButton extends AbstractConfigWidget { public ToggleButton(List options, Function toComponent) { this.options = options; this.toComponent = toComponent; - this.widget = addChild(new Button(0, 0, buttonWidth, buttonHeight, Component.empty(), this::switchNext)); + this.widget = addChild(Button.builder(Component.empty(), this::switchNext).size(buttonWidth, buttonHeight).build()); } @Override diff --git a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/tabs/CreativeTabBuilder.java b/Common/src/main/java/me/hypherionmc/craterlib/client/gui/tabs/CreativeTabBuilder.java deleted file mode 100644 index 14c6ee6..0000000 --- a/Common/src/main/java/me/hypherionmc/craterlib/client/gui/tabs/CreativeTabBuilder.java +++ /dev/null @@ -1,48 +0,0 @@ -package me.hypherionmc.craterlib.client.gui.tabs; - -import me.hypherionmc.craterlib.platform.Platform; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; - -import java.util.function.Supplier; - -/** - * @author HypherionSA - * @date 16/06/2022 - * Provides a wrapper around Forge/Fabric to create a new Creative Tab - */ -public class CreativeTabBuilder { - - public static Builder builder(String modid, String tabid) { - return new Builder(modid, tabid); - } - - public static final class Builder { - - private Supplier tabIcon; - private final String modid; - private final String tabid; - private String backgroundPrefix; - - public Builder(String modid, String tabid) { - this.modid = modid; - this.tabid = tabid; - } - - public Builder setIcon(Supplier stack) { - this.tabIcon = stack; - return this; - } - - public Builder setBackgroundPrefix(String prefix) { - this.backgroundPrefix = prefix; - return this; - } - - public CreativeModeTab build() { - return Platform.COMMON_HELPER.tabBuilder(this.modid, this.tabid, this.tabIcon, this.backgroundPrefix); - } - - } - -} diff --git a/Common/src/main/java/me/hypherionmc/craterlib/common/network/BaseNetworkPacket.java b/Common/src/main/java/me/hypherionmc/craterlib/common/network/BaseNetworkPacket.java deleted file mode 100644 index 7c01b75..0000000 --- a/Common/src/main/java/me/hypherionmc/craterlib/common/network/BaseNetworkPacket.java +++ /dev/null @@ -1,6 +0,0 @@ -package me.hypherionmc.craterlib.common.network; - -// TODO: FINISH NETWORK IMPLEMENTATION -public interface BaseNetworkPacket { - -} diff --git a/Common/src/main/java/me/hypherionmc/craterlib/platform/services/LibCommonHelper.java b/Common/src/main/java/me/hypherionmc/craterlib/platform/services/LibCommonHelper.java index a6377f7..a3a966f 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/platform/services/LibCommonHelper.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/platform/services/LibCommonHelper.java @@ -36,5 +36,4 @@ public interface LibCommonHelper { /* FABRIC ONLY */ public void registerServerReceiver(ResourceLocation channelName, Function> factory); - public CreativeModeTab tabBuilder(String modid, String tabid, Supplier icon, String backgroundSuf); } diff --git a/Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java b/Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java new file mode 100644 index 0000000..5d7133c --- /dev/null +++ b/Common/src/main/java/me/hypherionmc/craterlib/systems/internal/CreativeTabRegistry.java @@ -0,0 +1,21 @@ +package me.hypherionmc.craterlib.systems.internal; + +import me.hypherionmc.craterlib.api.inventory.CraterCreativeModeTab; +import org.jetbrains.annotations.ApiStatus; + +import java.util.ArrayList; +import java.util.List; + +@ApiStatus.Internal +public class CreativeTabRegistry { + + private static final List TABS = new ArrayList<>(); + public static void registerTab(CraterCreativeModeTab tab) { + TABS.add(tab); + } + + public static List getTABS() { + return TABS; + } + +} diff --git a/Common/src/main/java/me/hypherionmc/craterlib/util/RenderUtils.java b/Common/src/main/java/me/hypherionmc/craterlib/util/RenderUtils.java index d41048b..be98707 100644 --- a/Common/src/main/java/me/hypherionmc/craterlib/util/RenderUtils.java +++ b/Common/src/main/java/me/hypherionmc/craterlib/util/RenderUtils.java @@ -1,9 +1,9 @@ package me.hypherionmc.craterlib.util; -import com.mojang.math.Vector4f; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.world.item.DyeColor; +import org.joml.Vector4f; import java.awt.*; diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java b/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java index 252213d..62d4c49 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java @@ -3,14 +3,8 @@ package me.hypherionmc.craterlib; import me.hypherionmc.craterlib.common.FabricCommonHelper; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; -import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; -public class CraterLibInitializer implements ModInitializer, PreLaunchEntrypoint { - - @Override - public void onPreLaunch() { - - } +public class CraterLibInitializer implements ModInitializer { @Override public void onInitialize() { diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/client/CraterLibClientInitializer.java b/Fabric/src/main/java/me/hypherionmc/craterlib/client/CraterLibClientInitializer.java index 973dd03..3ed237c 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/client/CraterLibClientInitializer.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/client/CraterLibClientInitializer.java @@ -1,11 +1,12 @@ package me.hypherionmc.craterlib.client; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; public class CraterLibClientInitializer implements ClientModInitializer { @Override public void onInitializeClient() { - + ItemGroupEvents.MODIFY_ENTRIES_ALL.register(FabricClientHelper::registerCreativeItems); } } diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/client/FabricClientHelper.java b/Fabric/src/main/java/me/hypherionmc/craterlib/client/FabricClientHelper.java index e969149..759f2c2 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/client/FabricClientHelper.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/client/FabricClientHelper.java @@ -9,6 +9,7 @@ import me.hypherionmc.craterlib.util.ColorPropertyFunction; import net.fabricmc.api.EnvType; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries; import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry; import net.fabricmc.loader.api.FabricLoader; @@ -18,6 +19,7 @@ import net.minecraft.network.Connection; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -84,4 +86,8 @@ public class FabricClientHelper implements LibClientHelper { client.execute(() -> packet.handle(client.player, client)); }); } + + public static void registerCreativeItems(CreativeModeTab tab, FabricItemGroupEntries entries) { + + } } diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java b/Fabric/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java index 5b0052f..fbe2d8d 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java @@ -63,33 +63,35 @@ public class FluidStackWidget extends AbstractWidget { float filledVolume = stored / capacity; int renderableHeight = (int) (filledVolume * height); - int atlasWidth = (int) (still.getWidth() / (still.getU1() - still.getU0())); - int atlasHeight = (int) (still.getHeight() / (still.getV1() - still.getV0())); + int atlasWidth = (int) (still.getX() / (still.getU1() - still.getU0())); + int atlasHeight = (int) (still.getY() / (still.getV1() - still.getV0())); matrices.pushPose(); matrices.translate(0, height - 16, 0); for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) { int drawingHeight = Math.min(16, renderableHeight - 16 * i); int notDrawingHeight = 16 - drawingHeight; - blit(matrices, x, y + notDrawingHeight, displayOn.getBlitOffset(), still.getU0() * atlasWidth, still.getV0() * atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight); + blit(matrices, getX(), getY() + notDrawingHeight, displayOn.getBlitOffset(), still.getU0() * atlasWidth, still.getV0() * atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight); matrices.translate(0, -16, 0); } RenderSystem.setShaderColor(1, 1, 1, 1); matrices.popPose(); } - renderToolTip(matrices, mouseX, mouseY); + //renderToolTip(matrices, mouseX, mouseY); } } - @Override + // TODO Fix Tooltips + /*@Override public void renderToolTip(PoseStack poseStack, int mouseX, int mouseY) { if (this.visible && this.isFocused() && isHoveredOrFocused()) { displayOn.renderTooltip(poseStack, Arrays.asList(LangUtils.getTooltipTitle(toolTipTitle), Component.literal((int) (((float) this.getFluid.get().getAmount() / this.getFluid.get().getCapacity()) * 100) + "%")), Optional.empty(), mouseX, mouseY); } - } + }*/ @Override - public void updateNarration(NarrationElementOutput narrationElementOutput) { + protected void updateWidgetNarration(NarrationElementOutput narrationElementOutput) { + } } diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/common/FabricCommonHelper.java b/Fabric/src/main/java/me/hypherionmc/craterlib/common/FabricCommonHelper.java index f57c61e..08d1d70 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/common/FabricCommonHelper.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/common/FabricCommonHelper.java @@ -4,7 +4,6 @@ import me.hypherionmc.craterlib.network.CraterNetworkHandler; import me.hypherionmc.craterlib.network.CraterPacket; import me.hypherionmc.craterlib.network.FabricNetworkHandler; import me.hypherionmc.craterlib.platform.services.LibCommonHelper; -import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; @@ -20,14 +19,11 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.MenuType; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; import org.apache.commons.lang3.function.TriFunction; import org.jetbrains.annotations.Nullable; import java.util.function.Consumer; import java.util.function.Function; -import java.util.function.Supplier; /** * @author HypherionSA @@ -83,19 +79,4 @@ public class FabricCommonHelper implements LibCommonHelper { return new ExtendedScreenHandlerType<>(constructor::apply); } - @Override - public CreativeModeTab tabBuilder(String modid, String tabid, Supplier icon, String backgroundSuf) { - FabricItemGroupBuilder tab = FabricItemGroupBuilder.create(new ResourceLocation(modid, tabid)); - - if (icon != null) { - tab.icon(icon); - } - - CreativeModeTab tab1 = tab.build(); - - if (backgroundSuf != null && !backgroundSuf.isEmpty()) { - tab1.setBackgroundSuffix(backgroundSuf); - } - return tab1; - } } diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/systems/fluid/FluidUtils.java b/Fabric/src/main/java/me/hypherionmc/craterlib/systems/fluid/FluidUtils.java index 664613f..41fed13 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/systems/fluid/FluidUtils.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/systems/fluid/FluidUtils.java @@ -4,6 +4,7 @@ import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.StringTag; import net.minecraft.resources.ResourceLocation; @@ -28,7 +29,7 @@ public class FluidUtils { return FluidVariant.blank(); if (tag.get(key) instanceof StringTag) { - return FluidVariant.of(Registry.FLUID.get(new ResourceLocation(tag.getString(key)))); + return FluidVariant.of(BuiltInRegistries.FLUID.get(new ResourceLocation(tag.getString(key)))); } else { CompoundTag compound = tag.getCompound(key); if (compound.contains("fk")) { @@ -41,7 +42,7 @@ public class FluidUtils { private static Fluid readLbaTag(CompoundTag tag) { if (tag.contains("ObjName") && tag.getString("Registry").equals("f")) { - return Registry.FLUID.get(new ResourceLocation(tag.getString("ObjName"))); + return BuiltInRegistries.FLUID.get(new ResourceLocation(tag.getString("ObjName"))); } else { return Fluids.EMPTY; } diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index e6823c2..b4c73c3 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -37,7 +37,7 @@ "depends": { "fabricloader": ">=0.14", "fabric": "*", - "minecraft": "1.19.2", + "minecraft": "1.19.3", "java": ">=17" } } diff --git a/Forge/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java b/Forge/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java index ead0b77..042fd89 100644 --- a/Forge/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java +++ b/Forge/src/main/java/me/hypherionmc/craterlib/client/gui/widgets/FluidStackWidget.java @@ -41,9 +41,6 @@ public class FluidStackWidget extends AbstractWidget { this.toolTipTitle = toolTipTitle; } - @Override - public void updateNarration(NarrationElementOutput pNarrationElementOutput) {} - @Override public void renderButton(PoseStack pPoseStack, int pMouseX, int pMouseY, float pPartialTicks) { Minecraft minecraft = Minecraft.getInstance(); @@ -74,15 +71,15 @@ public class FluidStackWidget extends AbstractWidget { float filledVolume = stored / capacity; int renderableHeight = (int)(filledVolume * height); - int atlasWidth = (int)(sprite.getWidth() / (sprite.getU1() - sprite.getU0())); - int atlasHeight = (int)(sprite.getHeight() / (sprite.getV1() - sprite.getV0())); + int atlasWidth = (int)(sprite.getY() / (sprite.getU1() - sprite.getU0())); + int atlasHeight = (int)(sprite.getY() / (sprite.getV1() - sprite.getV0())); pPoseStack.pushPose(); pPoseStack.translate(0, height-16, 0); for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) { int drawingHeight = Math.min(16, renderableHeight - 16*i); int notDrawingHeight = 16 - drawingHeight; - blit(pPoseStack, x, y + notDrawingHeight, displayOn.getBlitOffset(), sprite.getU0()*atlasWidth, sprite.getV0()*atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight); + blit(pPoseStack, getX(), getY() + notDrawingHeight, displayOn.getBlitOffset(), sprite.getU0()*atlasWidth, sprite.getV0()*atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight); pPoseStack.translate(0,-16, 0); } @@ -90,13 +87,20 @@ public class FluidStackWidget extends AbstractWidget { pPoseStack.popPose(); } } - renderToolTip(pPoseStack, pMouseX, pMouseY); + //renderToolTip(pPoseStack, pMouseX, pMouseY); } } + @Override + protected void updateWidgetNarration(NarrationElementOutput p_259858_) { + + } + + // TODO Fix Tooltips + /*@Override public void renderToolTip(PoseStack pPoseStack, int pMouseX, int pMouseY) { if (isActive() && isHovered) { displayOn.renderTooltip(pPoseStack, Arrays.asList(LangUtils.getTooltipTitle(toolTipTitle).getVisualOrderText(), Component.literal((int) (((float)this.getFluid.get().getFluidAmount() / this.getFluid.get().getCapacity()) * 100) + "%").getVisualOrderText()), pMouseX, pMouseY); } - } + }*/ } diff --git a/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java b/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java new file mode 100644 index 0000000..960f841 --- /dev/null +++ b/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonEvents.java @@ -0,0 +1,28 @@ +package me.hypherionmc.craterlib.common; + +import me.hypherionmc.craterlib.CraterConstants; +import me.hypherionmc.craterlib.systems.internal.CreativeTabRegistry; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraftforge.event.CreativeModeTabEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(modid = CraterConstants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) +public class ForgeCommonEvents { + + @SubscribeEvent + public static void buildContents(CreativeModeTabEvent.Register event) { + CraterConstants.LOG.info("Registering Creative Tabs"); + CreativeTabRegistry.getTABS().forEach(tab -> { + CreativeModeTab creativeModeTab = event.registerCreativeModeTab(tab.getResourceLocation(), builder -> { + builder.icon(tab::getIcon); + + if (!tab.getBackgroundSuffix().isEmpty()) { + builder.backgroundSuffix(tab.getBackgroundSuffix()); + } + }); + tab.setTab(creativeModeTab); + }); + } + +} diff --git a/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonHelper.java b/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonHelper.java index e1393ad..f1b9049 100644 --- a/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonHelper.java +++ b/Forge/src/main/java/me/hypherionmc/craterlib/common/ForgeCommonHelper.java @@ -20,6 +20,8 @@ import net.minecraftforge.server.ServerLifecycleHooks; import org.apache.commons.lang3.function.TriFunction; import org.jetbrains.annotations.Nullable; +import java.util.HashMap; +import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -30,6 +32,8 @@ import java.util.function.Supplier; */ public class ForgeCommonHelper implements LibCommonHelper { + public static Map TABS = new HashMap<>(); + public ForgeCommonHelper() {} @Override @@ -60,23 +64,4 @@ public class ForgeCommonHelper implements LibCommonHelper { public MenuType createMenuType(TriFunction constructor) { return IForgeMenuType.create(constructor::apply); } - - @Override - public CreativeModeTab tabBuilder(String modid, String tabid, Supplier icon, String backgroundSuf) { - CreativeModeTab tab = new CreativeModeTab(modid + "." + tabid) { - @Override - public ItemStack makeIcon() { - if (icon != null) { - return icon.get(); - } else { - return ItemStack.EMPTY; - } - } - }; - - if (backgroundSuf != null && !backgroundSuf.isEmpty()) { - tab.setBackgroundSuffix(backgroundSuf); - } - return tab; - } } diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index 888e8c7..8a226cd 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader = "javafml" -loaderVersion = "[43,)" +loaderVersion = "[44,)" license = "MIT" #issueTrackerURL="https://change.me.to.your.issue.tracker.example.invalid/" @@ -19,13 +19,13 @@ A library mod used by HypherionSA's Mods [[dependencies.craterlib]] modId = "forge" mandatory = true -versionRange = "[43,)" +versionRange = "[44,)" ordering = "NONE" side = "BOTH" [[dependencies.craterlib]] modId = "minecraft" mandatory = true -versionRange = "[1.19.2,1.20)" +versionRange = "[1.19.3,1.20)" ordering = "NONE" side = "BOTH" diff --git a/build.gradle b/build.gradle index a08c257..8659a5e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'com.matyrobbrt.mc.registrationutils' version '1.19-1.3.0' + id 'com.matyrobbrt.mc.registrationutils' version '1.19.3-1.0.0' } registrationUtils { diff --git a/gradle.properties b/gradle.properties index 88b6725..9ead8f9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,21 +1,21 @@ # Project version_major=0 version_minor=0 -version_patch=5d +version_patch=6d group=me.hypherionmc.craterlib # Common -minecraft_version=1.19.2 +minecraft_version=1.19.3 common_runs_enabled=false common_client_run_name=Common Client common_server_run_name=Common Server # Forge -forge_version=43.1.25 +forge_version=44.0.41 forge_ats_enabled=true # Fabric -fabric_version=0.61.0+1.19.2 +fabric_version=0.70.0+1.19.3 fabric_loader_version=0.14.9 # Mod options @@ -28,4 +28,4 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false # Dependencies -mod_menu_version=4.0.6 +mod_menu_version=5.0.2