Initial 1.20 port. Still untested
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package com.hypherionmc.craterlib.api.creativetab;
|
package com.hypherionmc.craterlib.api.creativetab;
|
||||||
|
|
||||||
import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry;
|
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.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
import net.minecraft.world.item.CreativeModeTabs;
|
import net.minecraft.world.item.CreativeModeTabs;
|
||||||
@@ -14,11 +16,13 @@ public class CraterCreativeModeTab implements Supplier<CreativeModeTab> {
|
|||||||
private final Supplier<ItemStack> icon;
|
private final Supplier<ItemStack> icon;
|
||||||
private final String backgroundSuffix;
|
private final String backgroundSuffix;
|
||||||
private CreativeModeTab tab;
|
private CreativeModeTab tab;
|
||||||
|
private final ResourceKey<CreativeModeTab> resourceKey;
|
||||||
|
|
||||||
protected CraterCreativeModeTab(Builder builder) {
|
protected CraterCreativeModeTab(Builder builder) {
|
||||||
this.resourceLocation = builder.location;
|
this.resourceLocation = builder.location;
|
||||||
this.icon = builder.stack;
|
this.icon = builder.stack;
|
||||||
this.backgroundSuffix = builder.backgroundSuffix == null ? "" : builder.backgroundSuffix;
|
this.backgroundSuffix = builder.backgroundSuffix == null ? "" : builder.backgroundSuffix;
|
||||||
|
this.resourceKey = ResourceKey.create(Registries.CREATIVE_MODE_TAB, this.resourceLocation);
|
||||||
|
|
||||||
CreativeTabRegistry.registerTab(this);
|
CreativeTabRegistry.registerTab(this);
|
||||||
}
|
}
|
||||||
@@ -39,6 +43,10 @@ public class CraterCreativeModeTab implements Supplier<CreativeModeTab> {
|
|||||||
this.tab = tab;
|
this.tab = tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResourceKey<CreativeModeTab> getResourceKey() {
|
||||||
|
return resourceKey;
|
||||||
|
}
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private final ResourceLocation location;
|
private final ResourceLocation location;
|
||||||
private Supplier<ItemStack> stack;
|
private Supplier<ItemStack> stack;
|
||||||
|
@@ -9,13 +9,15 @@ import com.mojang.blaze3d.systems.RenderSystem;
|
|||||||
import com.mojang.blaze3d.vertex.*;
|
import com.mojang.blaze3d.vertex.*;
|
||||||
import me.hypherionmc.moonconfig.core.conversion.SpecComment;
|
import me.hypherionmc.moonconfig.core.conversion.SpecComment;
|
||||||
import net.minecraft.ChatFormatting;
|
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.ConfirmScreen;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import net.minecraft.client.renderer.GameRenderer;
|
import net.minecraft.client.renderer.GameRenderer;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@@ -172,25 +174,25 @@ public class CraterConfigScreen extends Screen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
|
public void render(@NotNull GuiGraphics matrices, int mouseX, int mouseY, float delta) {
|
||||||
overlayBackground(matrices, TOP, height - BOTTOM, 32);
|
overlayBackground(matrices.pose(), TOP, height - BOTTOM, 32);
|
||||||
|
|
||||||
renderScrollBar();
|
renderScrollBar();
|
||||||
|
|
||||||
matrices.pushPose();
|
matrices.pose().pushPose();
|
||||||
matrices.translate(0, 0, 500.0);
|
matrices.pose().translate(0, 0, 500.0);
|
||||||
overlayBackground(matrices, 0, TOP, 64);
|
overlayBackground(matrices.pose(), 0, TOP, 64);
|
||||||
overlayBackground(matrices, height - BOTTOM, height, 64);
|
overlayBackground(matrices.pose(), height - BOTTOM, height, 64);
|
||||||
renderShadow(matrices);
|
renderShadow(matrices.pose());
|
||||||
drawCenteredString(matrices, font, getTitle(), width / 2, 9, 0xFFFFFF);
|
matrices.drawCenteredString(font, getTitle(), width / 2, 9, 0xFFFFFF);
|
||||||
super.render(matrices, mouseX, mouseY, delta);
|
super.render(matrices, mouseX, mouseY, delta);
|
||||||
matrices.popPose();
|
matrices.pose().popPose();
|
||||||
|
|
||||||
int y = (int) (TOP + 4 - Math.round(scrollerAmount));
|
int y = (int) (TOP + 4 - Math.round(scrollerAmount));
|
||||||
for (Option<?> option : options) {
|
for (Option<?> option : options) {
|
||||||
int height1 = option.height();
|
int height1 = option.height();
|
||||||
option.render(minecraft, font, 40, y, width - 80, height1, matrices, mouseX, mouseY, delta);
|
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;
|
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) {
|
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();
|
Tesselator tesselator = Tesselator.getInstance();
|
||||||
BufferBuilder buffer = tesselator.getBuilder();
|
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.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
|
RenderSystem.setShader(GameRenderer::getPositionTexColorShader);
|
||||||
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
|
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 (mouseX > startX && mouseX < startX + sizeX) {
|
||||||
if (mouseY > startY && mouseY < startY + sizeY) {
|
if (mouseY > startY && mouseY < startY + sizeY) {
|
||||||
List<Component> list = new ArrayList<>();
|
List<Component> list = new ArrayList<>();
|
||||||
@@ -381,7 +384,7 @@ public class CraterConfigScreen extends Screen {
|
|||||||
for (String desc : description) {
|
for (String desc : description) {
|
||||||
list.add(Component.translatable(desc));
|
list.add(Component.translatable(desc));
|
||||||
}
|
}
|
||||||
renderComponentTooltip(stack, list, mouseX, mouseY);
|
stack.renderComponentTooltip(font, list, mouseX, mouseY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.Font;
|
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.AbstractWidget;
|
||||||
import net.minecraft.client.gui.components.EditBox;
|
import net.minecraft.client.gui.components.EditBox;
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ public class AbstractConfigWidget<T, W extends AbstractWidget> extends BaseWidge
|
|||||||
public W widget;
|
public W widget;
|
||||||
|
|
||||||
@Override
|
@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);
|
super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta);
|
||||||
int i = (widget instanceof EditBox ? 1 : 0);
|
int i = (widget instanceof EditBox ? 1 : 0);
|
||||||
widget.setX(x + width - 200 - resetButtonOffset + i);
|
widget.setX(x + width - 200 - resetButtonOffset + i);
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.Font;
|
import net.minecraft.client.gui.Font;
|
||||||
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.Button;
|
import net.minecraft.client.gui.components.Button;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.MutableComponent;
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
@@ -39,7 +39,7 @@ public class BaseWidget<T> extends Option<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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());
|
MutableComponent text = Component.literal(this.text.getString());
|
||||||
boolean edited = isEdited() || hasErrors;
|
boolean edited = isEdited() || hasErrors;
|
||||||
if (edited) {
|
if (edited) {
|
||||||
@@ -50,7 +50,7 @@ public class BaseWidget<T> extends Option<T> {
|
|||||||
} else {
|
} else {
|
||||||
text.withStyle(ChatFormatting.GRAY);
|
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.setX(x + width - 46);
|
||||||
resetButton.setY(y + 1);
|
resetButton.setY(y + 1);
|
||||||
resetButton.active = isNotDefault();
|
resetButton.active = isNotDefault();
|
||||||
@@ -58,5 +58,4 @@ public class BaseWidget<T> extends Option<T> {
|
|||||||
resetButton.render(matrices, mouseX, mouseY, delta);
|
resetButton.render(matrices, mouseX, mouseY, delta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
||||||
|
|
||||||
import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen;
|
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.components.AbstractButton;
|
||||||
import net.minecraft.client.gui.narration.NarratedElementType;
|
import net.minecraft.client.gui.narration.NarratedElementType;
|
||||||
import net.minecraft.client.gui.narration.NarrationElementOutput;
|
import net.minecraft.client.gui.narration.NarrationElementOutput;
|
||||||
@@ -23,7 +23,7 @@ public class InternalConfigButton extends AbstractButton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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) {
|
if (cancel) {
|
||||||
setMessage(Component.translatable(screen.isEdited() ? "t.clc.cancel_discard" : "gui.cancel"));
|
setMessage(Component.translatable(screen.isEdited() ? "t.clc.cancel_discard" : "gui.cancel"));
|
||||||
} else {
|
} else {
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.Font;
|
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.AbstractContainerEventHandler;
|
||||||
import net.minecraft.client.gui.components.events.GuiEventListener;
|
import net.minecraft.client.gui.components.events.GuiEventListener;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
@@ -38,7 +38,7 @@ public abstract class Option<T> extends AbstractContainerEventHandler {
|
|||||||
this.langKeys = langKeys;
|
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() {
|
public int height() {
|
||||||
return 22;
|
return 22;
|
||||||
|
@@ -2,9 +2,9 @@ package com.hypherionmc.craterlib.client.gui.config.widgets;
|
|||||||
|
|
||||||
import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen;
|
import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen;
|
||||||
import com.hypherionmc.craterlib.core.config.ModuleConfig;
|
import com.hypherionmc.craterlib.core.config.ModuleConfig;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.Font;
|
import net.minecraft.client.gui.Font;
|
||||||
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.Button;
|
import net.minecraft.client.gui.components.Button;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
@@ -27,7 +27,7 @@ public class SubConfigWidget<T> extends AbstractConfigWidget<T, Button> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.text = Component.literal(subConfig.getClass().getSimpleName().toLowerCase());
|
||||||
this.hideReset();
|
this.hideReset();
|
||||||
super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta);
|
super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta);
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
package com.hypherionmc.craterlib.client.gui.config.widgets;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.Font;
|
import net.minecraft.client.gui.Font;
|
||||||
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ public class TextConfigOption <T> extends AbstractConfigWidget<T, WrappedEditBox
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
widget.setTextColor(hasErrors ? 16733525 : 14737632);
|
||||||
super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta);
|
super.render(minecraft, font, x, y, width, height, matrices, mouseX, mouseY, delta);
|
||||||
}
|
}
|
||||||
|
@@ -4,7 +4,7 @@ import com.hypherionmc.craterlib.api.rendering.DyableBlock;
|
|||||||
import com.hypherionmc.craterlib.api.rendering.ItemDyable;
|
import com.hypherionmc.craterlib.api.rendering.ItemDyable;
|
||||||
import com.hypherionmc.craterlib.client.rendering.ItemColorHandler;
|
import com.hypherionmc.craterlib.client.rendering.ItemColorHandler;
|
||||||
import com.hypherionmc.craterlib.core.platform.ClientPlatform;
|
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.block.BlockColors;
|
||||||
import net.minecraft.client.color.item.ItemColors;
|
import net.minecraft.client.color.item.ItemColors;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||||
|
@@ -2,7 +2,7 @@ package com.hypherionmc.craterlib.core.platform.services;
|
|||||||
|
|
||||||
import com.hypherionmc.craterlib.common.item.BlockItemDyable;
|
import com.hypherionmc.craterlib.common.item.BlockItemDyable;
|
||||||
import com.hypherionmc.craterlib.core.network.CraterPacket;
|
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.Minecraft;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||||
import net.minecraft.network.Connection;
|
import net.minecraft.network.Connection;
|
||||||
|
@@ -14,7 +14,7 @@ import net.minecraft.world.level.material.Fluids;
|
|||||||
public class FluidUtils {
|
public class FluidUtils {
|
||||||
|
|
||||||
public static int fluidColorFromDye(DyeColor color) {
|
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) {
|
public static void putFluid(CompoundTag compound, String key, Fluid fluidVariant) {
|
||||||
|
@@ -60,7 +60,7 @@ public class RenderUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static int renderColorFromDye(DyeColor color) {
|
public static int renderColorFromDye(DyeColor color) {
|
||||||
return color.getMaterialColor().col | 0xFF000000;
|
return color.getMapColor().col | 0xFF000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int alphaColorFromDye(DyeColor color, float alpha) {
|
public static int alphaColorFromDye(DyeColor color, float alpha) {
|
||||||
|
@@ -4,8 +4,8 @@ import com.hypherionmc.craterlib.api.rendering.CustomRenderType;
|
|||||||
import com.hypherionmc.craterlib.common.item.BlockItemDyable;
|
import com.hypherionmc.craterlib.common.item.BlockItemDyable;
|
||||||
import com.hypherionmc.craterlib.core.network.CraterPacket;
|
import com.hypherionmc.craterlib.core.network.CraterPacket;
|
||||||
import com.hypherionmc.craterlib.core.platform.services.LibClientHelper;
|
import com.hypherionmc.craterlib.core.platform.services.LibClientHelper;
|
||||||
|
import com.hypherionmc.craterlib.core.systems.reg.RegistryObject;
|
||||||
import com.hypherionmc.craterlib.util.ColorPropertyFunction;
|
import com.hypherionmc.craterlib.util.ColorPropertyFunction;
|
||||||
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
||||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
||||||
|
@@ -3,9 +3,9 @@ package com.hypherionmc.craterlib.client.gui.widgets;
|
|||||||
import com.hypherionmc.craterlib.systems.fluid.FluidTank;
|
import com.hypherionmc.craterlib.systems.fluid.FluidTank;
|
||||||
import com.hypherionmc.craterlib.util.RenderUtils;
|
import com.hypherionmc.craterlib.util.RenderUtils;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
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.client.fluid.FluidVariantRendering;
|
||||||
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
|
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.components.AbstractWidget;
|
||||||
import net.minecraft.client.gui.narration.NarrationElementOutput;
|
import net.minecraft.client.gui.narration.NarrationElementOutput;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
@@ -35,7 +35,7 @@ public class FluidStackWidget extends AbstractWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.setShader(GameRenderer::getPositionTexShader);
|
||||||
RenderSystem.defaultBlendFunc();
|
RenderSystem.defaultBlendFunc();
|
||||||
RenderSystem.enableDepthTest();
|
RenderSystem.enableDepthTest();
|
||||||
@@ -62,18 +62,18 @@ public class FluidStackWidget extends AbstractWidget {
|
|||||||
int atlasWidth = (int) (still.getX() / (still.getU1() - still.getU0()));
|
int atlasWidth = (int) (still.getX() / (still.getU1() - still.getU0()));
|
||||||
int atlasHeight = (int) (still.getY() / (still.getV1() - still.getV0()));
|
int atlasHeight = (int) (still.getY() / (still.getV1() - still.getV0()));
|
||||||
|
|
||||||
matrices.pushPose();
|
matrices.pose().pushPose();
|
||||||
matrices.translate(0, height - 16, 0);
|
matrices.pose().translate(0, height - 16, 0);
|
||||||
for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) {
|
for (int i = 0; i < Math.ceil(renderableHeight / 16f); i++) {
|
||||||
int drawingHeight = Math.min(16, renderableHeight - 16 * i);
|
int drawingHeight = Math.min(16, renderableHeight - 16 * i);
|
||||||
int notDrawingHeight = 16 - drawingHeight;
|
int notDrawingHeight = 16 - drawingHeight;
|
||||||
// TODO Double Check this
|
// TODO Double Check this
|
||||||
blit(matrices, getX(), getY() + notDrawingHeight, 0, still.getU0() * atlasWidth, still.getV0() * atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight);
|
matrices.blit(TextureAtlas.LOCATION_BLOCKS, getX(), getY() + notDrawingHeight, 0, still.getU0() * atlasWidth, still.getV0() * atlasHeight + notDrawingHeight, this.width, drawingHeight, atlasWidth, atlasHeight);
|
||||||
matrices.translate(0, -16, 0);
|
matrices.pose().translate(0, -16, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderSystem.setShaderColor(1, 1, 1, 1);
|
RenderSystem.setShaderColor(1, 1, 1, 1);
|
||||||
matrices.popPose();
|
matrices.pose().popPose();
|
||||||
}
|
}
|
||||||
//renderToolTip(matrices, mouseX, mouseY);
|
//renderToolTip(matrices, mouseX, mouseY);
|
||||||
}
|
}
|
||||||
|
@@ -46,7 +46,7 @@ public class FabricFluidHelper implements LibFluidHelper {
|
|||||||
if (fluidVariant.isBlank())
|
if (fluidVariant.isBlank())
|
||||||
return false;
|
return false;
|
||||||
if (fluidHandler.insert(new FluidHolder(fluidVariant.getFluid(), 1000), ICraterFluidHandler.FluidAction.EXECUTE) > 0) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,7 @@ public class MinecraftMixin {
|
|||||||
@Inject(method = "<init>", at = @At("RETURN"))
|
@Inject(method = "<init>", at = @At("RETURN"))
|
||||||
private void injectCraterLateInit(GameConfig gameConfig, CallbackInfo ci) {
|
private void injectCraterLateInit(GameConfig gameConfig, CallbackInfo ci) {
|
||||||
CreativeTabRegistry.getTabs().forEach(tab -> {
|
CreativeTabRegistry.getTabs().forEach(tab -> {
|
||||||
CreativeModeTab finalTab = FabricItemGroup.builder(tab.getResourceLocation())
|
CreativeModeTab finalTab = FabricItemGroup.builder()
|
||||||
.title(Component.translatable("itemGroup." +
|
.title(Component.translatable("itemGroup." +
|
||||||
tab.getResourceLocation().toString().replace(":", ".")
|
tab.getResourceLocation().toString().replace(":", ".")
|
||||||
))
|
))
|
||||||
@@ -28,7 +28,7 @@ public class MinecraftMixin {
|
|||||||
|
|
||||||
tab.setTab(finalTab);
|
tab.setTab(finalTab);
|
||||||
|
|
||||||
ItemGroupEvents.modifyEntriesEvent(finalTab).register(entries -> CreativeTabRegistry
|
ItemGroupEvents.modifyEntriesEvent(tab.getResourceKey()).register(entries -> CreativeTabRegistry
|
||||||
.getTabItems()
|
.getTabItems()
|
||||||
.stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null)
|
.stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null)
|
||||||
.map(Pair::getRight).forEach(itm -> entries.accept(itm.get())));
|
.map(Pair::getRight).forEach(itm -> entries.accept(itm.get())));
|
||||||
|
@@ -34,7 +34,7 @@
|
|||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=0.14",
|
"fabricloader": ">=0.14",
|
||||||
"fabric": "*",
|
"fabric": "*",
|
||||||
"minecraft": ">=1.19.4",
|
"minecraft": ">=1.20",
|
||||||
"java": ">=17"
|
"java": ">=17"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,7 @@ registrationUtils {
|
|||||||
projects {
|
projects {
|
||||||
Common { type 'common'; project ':Common' }
|
Common { type 'common'; project ':Common' }
|
||||||
Fabric { type 'fabric'; project ':Fabric' }
|
Fabric { type 'fabric'; project ':Fabric' }
|
||||||
Forge { type 'forge'; project ':Forge' }
|
//Forge { type 'forge'; project ':Forge' }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
# Project
|
# Project
|
||||||
version_major=0
|
version_major=0
|
||||||
version_minor=0
|
version_minor=0
|
||||||
version_patch=8d
|
version_patch=1d
|
||||||
group=me.hypherionmc.craterlib
|
group=me.hypherionmc.craterlib
|
||||||
|
|
||||||
# Common
|
# Common
|
||||||
minecraft_version=1.19.4
|
minecraft_version=1.20-pre1
|
||||||
common_runs_enabled=false
|
common_runs_enabled=false
|
||||||
common_client_run_name=Common Client
|
common_client_run_name=Common Client
|
||||||
common_server_run_name=Common Server
|
common_server_run_name=Common Server
|
||||||
@@ -15,7 +15,7 @@ forge_version=45.0.9
|
|||||||
forge_ats_enabled=true
|
forge_ats_enabled=true
|
||||||
|
|
||||||
# Fabric
|
# Fabric
|
||||||
fabric_version=0.76.0+1.19.4
|
fabric_version=0.80.3+1.20
|
||||||
fabric_loader_version=0.14.9
|
fabric_loader_version=0.14.9
|
||||||
|
|
||||||
# Mod options
|
# Mod options
|
||||||
@@ -28,5 +28,5 @@ org.gradle.jvmargs=-Xmx3G
|
|||||||
org.gradle.daemon=false
|
org.gradle.daemon=false
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
mod_menu_version=6.1.0-rc.4
|
mod_menu_version=7.0.0-beta.2
|
||||||
moon_config=1.0.9
|
moon_config=1.0.9
|
||||||
|
@@ -13,4 +13,4 @@ pluginManagement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = 'CraterLib'
|
rootProject.name = 'CraterLib'
|
||||||
include("Common", "Fabric", "Forge")
|
include("Common", "Fabric", /*"Forge"*/)
|
||||||
|
Reference in New Issue
Block a user