Initial 1.20 port. Still untested

This commit is contained in:
2023-05-11 19:30:00 +02:00
parent 8e72212bf6
commit 5b6bf5fd8a
20 changed files with 60 additions and 50 deletions

View File

@@ -1,6 +1,8 @@
package com.hypherionmc.craterlib.api.creativetab;
import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.CreativeModeTabs;
@@ -14,11 +16,13 @@ public class CraterCreativeModeTab implements Supplier<CreativeModeTab> {
private final Supplier<ItemStack> icon;
private final String backgroundSuffix;
private CreativeModeTab tab;
private final ResourceKey<CreativeModeTab> resourceKey;
protected CraterCreativeModeTab(Builder builder) {
this.resourceLocation = builder.location;
this.icon = builder.stack;
this.backgroundSuffix = builder.backgroundSuffix == null ? "" : builder.backgroundSuffix;
this.resourceKey = ResourceKey.create(Registries.CREATIVE_MODE_TAB, this.resourceLocation);
CreativeTabRegistry.registerTab(this);
}
@@ -39,6 +43,10 @@ public class CraterCreativeModeTab implements Supplier<CreativeModeTab> {
this.tab = tab;
}
public ResourceKey<CreativeModeTab> getResourceKey() {
return resourceKey;
}
public static class Builder {
private final ResourceLocation location;
private Supplier<ItemStack> stack;

View File

@@ -9,13 +9,15 @@ import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.*;
import me.hypherionmc.moonconfig.core.conversion.SpecComment;
import net.minecraft.ChatFormatting;
import net.minecraft.client.gui.GuiComponent;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screens.ConfirmScreen;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import org.jetbrains.annotations.NotNull;
import org.joml.Matrix4f;
import javax.annotation.Nullable;
@@ -172,25 +174,25 @@ public class CraterConfigScreen extends Screen {
}
@Override
public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
overlayBackground(matrices, TOP, height - BOTTOM, 32);
public void render(@NotNull GuiGraphics matrices, int mouseX, int mouseY, float delta) {
overlayBackground(matrices.pose(), TOP, height - BOTTOM, 32);
renderScrollBar();
matrices.pushPose();
matrices.translate(0, 0, 500.0);
overlayBackground(matrices, 0, TOP, 64);
overlayBackground(matrices, height - BOTTOM, height, 64);
renderShadow(matrices);
drawCenteredString(matrices, font, getTitle(), width / 2, 9, 0xFFFFFF);
matrices.pose().pushPose();
matrices.pose().translate(0, 0, 500.0);
overlayBackground(matrices.pose(), 0, TOP, 64);
overlayBackground(matrices.pose(), height - BOTTOM, height, 64);
renderShadow(matrices.pose());
matrices.drawCenteredString(font, getTitle(), width / 2, 9, 0xFFFFFF);
super.render(matrices, mouseX, mouseY, delta);
matrices.popPose();
matrices.pose().popPose();
int y = (int) (TOP + 4 - Math.round(scrollerAmount));
for (Option<?> option : options) {
int height1 = option.height();
option.render(minecraft, font, 40, y, width - 80, height1, matrices, mouseX, mouseY, delta);
renderConfigTooltip(matrices, mouseX, mouseY, 40, y, font.width(option.text), height1, option.text.getString(), option.getLangKeys().toArray(new String[0]));
renderConfigTooltip(matrices, font, mouseX, mouseY, 40, y, font.width(option.text), height1, option.text.getString(), option.getLangKeys().toArray(new String[0]));
y += height1;
}
}
@@ -261,9 +263,10 @@ public class CraterConfigScreen extends Screen {
}
protected void overlayBackground(Matrix4f matrix, int minX, int minY, int maxX, int maxY, int red, int green, int blue, int startAlpha, int endAlpha) {
Tesselator tesselator = Tesselator.getInstance();
BufferBuilder buffer = tesselator.getBuilder();
RenderSystem.setShaderTexture(0, GuiComponent.BACKGROUND_LOCATION);
RenderSystem.setShaderTexture(0, Screen.BACKGROUND_LOCATION);
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
@@ -373,7 +376,7 @@ public class CraterConfigScreen extends Screen {
}
}
private void renderConfigTooltip(PoseStack stack, int mouseX, int mouseY, int startX, int startY, int sizeX, int sizeY, String title, String... description) {
private void renderConfigTooltip(GuiGraphics stack, Font font, int mouseX, int mouseY, int startX, int startY, int sizeX, int sizeY, String title, String... description) {
if (mouseX > startX && mouseX < startX + sizeX) {
if (mouseY > startY && mouseY < startY + sizeY) {
List<Component> list = new ArrayList<>();
@@ -381,7 +384,7 @@ public class CraterConfigScreen extends Screen {
for (String desc : description) {
list.add(Component.translatable(desc));
}
renderComponentTooltip(stack, list, mouseX, mouseY);
stack.renderComponentTooltip(font, list, mouseX, mouseY);
}
}
}

View File

@@ -1,8 +1,8 @@
package com.hypherionmc.craterlib.client.gui.config.widgets;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.EditBox;
@@ -16,7 +16,7 @@ public class AbstractConfigWidget<T, W extends AbstractWidget> extends BaseWidge
public W widget;
@Override
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) {
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics 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.setX(x + width - 200 - resetButtonOffset + i);

View File

@@ -1,9 +1,9 @@
package com.hypherionmc.craterlib.client.gui.config.widgets;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
@@ -39,7 +39,7 @@ public class BaseWidget<T> extends Option<T> {
}
@Override
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) {
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta) {
MutableComponent text = Component.literal(this.text.getString());
boolean edited = isEdited() || hasErrors;
if (edited) {
@@ -50,7 +50,7 @@ public class BaseWidget<T> extends Option<T> {
} else {
text.withStyle(ChatFormatting.GRAY);
}
font.draw(matrices, text, x, y + 8, 0xFFFFFF);
matrices.drawString(font, text, x, y, 0xFFFFFF);
resetButton.setX(x + width - 46);
resetButton.setY(y + 1);
resetButton.active = isNotDefault();
@@ -58,5 +58,4 @@ public class BaseWidget<T> extends Option<T> {
resetButton.render(matrices, mouseX, mouseY, delta);
}
}
}

View File

@@ -1,7 +1,7 @@
package com.hypherionmc.craterlib.client.gui.config.widgets;
import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.AbstractButton;
import net.minecraft.client.gui.narration.NarratedElementType;
import net.minecraft.client.gui.narration.NarrationElementOutput;
@@ -23,7 +23,7 @@ public class InternalConfigButton extends AbstractButton {
}
@Override
public void render(@NotNull PoseStack poseStack, int i, int j, float f) {
public void render(@NotNull GuiGraphics poseStack, int i, int j, float f) {
if (cancel) {
setMessage(Component.translatable(screen.isEdited() ? "t.clc.cancel_discard" : "gui.cancel"));
} else {

View File

@@ -1,8 +1,8 @@
package com.hypherionmc.craterlib.client.gui.config.widgets;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.events.AbstractContainerEventHandler;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.network.chat.Component;
@@ -38,7 +38,7 @@ public abstract class Option<T> extends AbstractContainerEventHandler {
this.langKeys = langKeys;
}
public abstract void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta);
public abstract void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta);
public int height() {
return 22;

View File

@@ -2,9 +2,9 @@ package com.hypherionmc.craterlib.client.gui.config.widgets;
import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen;
import com.hypherionmc.craterlib.core.config.ModuleConfig;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
@@ -27,7 +27,7 @@ public class SubConfigWidget<T> extends AbstractConfigWidget<T, Button> {
}
@Override
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) {
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta) {
this.text = Component.literal(subConfig.getClass().getSimpleName().toLowerCase());
this.hideReset();
super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta);

View File

@@ -1,8 +1,8 @@
package com.hypherionmc.craterlib.client.gui.config.widgets;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiGraphics;
import java.util.function.Function;
@@ -29,7 +29,7 @@ public class TextConfigOption <T> extends AbstractConfigWidget<T, WrappedEditBox
}
@Override
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, PoseStack matrices, int mouseX, int mouseY, float delta) {
public void render(Minecraft minecraft, Font font, int x, int y, int width, int height, GuiGraphics matrices, int mouseX, int mouseY, float delta) {
widget.setTextColor(hasErrors ? 16733525 : 14737632);
super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta);
}

View File

@@ -4,7 +4,7 @@ import com.hypherionmc.craterlib.api.rendering.DyableBlock;
import com.hypherionmc.craterlib.api.rendering.ItemDyable;
import com.hypherionmc.craterlib.client.rendering.ItemColorHandler;
import com.hypherionmc.craterlib.core.platform.ClientPlatform;
import me.hypherionmc.craterlib.systems.reg.RegistrationProvider;
import com.hypherionmc.craterlib.core.systems.reg.RegistrationProvider;
import net.minecraft.client.color.block.BlockColors;
import net.minecraft.client.color.item.ItemColors;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;

View File

@@ -2,7 +2,7 @@ package com.hypherionmc.craterlib.core.platform.services;
import com.hypherionmc.craterlib.common.item.BlockItemDyable;
import com.hypherionmc.craterlib.core.network.CraterPacket;
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
import com.hypherionmc.craterlib.core.systems.reg.RegistryObject;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.network.Connection;

View File

@@ -14,7 +14,7 @@ import net.minecraft.world.level.material.Fluids;
public class FluidUtils {
public static int fluidColorFromDye(DyeColor color) {
return color.getMaterialColor().col | 0xFF000000;
return color.getMapColor().col | 0xFF000000;
}
public static void putFluid(CompoundTag compound, String key, Fluid fluidVariant) {

View File

@@ -60,7 +60,7 @@ public class RenderUtils {
}
public static int renderColorFromDye(DyeColor color) {
return color.getMaterialColor().col | 0xFF000000;
return color.getMapColor().col | 0xFF000000;
}
public static int alphaColorFromDye(DyeColor color, float alpha) {

View File

@@ -4,8 +4,8 @@ import com.hypherionmc.craterlib.api.rendering.CustomRenderType;
import com.hypherionmc.craterlib.common.item.BlockItemDyable;
import com.hypherionmc.craterlib.core.network.CraterPacket;
import com.hypherionmc.craterlib.core.platform.services.LibClientHelper;
import com.hypherionmc.craterlib.core.systems.reg.RegistryObject;
import com.hypherionmc.craterlib.util.ColorPropertyFunction;
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
import net.fabricmc.api.EnvType;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;

View File

@@ -3,9 +3,9 @@ package com.hypherionmc.craterlib.client.gui.widgets;
import com.hypherionmc.craterlib.systems.fluid.FluidTank;
import com.hypherionmc.craterlib.util.RenderUtils;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering;
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.narration.NarrationElementOutput;
import net.minecraft.client.gui.screens.Screen;
@@ -35,7 +35,7 @@ public class FluidStackWidget extends AbstractWidget {
}
@Override
public void renderWidget(@NotNull PoseStack matrices, int mouseX, int mouseY, float delta) {
public void renderWidget(@NotNull GuiGraphics matrices, int mouseX, int mouseY, float delta) {
RenderSystem.setShader(GameRenderer::getPositionTexShader);
RenderSystem.defaultBlendFunc();
RenderSystem.enableDepthTest();
@@ -62,18 +62,18 @@ public class FluidStackWidget extends AbstractWidget {
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);
matrices.pose().pushPose();
matrices.pose().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;
// TODO Double Check this
blit(matrices, getX(), getY() + notDrawingHeight, 0, still.getU0() * atlasWidth, still.getV0() * atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight);
matrices.translate(0, -16, 0);
matrices.blit(TextureAtlas.LOCATION_BLOCKS, getX(), getY() + notDrawingHeight, 0, still.getU0() * atlasWidth, still.getV0() * atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight);
matrices.pose().translate(0, -16, 0);
}
RenderSystem.setShaderColor(1, 1, 1, 1);
matrices.popPose();
matrices.pose().popPose();
}
//renderToolTip(matrices, mouseX, mouseY);
}

View File

@@ -46,7 +46,7 @@ public class FabricFluidHelper implements LibFluidHelper {
if (fluidVariant.isBlank())
return false;
if (fluidHandler.insert(new FluidHolder(fluidVariant.getFluid(), 1000), ICraterFluidHandler.FluidAction.EXECUTE) > 0) {
player.level.playSound(null, player.getOnPos(), SoundEvents.BUCKET_EMPTY, SoundSource.BLOCKS, 1.0f, 1.0f);
player.level().playSound(null, player.getOnPos(), SoundEvents.BUCKET_EMPTY, SoundSource.BLOCKS, 1.0f, 1.0f);
return true;
}
}

View File

@@ -19,7 +19,7 @@ public class MinecraftMixin {
@Inject(method = "<init>", at = @At("RETURN"))
private void injectCraterLateInit(GameConfig gameConfig, CallbackInfo ci) {
CreativeTabRegistry.getTabs().forEach(tab -> {
CreativeModeTab finalTab = FabricItemGroup.builder(tab.getResourceLocation())
CreativeModeTab finalTab = FabricItemGroup.builder()
.title(Component.translatable("itemGroup." +
tab.getResourceLocation().toString().replace(":", ".")
))
@@ -28,7 +28,7 @@ public class MinecraftMixin {
tab.setTab(finalTab);
ItemGroupEvents.modifyEntriesEvent(finalTab).register(entries -> CreativeTabRegistry
ItemGroupEvents.modifyEntriesEvent(tab.getResourceKey()).register(entries -> CreativeTabRegistry
.getTabItems()
.stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null)
.map(Pair::getRight).forEach(itm -> entries.accept(itm.get())));

View File

@@ -34,7 +34,7 @@
"depends": {
"fabricloader": ">=0.14",
"fabric": "*",
"minecraft": ">=1.19.4",
"minecraft": ">=1.20",
"java": ">=17"
}
}

View File

@@ -8,7 +8,7 @@ registrationUtils {
projects {
Common { type 'common'; project ':Common' }
Fabric { type 'fabric'; project ':Fabric' }
Forge { type 'forge'; project ':Forge' }
//Forge { type 'forge'; project ':Forge' }
}
}

View File

@@ -1,11 +1,11 @@
# Project
version_major=0
version_minor=0
version_patch=8d
version_patch=1d
group=me.hypherionmc.craterlib
# Common
minecraft_version=1.19.4
minecraft_version=1.20-pre1
common_runs_enabled=false
common_client_run_name=Common Client
common_server_run_name=Common Server
@@ -15,7 +15,7 @@ forge_version=45.0.9
forge_ats_enabled=true
# Fabric
fabric_version=0.76.0+1.19.4
fabric_version=0.80.3+1.20
fabric_loader_version=0.14.9
# Mod options
@@ -28,5 +28,5 @@ org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
# Dependencies
mod_menu_version=6.1.0-rc.4
mod_menu_version=7.0.0-beta.2
moon_config=1.0.9

View File

@@ -13,4 +13,4 @@ pluginManagement {
}
rootProject.name = 'CraterLib'
include("Common", "Fabric", "Forge")
include("Common", "Fabric", /*"Forge"*/)