More sprites!

This commit is contained in:
modmuss50 2023-06-01 15:49:52 +01:00
parent ed63c8908d
commit fafa8d04a0
28 changed files with 165 additions and 221 deletions

View file

@ -389,17 +389,4 @@ public class GuiBase<T extends ScreenHandler> extends HandledScreen<T> {
public static Sprite getSprite(SpriteIdentifier spriteIdentifier) {
return GuiSpriteAtlasHolder.INSTANCE.getSprite(spriteIdentifier.getTextureId());
}
public void drawSprite(DrawContext drawContext, SpriteIdentifier spriteIdentifier, int x, int y) {
final Sprite sprite = getSprite(spriteIdentifier);
drawContext.drawSprite(
x,
y,
0,
sprite.getContents().getWidth(),
sprite.getContents().getHeight(),
sprite
);
}
}

View file

@ -40,18 +40,19 @@ import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import reborncore.api.IListInfoProvider;
import reborncore.client.gui.config.GuiTab;
import reborncore.client.gui.config.elements.GuiSprites;
import reborncore.common.fluid.FluidUtils;
import reborncore.common.fluid.FluidValue;
import reborncore.common.fluid.container.FluidInstance;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.PowerSystem.EnergySystem;
import reborncore.common.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
import static reborncore.client.gui.GuiSprites.drawSprite;
/**
* Created by Gigabit101 on 08/08/2016.
*/
@ -67,19 +68,6 @@ public class GuiBuilder {
height / 2);
}
public void drawSprite(DrawContext drawContext, SpriteIdentifier spriteIdentifier, int x, int y) {
final Sprite sprite = GuiBase.getSprite(spriteIdentifier);
drawContext.drawSprite(
x,
y,
0,
sprite.getContents().getWidth(),
sprite.getContents().getHeight(),
sprite
);
}
public void drawPlayerSlots(DrawContext drawContext, Screen gui, int posX, int posY, boolean center) {
if (center) {
posX -= 81;
@ -420,7 +408,7 @@ public class GuiBuilder {
if (gui.hideGuiElements()) return;
Text text = Text.literal(PowerSystem.getLocalizedPowerNoSuffix(maxOutput))
.append(SPACE_TEXT)
.append(PowerSystem.getDisplayPower().abbreviation)
.append(PowerSystem.ABBREVIATION)
.append("\t");
int width = gui.getTextRenderer().getWidth(text);
@ -452,30 +440,20 @@ public class GuiBuilder {
y += gui.getGuiTop();
}
drawContext.drawTexture(resourceLocation, x, y, direction.x, direction.y, direction.width, direction.height);
drawSprite(drawContext, direction.baseSprite, x, y);
int j = (int) ((double) progress / (double) maxProgress * 16);
if (j < 0) {
j = 0;
}
switch (direction) {
case RIGHT:
drawContext.drawTexture(resourceLocation, x, y, direction.xActive, direction.yActive, j, 10);
break;
case LEFT:
drawContext.drawTexture(resourceLocation, x + 16 - j, y, direction.xActive + 16 - j, direction.yActive, j, 10);
break;
case UP:
drawContext.drawTexture(resourceLocation, x, y + 16 - j, direction.xActive, direction.yActive + 16 - j, 10, j);
break;
case DOWN:
drawContext.drawTexture(resourceLocation, x, y, direction.xActive, direction.yActive, 10, j);
break;
default:
return;
case RIGHT, LEFT -> drawSprite(drawContext, direction.overlaySprite, x, y, j, 10, gui);
case UP, DOWN -> drawSprite(drawContext, direction.overlaySprite, x, y, 10, j, gui);
}
if (gui.isPointInRect(x, y, direction.width, direction.height, mouseX, mouseY)) {
final Sprite sprite = GuiBase.getSprite(direction.baseSprite);
if (gui.isPointInRect(x, y, sprite.getContents().getWidth(), sprite.getContents().getHeight(), mouseX, mouseY)) {
int percentage = percentage(maxProgress, progress);
List<Text> list = new ArrayList<>();
list.add(
@ -512,13 +490,15 @@ public class GuiBuilder {
y += gui.getGuiTop();
}
EnergySystem displayPower = PowerSystem.getDisplayPower();
drawContext.drawTexture(resourceLocation, x, y, displayPower.xBar - 15, displayPower.yBar - 1, 14, 50);
int draw = (int) ((double) energyStored / (double) maxEnergyStored * (48));
drawSprite(drawContext, GuiSprites.POWER_BAR_BASE, x, y);
int barHeight = 48;
int draw = (int) ((double) energyStored / (double) maxEnergyStored * (barHeight));
if (energyStored > maxEnergyStored) {
draw = 48;
draw = barHeight;
}
drawContext.drawTexture(resourceLocation, x + 1, y + 49 - draw, displayPower.xBar, 48 + displayPower.yBar - draw, 12, draw);
drawSprite(drawContext, GuiSprites.POWER_BAR_OVERLAY, x + 1, y + 49 - draw, 12, draw, gui);
int percentage = percentage(maxEnergyStored, energyStored);
if (gui.isPointInRect(x + 1, y + 1, 11, 48, mouseX, mouseY)) {
List<Text> list = Lists.newArrayList();
@ -729,24 +709,17 @@ public class GuiBuilder {
}
public enum ProgressDirection {
RIGHT(58, 150, 74, 150, 16, 10),
LEFT(74, 160, 58, 160, 16, 10),
DOWN(78, 170, 88, 170, 10, 16),
UP(58, 170, 68, 170, 10, 16);
public int x;
public int y;
public int xActive;
public int yActive;
public int width;
public int height;
RIGHT,
LEFT,
DOWN,
UP;
ProgressDirection(int x, int y, int xActive, int yActive, int width, int height) {
this.x = x;
this.y = y;
this.xActive = xActive;
this.yActive = yActive;
this.width = width;
this.height = height;
public final SpriteIdentifier baseSprite;
public final SpriteIdentifier overlaySprite;
ProgressDirection() {
baseSprite = GuiSprites.create("progress_%s_base".formatted(name().toLowerCase(Locale.ROOT)));
overlaySprite = GuiSprites.create("progress_%s_overlay".formatted(name().toLowerCase(Locale.ROOT)));
}
}
}

View file

@ -22,10 +22,15 @@
* SOFTWARE.
*/
package reborncore.client.gui.config.elements;
package reborncore.client.gui;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.texture.Sprite;
import net.minecraft.client.texture.SpriteAtlasHolder;
import net.minecraft.client.util.SpriteIdentifier;
import net.minecraft.util.Identifier;
import reborncore.client.gui.config.elements.GuiSpriteAtlasHolder;
public final class GuiSprites {
public static final SpriteIdentifier CHARGE_SLOT_ICON = create("charge_slot_icon");
@ -62,6 +67,8 @@ public final class GuiSprites {
public static final SpriteIdentifier SLOT_BAR_RIGHT = create("slot_bar_right");
public static final SpriteIdentifier SLOT_BAR_CENTER = create("slot_bar_center");
public static final SpriteIdentifier SLOT_BAR_LEFT = create("slot_bar_left");
public static final SpriteIdentifier POWER_BAR_BASE = create("power_bar_base");
public static final SpriteIdentifier POWER_BAR_OVERLAY = create("power_bar_overlay");
public static final SpriteIdentifier EXIT_BUTTON_NORMAL = create("exit_button_normal");
public static final SpriteIdentifier EXIT_BUTTON_HOVERED = create("exit_button_hovered");
@ -75,13 +82,45 @@ public final class GuiSprites {
public static final SpriteIdentifier LIGHT_CHECK_BOX_TICKED = create("light_check_box_ticked");
public static final CheckBox LIGHT_CHECK_BOX = new CheckBox(LIGHT_CHECK_BOX_NORMAL, LIGHT_CHECK_BOX_TICKED);
private static SpriteIdentifier create(String name) {
public static SpriteIdentifier create(String name) {
return new SpriteIdentifier(GuiSpriteAtlasHolder.ATLAS_ID, new Identifier("reborncore", name));
}
record Button(SpriteIdentifier normal, SpriteIdentifier hovered) {
public static void drawSprite(DrawContext drawContext, SpriteIdentifier spriteIdentifier, int x, int y) {
final Sprite sprite = GuiBase.getSprite(spriteIdentifier);
drawContext.drawSprite(
x,
y,
0,
sprite.getContents().getWidth(),
sprite.getContents().getHeight(),
sprite
);
}
record CheckBox(SpriteIdentifier normal, SpriteIdentifier ticked) {
public static void drawSprite(DrawContext drawContext, SpriteIdentifier spriteIdentifier, int x, int y, int width, int height) {
drawSprite(drawContext, spriteIdentifier, x, y, width, height, 0, 0);
}
public static void drawSprite(DrawContext drawContext, SpriteIdentifier spriteIdentifier, int x, int y, int width, int height, GuiBase<?> gui) {
drawSprite(drawContext, spriteIdentifier, x, y, width, height, gui.getGuiLeft(), gui.getGuiTop());
}
public static void drawSprite(DrawContext drawContext, SpriteIdentifier spriteIdentifier, int x, int y, int width, int height, int sx, int sy) {
drawContext.enableScissor(x + sx, y + sy, x + width+ sx, y + height+ sy);
drawSprite(
drawContext,
spriteIdentifier,
x,
y
);
drawContext.disableScissor();
}
public record Button(SpriteIdentifier normal, SpriteIdentifier hovered) {
}
public record CheckBox(SpriteIdentifier normal, SpriteIdentifier ticked) {
}
}

View file

@ -26,6 +26,7 @@ package reborncore.client.gui.config.elements;
import net.minecraft.client.gui.DrawContext;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.GuiSprites;
public class ButtonElement extends ElementBase {
private final GuiSprites.Button buttonSprite;

View file

@ -28,6 +28,7 @@ import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.SpriteIdentifier;
import net.minecraft.text.Text;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.GuiSprites;
import java.util.function.Predicate;

View file

@ -27,6 +27,7 @@ package reborncore.client.gui.config.elements;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.text.Text;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.GuiSprites;
public class ConfigFluidElement extends ParentElement {
private final SlotType type;

View file

@ -29,6 +29,7 @@ import net.minecraft.inventory.Inventory;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.GuiSprites;
import reborncore.common.blockentity.SlotConfiguration;
import reborncore.common.screen.slot.BaseSlot;

View file

@ -30,6 +30,7 @@ import net.minecraft.client.util.SpriteIdentifier;
import net.minecraft.text.Text;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.GuiBuilder;
import reborncore.client.gui.GuiSprites;
public class ElementBase {
private final int x;
@ -93,7 +94,7 @@ public class ElementBase {
}
public void drawSprite(DrawContext drawContext, GuiBase<?> gui, SpriteIdentifier spriteIdentifier, int x, int y) {
gui.drawSprite(drawContext, spriteIdentifier, x + gui.getGuiLeft(), y + gui.getGuiTop());
GuiSprites.drawSprite(drawContext, spriteIdentifier, x + gui.getGuiLeft(), y + gui.getGuiTop());
}
public void drawDefaultBackground(DrawContext drawContext, Screen gui, int x, int y, int width, int height) {

View file

@ -29,6 +29,7 @@ import net.minecraft.util.math.Direction;
import reborncore.RebornCore;
import reborncore.client.ClientNetworkManager;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.GuiSprites;
import reborncore.common.blockentity.FluidConfiguration;
import reborncore.common.network.IdentifiedPacket;
import reborncore.common.network.ServerBoundPackets;

View file

@ -29,6 +29,7 @@ import net.minecraft.util.math.Direction;
import reborncore.RebornCore;
import reborncore.client.ClientNetworkManager;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.GuiSprites;
import reborncore.common.blockentity.SlotConfiguration;
import reborncore.common.network.IdentifiedPacket;
import reborncore.common.network.ServerBoundPackets;

View file

@ -25,6 +25,7 @@
package reborncore.client.gui.config.elements;
import net.minecraft.client.util.SpriteIdentifier;
import reborncore.client.gui.GuiSprites;
public enum SlotType {
NORMAL(1, 1, GuiSprites.SLOT, GuiSprites.BUTTON_SLOT_NORMAL, GuiSprites.BUTTON_HOVER_OVERLAY_SLOT_NORMAL);

View file

@ -29,7 +29,9 @@ import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.util.SpriteIdentifier;
import net.minecraft.text.Text;
import reborncore.client.gui.GuiBase;
import reborncore.client.gui.config.elements.GuiSprites;
import reborncore.client.gui.GuiSprites;
import static reborncore.client.gui.GuiSprites.drawSprite;
/**
* @author drcrazy
@ -47,7 +49,7 @@ public class GuiButtonUpDown extends GuiButtonExtended {
@Override
public void renderButton(DrawContext drawContext, int mouseX, int mouseY, float partialTicks) {
if (gui.hideGuiElements()) return;
gui.drawSprite(drawContext, type.spriteIdentifier, getX(), getY());
drawSprite(drawContext, type.spriteIdentifier, getX(), getY());
}
public enum UpDownButtonType {

View file

@ -71,7 +71,6 @@ public class RebornCore implements ModInitializer {
@Override
public void onInitialize() {
new Configuration(RebornCoreConfig.class, MOD_ID);
PowerSystem.init();
CalenderUtils.loadCalender(); // Done early as some features need this
ToolManager.INSTANCE.customToolHandlerList.add(new GenericWrenchHelper(new Identifier("ic2:wrench"), true));

View file

@ -25,20 +25,17 @@
package reborncore.common.powerSystem;
import reborncore.RebornCore;
import reborncore.common.RebornCoreConfig;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.function.Supplier;
public class PowerSystem {
private static EnergySystem selectedSystem = EnergySystem.values()[0];
public static final String ABBREVIATION = "E";
private static final char[] magnitude = new char[] { 'k', 'M', 'G', 'T' };
public static String getLocalizedPower(double power) {
return getRoundedString(power, selectedSystem.abbreviation, true);
return getRoundedString(power, ABBREVIATION, true);
}
public static String getLocalizedPowerNoSuffix(double power) {
@ -46,7 +43,7 @@ public class PowerSystem {
}
public static String getLocalizedPowerNoFormat(double power){
return getRoundedString(power, selectedSystem.abbreviation, false);
return getRoundedString(power, ABBREVIATION, false);
}
public static String getLocalizedPowerNoSuffixNoFormat(double power){
@ -54,7 +51,7 @@ public class PowerSystem {
}
public static String getLocalizedPowerFull(double power){
return getFullPower(power, selectedSystem.abbreviation);
return getFullPower(power, ABBREVIATION);
}
public static String getLocalizedPowerFullNoSuffix(double power){
@ -131,45 +128,4 @@ public class PowerSystem {
return ret;
}
public static EnergySystem getDisplayPower() {
if(!selectedSystem.enabled.get()){
bumpPowerConfig();
}
return selectedSystem;
}
public static void bumpPowerConfig() {
int value = selectedSystem.ordinal() + 1;
if (value == EnergySystem.values().length) {
value = 0;
}
selectedSystem = EnergySystem.values()[value];
}
public static void init(){
selectedSystem = Arrays.stream(EnergySystem.values()).filter(energySystem -> energySystem.abbreviation.equalsIgnoreCase(RebornCoreConfig.selectedSystem)).findFirst().orElse(EnergySystem.values()[0]);
if(!selectedSystem.enabled.get()){
bumpPowerConfig();
}
}
public enum EnergySystem {
EU(0xFF800600, "E", 141, 151, 0xFF670000);
public int colour;
public int altColour;
public String abbreviation;
public int xBar;
public int yBar;
public Supplier<Boolean> enabled = () -> true;
EnergySystem(int colour, String abbreviation, int xBar, int yBar, int altColour) {
this.colour = colour;
this.abbreviation = abbreviation;
this.xBar = xBar;
this.yBar = yBar;
this.altColour = altColour;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B