Skip to content

Commit

Permalink
Finish port to 1.20.4
Browse files Browse the repository at this point in the history
  • Loading branch information
CodexAdrian committed Jan 10, 2024
1 parent 280f1ae commit 8901f55
Show file tree
Hide file tree
Showing 41 changed files with 380 additions and 344 deletions.
10 changes: 7 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@ subprojects {
includeGroup("maven.modrinth")
}
}
maven {
url = uri("https://jm.gserv.me/repository/maven-public/")
content {
includeGroup("info.journeymap")
}
}
}

dependencies {
Expand Down Expand Up @@ -95,6 +101,7 @@ subprojects {
// "modCompileOnly"(group = "earth.terrarium.prometheus", name = "prometheus-$modLoader-1.20", version = prometheusVersion) { isTransitive = false }
"modCompileOnly"(group = "me.shedaniel", name = "RoughlyEnoughItems-api", version = reiVersion)
"modCompileOnly"(group = "me.shedaniel", name = "RoughlyEnoughItems-default-plugin", version = reiVersion)
implementation("io.github.llamalad7:mixinextras-common:0.3.2")
} else {
// "modLocalRuntime"(group = "earth.terrarium.prometheus", name = "prometheus-$modLoader-1.20", version = prometheusVersion)
"modRuntimeOnly"(group = "me.shedaniel", name = "RoughlyEnoughItems-$modLoader", version = reiVersion)
Expand All @@ -111,9 +118,6 @@ subprojects {
"modApi"(group = "net.blay09.mods", name = "waystones-$modLoader", version = waystonesVersion) {
exclude(group = "net.blay09.mods", module = "shared-bridge")
}

implementation("io.github.llamalad7:mixinextras-common:0.3.1")
implementation("io.github.llamalad7:mixinextras-forge:0.3.1")
}

java {
Expand Down
2 changes: 1 addition & 1 deletion changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# 2.3.3

- "tempad:experience_levels" now works as an alias for "tempad:experience_level"
- Port to 1.20.4
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class TempadClient {
};

public static void init() {
Tempad.CONFIGURATOR.registerConfig(TempadClientConfig.class);
Tempad.CONFIGURATOR.register(TempadClientConfig.class);
}

public static void initItemProperties() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package me.codexadrian.tempad.client.config;

import com.teamresourceful.resourcefulconfig.common.annotations.Comment;
import com.teamresourceful.resourcefulconfig.common.annotations.Config;
import com.teamresourceful.resourcefulconfig.common.annotations.ConfigEntry;
import com.teamresourceful.resourcefulconfig.common.config.EntryType;
import com.teamresourceful.resourcefulconfig.api.annotations.Comment;
import com.teamresourceful.resourcefulconfig.api.annotations.Config;
import com.teamresourceful.resourcefulconfig.api.annotations.ConfigEntry;
import com.teamresourceful.resourcefulconfig.api.types.options.EntryType;
import me.codexadrian.tempad.common.Tempad;

@Config("tempad-client")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package me.codexadrian.tempad.client.gui;

import com.mojang.blaze3d.systems.RenderSystem;
import com.teamresourceful.resourcefulconfig.client.components.base.SpriteButton;
import com.teamresourceful.resourcefullib.client.components.selection.SelectionList;
import me.codexadrian.tempad.api.options.TempadOption;
import me.codexadrian.tempad.client.config.TempadClientConfig;
Expand Down Expand Up @@ -64,6 +65,32 @@ protected void init() {
int offset = 3;
int cornerX = (width - TEMPAD_WIDTH) / 2;
int cornerY = (height - TEMPAD_HEIGHT) / 2;

addRenderableOnly((graphics, mouseX, mouseY, partialTicks) -> {
graphics.blit(SCREEN, (width - TEMPAD_WIDTH) / 2, (height - TEMPAD_HEIGHT) / 2, TEMPAD_WIDTH, TEMPAD_HEIGHT, 0, 0, TEMPAD_WIDTH, TEMPAD_HEIGHT, 256, 256);
});

addRenderableOnly((graphics, mouseX, mouseY, partialTicks) -> {
int barHeight = 0;
ItemStack tempad = TeleportUtils.findTempad(minecraft.player);
if (tempad.getItem() instanceof TempadItem item) {
TempadOption option = item.getOption();
if(option.isDurabilityBarVisible(tempad)) {
barHeight = (int) (option.getPercentage(tempad) * 54);
} else {
barHeight = option.canTimedoorOpen(minecraft.player, tempad) ? 54 : 0;
}

graphics.blit(SCREEN, (width - TEMPAD_WIDTH) / 2 + 234, (height - TEMPAD_HEIGHT) / 2 + 42 + 54 - barHeight, 6, barHeight, 249, 54 - barHeight, 6, barHeight, 256, 256);

if (mouseX >= (width - TEMPAD_WIDTH) / 2 + 234 && mouseX <= (width - TEMPAD_WIDTH) / 2 + 240 && mouseY >= (height - TEMPAD_HEIGHT) / 2 + 42 && mouseY <= (height - TEMPAD_HEIGHT) / 2 + 96) {
List<Component> tooltip = new ArrayList<>();
option.addToolTip(tempad, minecraft.level, tooltip, TooltipFlag.NORMAL);
graphics.renderTooltip(font, tooltip, Optional.empty(), mouseX, mouseY);
}
}
});

informationPanel = addRenderableWidget(new SelectionList<>(cornerX + 16, cornerY + 33, 91, 78, 10, textEntry -> {}));
locationPanel = addRenderableWidget(new SelectionList<>(cornerX + 129, cornerY + 31, 91, 92, 10, textEntry -> {
if (textEntry != null && textEntry.data != null) {
Expand Down Expand Up @@ -209,33 +236,6 @@ private void newLocationAction(String name) {
}
}

@Override
public void render(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) {
renderBackground(graphics);
graphics.blit(SCREEN, (width - TEMPAD_WIDTH) / 2, (height - TEMPAD_HEIGHT) / 2, TEMPAD_WIDTH, TEMPAD_HEIGHT, 0, 0, TEMPAD_WIDTH, TEMPAD_HEIGHT, 256, 256);

super.render(graphics, mouseX, mouseY, partialTicks);

int barHeight = 0;
ItemStack tempad = TeleportUtils.findTempad(minecraft.player);
if (tempad.getItem() instanceof TempadItem item) {
TempadOption option = item.getOption();
if(option.isDurabilityBarVisible(tempad)) {
barHeight = (int) (option.getPercentage(tempad) * 54);
} else {
barHeight = option.canTimedoorOpen(minecraft.player, tempad) ? 54 : 0;
}

graphics.blit(SCREEN, (width - TEMPAD_WIDTH) / 2 + 234, (height - TEMPAD_HEIGHT) / 2 + 42 + 54 - barHeight, 6, barHeight, 249, 54 - barHeight, 6, barHeight, 256, 256);

if (mouseX >= (width - TEMPAD_WIDTH) / 2 + 234 && mouseX <= (width - TEMPAD_WIDTH) / 2 + 240 && mouseY >= (height - TEMPAD_HEIGHT) / 2 + 42 && mouseY <= (height - TEMPAD_HEIGHT) / 2 + 96) {
List<Component> tooltip = new ArrayList<>();
option.addToolTip(tempad, minecraft.level, tooltip, TooltipFlag.NORMAL);
graphics.renderTooltip(font, tooltip, Optional.empty(), mouseX, mouseY);
}
}
}

public <R extends Renderable & TemporaryWidget> R addTemporary(R renderable) {
addRenderableOnly(renderable);
this.temporaryWidgets.add(renderable);
Expand Down Expand Up @@ -306,9 +306,6 @@ protected TempadButton(int x, int y, int width, int height, Component message, O

@Override
protected void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) {
guiGraphics.setColor(1.0F, 1.0F, 1.0F, this.alpha);
RenderSystem.enableBlend();
RenderSystem.enableDepthTest();
guiGraphics.blit(SCREEN, this.getX(), this.getY(), this.getWidth(), this.getHeight(), buttonOffset * 14, this.getTextureY(), this.getWidth(), this.getHeight(), 256, 256);
}

Expand Down
5 changes: 2 additions & 3 deletions common/src/main/java/me/codexadrian/tempad/common/Tempad.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package me.codexadrian.tempad.common;

import com.teamresourceful.resourcefulconfig.common.config.Configurator;
import com.teamresourceful.resourcefulconfig.api.loader.Configurator;
import dev.architectury.injectables.annotations.ExpectPlatform;
import me.codexadrian.tempad.common.compat.botarium.BotariumTempadOptionRegistry;
import me.codexadrian.tempad.common.compat.waystones.WaystoneLocationGetter;
Expand All @@ -14,7 +14,6 @@
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.dimension.DimensionType;
import net.minecraft.world.level.material.Fluid;
import org.slf4j.Logger;
Expand Down Expand Up @@ -47,7 +46,7 @@ public static void init() {
WaystoneLocationGetter.init();
}

CONFIGURATOR.registerConfig(TempadConfig.class);
CONFIGURATOR.register(TempadConfig.class);
TempadRegistry.ITEMS.init();
TempadRegistry.ENTITIES.init();
NetworkHandler.register();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,10 @@
import earth.terrarium.botarium.common.energy.impl.SimpleEnergyContainer;
import earth.terrarium.botarium.common.energy.impl.WrappedItemEnergyContainer;
import earth.terrarium.botarium.common.fluid.FluidApi;
import earth.terrarium.botarium.common.fluid.impl.SimpleFluidContainer;
import earth.terrarium.botarium.common.fluid.impl.WrappedItemFluidContainer;
import earth.terrarium.botarium.common.fluid.utils.FluidHooks;
import me.codexadrian.tempad.api.options.TempadOption;
import me.codexadrian.tempad.api.options.TempadOptionApi;
import me.codexadrian.tempad.common.Tempad;
import me.codexadrian.tempad.common.compat.botarium.options.EnergyOption;
import me.codexadrian.tempad.common.compat.botarium.options.FluidOption;
import me.codexadrian.tempad.common.config.TempadConfig;
import me.codexadrian.tempad.common.items.TempadItem;
import me.codexadrian.tempad.common.registry.TempadRegistry;

Expand All @@ -25,7 +20,7 @@ public static void preInit() {
public static void postInit() {
EnergyApi.registerEnergyItem(TempadRegistry.TEMPAD, stack -> {
if (stack.getItem() instanceof TempadItem item && item.getOption() instanceof EnergyOption) {
return new WrappedItemEnergyContainer(stack, new TempadEnergyContainer(TempadOptionApi.getFuelCapacity(stack)));
return new WrappedItemEnergyContainer(stack, new SimpleEnergyContainer(TempadOptionApi.getFuelCapacity(stack), Integer.MAX_VALUE, Integer.MAX_VALUE));
}
return null;
});
Expand All @@ -38,7 +33,7 @@ public static void postInit() {

EnergyApi.registerEnergyItem(TempadRegistry.CREATIVE_TEMPAD, stack -> {
if (stack.getItem() instanceof TempadItem item && item.getOption() instanceof EnergyOption) {
return new WrappedItemEnergyContainer(stack, new TempadEnergyContainer(TempadOptionApi.getFuelCapacity(stack)));
return new WrappedItemEnergyContainer(stack, new SimpleEnergyContainer(TempadOptionApi.getFuelCapacity(stack), Integer.MAX_VALUE, Integer.MAX_VALUE));
}
return null;
});
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package me.codexadrian.tempad.common.compat.botarium;

import earth.terrarium.botarium.common.fluid.base.FluidHolder;
import earth.terrarium.botarium.common.fluid.impl.SimpleFluidContainer;
import me.codexadrian.tempad.common.Tempad;

import java.util.function.BiPredicate;
import java.util.function.IntToLongFunction;

public class TempadFluidContainer extends SimpleFluidContainer {
public TempadFluidContainer(long maxAmount) {
super(integer -> maxAmount, 1, (integer, fluidHolder) -> fluidHolder.is(Tempad.TEMPAD_LIQUID_FUEL_TAG));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,30 @@
package me.codexadrian.tempad.common.compat.botarium.options;

import earth.terrarium.botarium.common.energy.EnergyApi;
import earth.terrarium.botarium.common.energy.base.EnergyContainer;
import earth.terrarium.botarium.common.item.ItemStackHolder;
import me.codexadrian.tempad.api.options.TempadOption;
import me.codexadrian.tempad.api.options.TempadOptionApi;
import me.codexadrian.tempad.common.utils.TeleportUtils;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import org.jetbrains.annotations.Range;

import java.util.List;

public class EnergyOption extends TempadOption {
@Override
public boolean canTimedoorOpen(Player player, ItemStack stack) {
EnergyContainer energyStorage = EnergyApi.getItemEnergyContainer(new ItemStackHolder(stack));
EnergyContainer energyStorage = EnergyContainer.of(new ItemStackHolder(stack));
if (energyStorage == null) return false;
return energyStorage.getStoredEnergy() >= TempadOptionApi.getFuelCost(stack);
}

@Override
public void addToolTip(ItemStack stack, Level level, List<Component> components, TooltipFlag flag) {
EnergyContainer energyStorage = EnergyApi.getItemEnergyContainer(new ItemStackHolder(stack));
EnergyContainer energyStorage = EnergyContainer.of(new ItemStackHolder(stack));
if (energyStorage == null) return;
components.add(Component.translatable("tempad_option.tempad.energy", energyStorage.getStoredEnergy(), energyStorage.getMaxCapacity()).withStyle(ChatFormatting.GRAY));
components.add(Component.translatable("tempad_option.tempad.energy_cost", TempadOptionApi.getFuelCost(stack)).withStyle(ChatFormatting.GRAY));
Expand All @@ -37,7 +34,7 @@ public void addToolTip(ItemStack stack, Level level, List<Component> components,
public void onTimedoorOpen(Player player) {
ItemStack itemStack = TeleportUtils.findTempad(player);
ItemStackHolder holder = new ItemStackHolder(itemStack);
EnergyContainer energyStorage = EnergyApi.getItemEnergyContainer(holder);
EnergyContainer energyStorage = EnergyContainer.of(holder);
if (energyStorage == null) return;
energyStorage.internalExtract(TempadOptionApi.getFuelCost(itemStack), false);
if (holder.isDirty()) {
Expand All @@ -52,7 +49,7 @@ public boolean isDurabilityBarVisible(ItemStack stack) {

@Override
public double getPercentage(ItemStack stack) {
EnergyContainer energyStorage = EnergyApi.getItemEnergyContainer(new ItemStackHolder(stack));
EnergyContainer energyStorage = EnergyContainer.of(new ItemStackHolder(stack));
if (energyStorage == null) return 0;
return (double) energyStorage.getStoredEnergy() / energyStorage.getMaxCapacity();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,50 +1,45 @@
package me.codexadrian.tempad.common.compat.botarium.options;

import dev.architectury.injectables.annotations.ExpectPlatform;
import earth.terrarium.botarium.common.energy.EnergyApi;
import earth.terrarium.botarium.common.energy.base.EnergyContainer;
import earth.terrarium.botarium.common.fluid.FluidApi;
import earth.terrarium.botarium.common.fluid.FluidConstants;
import earth.terrarium.botarium.common.fluid.base.FluidContainer;
import earth.terrarium.botarium.common.fluid.base.FluidHolder;
import earth.terrarium.botarium.common.fluid.base.ItemFluidContainer;
import earth.terrarium.botarium.common.fluid.utils.FluidHooks;
import earth.terrarium.botarium.common.item.ItemStackHolder;
import me.codexadrian.tempad.api.options.TempadOption;
import me.codexadrian.tempad.api.options.TempadOptionApi;
import me.codexadrian.tempad.common.Tempad;
import me.codexadrian.tempad.common.utils.TeleportUtils;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.material.Fluid;
import org.apache.commons.lang3.NotImplementedException;
import org.jetbrains.annotations.Range;

import java.util.List;

public class FluidOption extends TempadOption {
@Override
public boolean canTimedoorOpen(Player player, ItemStack stack) {
ItemFluidContainer fluidStorage = FluidApi.getItemFluidContainer(new ItemStackHolder(stack));
FluidContainer fluidStorage = FluidContainer.of(new ItemStackHolder(stack));
if (fluidStorage == null) return false;
return !fluidStorage.getFluids().get(0).isEmpty() && fluidStorage.getFluids().get(0).getFluidAmount() >= TempadOptionApi.getFuelCost(stack) && fluidStorage.getFluids().get(0).is(Tempad.TEMPAD_LIQUID_FUEL_TAG);
}

@Override
public void addToolTip(ItemStack stack, Level level, List<Component> components, TooltipFlag flag) {
ItemFluidContainer fluidStorage = FluidApi.getItemFluidContainer(new ItemStackHolder(stack));
FluidContainer fluidStorage = FluidContainer.of(new ItemStackHolder(stack));
if (fluidStorage == null) return;
components.add(Component.translatable("tempad_option.tempad.fluid", getFluidName(fluidStorage.getFluids().get(0).getFluid()), FluidHooks.toMillibuckets(fluidStorage.getFluids().get(0).getFluidAmount()), FluidHooks.toMillibuckets(fluidStorage.getTankCapacity(0))).withStyle(ChatFormatting.GRAY));
components.add(Component.translatable("tempad_option.tempad.fluid", getFluidName(fluidStorage.getFluids().get(0).getFluid()), FluidConstants.toMillibuckets(fluidStorage.getFluids().get(0).getFluidAmount()), FluidConstants.toMillibuckets(fluidStorage.getTankCapacity(0))).withStyle(ChatFormatting.GRAY));
}

@Override
public void onTimedoorOpen(Player player) {
ItemStack stack = TeleportUtils.findTempad(player);
ItemStackHolder holder = new ItemStackHolder(stack);
ItemFluidContainer fluidStorage = FluidApi.getItemFluidContainer(holder);
FluidContainer fluidStorage = FluidContainer.of(holder);
if (fluidStorage == null) return;
FluidHolder fluid = fluidStorage.getFluids().get(0);
fluid.setAmount(TempadOptionApi.getFuelCost(stack));
Expand All @@ -61,7 +56,7 @@ public boolean isDurabilityBarVisible(ItemStack stack) {

@Override
public double getPercentage(ItemStack stack) {
ItemFluidContainer fluidStorage = FluidApi.getItemFluidContainer(new ItemStackHolder(stack));
FluidContainer fluidStorage = FluidContainer.of(new ItemStackHolder(stack));
if (fluidStorage == null || fluidStorage.isEmpty()) return 0;
return (double) fluidStorage.getFluids().get(0).getFluidAmount() / fluidStorage.getTankCapacity(0);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
package me.codexadrian.tempad.common.compat.waystones;

import me.codexadrian.tempad.api.locations.LocationsApi;
import me.codexadrian.tempad.common.config.ConfigCache;
import me.codexadrian.tempad.common.config.TempadConfig;
import me.codexadrian.tempad.common.data.LocationData;
import net.blay09.mods.waystones.api.IWaystone;
import net.blay09.mods.waystones.api.Waystone;
import net.blay09.mods.waystones.core.PlayerWaystoneManager;
import net.minecraft.world.entity.player.Player;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;

public class WaystoneLocationGetter {
public static void init() {
Expand All @@ -20,9 +16,9 @@ public static void init() {
var locations = new HashMap<UUID, LocationData>();
Player player = level.getPlayerByUUID(uuid);
if (player != null) {
List<IWaystone> waystones = PlayerWaystoneManager.getWaystones(player);
Collection<Waystone> waystones = PlayerWaystoneManager.getActivatedWaystones(player);
for (var waystone : waystones) {
LocationData value = new LocationData(waystone.getName(), waystone.getDimension(), waystone.getPos().above(2), waystone.getWaystoneUid(), true, false, false);
LocationData value = new LocationData(waystone.getName().getString(), waystone.getDimension(), waystone.getPos().above(2), waystone.getWaystoneUid(), true, false, false);
locations.put(waystone.getWaystoneUid(), value);
}
}
Expand Down
Loading

0 comments on commit 8901f55

Please sign in to comment.