diff --git a/src/main/java/org/violetmoon/zeta/client/ClientRegistryExtension.java b/src/main/java/org/violetmoon/zeta/client/ClientRegistryExtension.java index a4a3463..0042a35 100644 --- a/src/main/java/org/violetmoon/zeta/client/ClientRegistryExtension.java +++ b/src/main/java/org/violetmoon/zeta/client/ClientRegistryExtension.java @@ -46,7 +46,7 @@ public void registerItemColorHandlers(ZAddItemColorHandlers event) { DyeablesRegistry dyeables = z.dyeables; ClampedItemPropertyFunction isDyed = (stack, level, entity, i) -> dyeables.isDyed(stack) ? 1 : 0; - ItemColor color = (stack, layer) -> layer == 0 ? dyeables.getColor(stack) : 0xFF_FF_FF; + ItemColor color = (stack, layer) -> layer == 0 ? dyeables.getColor(stack).rgb() : 0xFF_FF_FF; //apparently ItemPropertyFunctions are weird and can only be assigned to the minecraft: namespace ResourceLocation isDyedId = ResourceLocation.withDefaultNamespace( z.modid + "_dyed"); diff --git a/src/main/java/org/violetmoon/zeta/client/ClientTicker.java b/src/main/java/org/violetmoon/zeta/client/ClientTicker.java index 95e9201..2aeffd0 100644 --- a/src/main/java/org/violetmoon/zeta/client/ClientTicker.java +++ b/src/main/java/org/violetmoon/zeta/client/ClientTicker.java @@ -1,7 +1,7 @@ package org.violetmoon.zeta.client; import org.violetmoon.zeta.client.event.play.ZClientTick; -import org.violetmoon.zeta.client.event.play.ZRenderTick; +import org.violetmoon.zeta.client.event.play.ZRenderFrame; import org.violetmoon.zeta.event.bus.PlayEvent; import org.violetmoon.zeta.event.bus.ZPhase; @@ -15,7 +15,7 @@ public final class ClientTicker { public float total = 0; @PlayEvent - public void onRenderTick(ZRenderTick event) { + public void onRenderTick(ZRenderFrame event) { if(event.isStartPhase()) partialTicks = event.getRenderTickTime(); else diff --git a/src/main/java/org/violetmoon/zeta/client/TopLayerTooltipHandler.java b/src/main/java/org/violetmoon/zeta/client/TopLayerTooltipHandler.java index 6fe5106..a5f19d0 100644 --- a/src/main/java/org/violetmoon/zeta/client/TopLayerTooltipHandler.java +++ b/src/main/java/org/violetmoon/zeta/client/TopLayerTooltipHandler.java @@ -10,7 +10,7 @@ import net.neoforged.neoforge.client.ClientHooks; import org.joml.Matrix4f; import org.joml.Matrix4fStack; -import org.violetmoon.zeta.client.event.play.ZRenderTick; +import org.violetmoon.zeta.client.event.play.ZRenderFrame; import org.violetmoon.zeta.event.bus.PlayEvent; import java.util.List; @@ -24,7 +24,7 @@ public class TopLayerTooltipHandler { private int tooltipX, tooltipY; @PlayEvent - public void renderTick(ZRenderTick event) { + public void renderTick(ZRenderFrame event) { if(tooltip != null && event.isEndPhase()) { Minecraft mc = Minecraft.getInstance(); Screen screen = mc.screen; diff --git a/src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java b/src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java index 3496797..e3bc51c 100644 --- a/src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java +++ b/src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java @@ -3,6 +3,7 @@ import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.resources.ResourceLocation; import net.neoforged.neoforge.client.model.geometry.IGeometryLoader; import org.violetmoon.zeta.event.bus.IZetaLoadEvent; @@ -11,21 +12,21 @@ public interface ZModel extends IZetaLoadEvent { interface ModifyBakingResult extends ZModel { - Map getModels(); + Map getModels(); ModelBakery getModelBakery(); } interface BakingCompleted extends ZModel { ModelManager getModelManager(); - Map getModels(); + Map getModels(); ModelBakery getModelBakery(); } interface RegisterAdditional extends ZModel { - void register(ResourceLocation model); + void register(ModelResourceLocation model); } interface RegisterGeometryLoaders extends ZModel { - void register(String name, IGeometryLoader loader); + void register(ResourceLocation id, IGeometryLoader loader); } } diff --git a/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderTick.java b/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderFrame.java similarity index 87% rename from src/main/java/org/violetmoon/zeta/client/event/play/ZRenderTick.java rename to src/main/java/org/violetmoon/zeta/client/event/play/ZRenderFrame.java index 697bcaf..d1e6db4 100644 --- a/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderTick.java +++ b/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderFrame.java @@ -8,7 +8,7 @@ * will not work, Use {@link ZEarlyRender } instead. *

*/ -public interface ZRenderTick extends IZetaPlayEvent { +public interface ZRenderFrame extends IZetaPlayEvent { float getRenderTickTime(); boolean isEndPhase(); diff --git a/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderGuiOverlay.java b/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderGuiOverlay.java index 78d4fa8..93a689b 100644 --- a/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderGuiOverlay.java +++ b/src/main/java/org/violetmoon/zeta/client/event/play/ZRenderGuiOverlay.java @@ -1,5 +1,6 @@ package org.violetmoon.zeta.client.event.play; +import net.minecraft.client.DeltaTracker; import org.violetmoon.zeta.event.bus.IZetaPlayEvent; import com.mojang.blaze3d.platform.Window; @@ -9,7 +10,7 @@ public interface ZRenderGuiOverlay extends IZetaPlayEvent { Window getWindow(); GuiGraphics getGuiGraphics(); - float getPartialTick(); + DeltaTracker getPartialTick(); boolean shouldDrawSurvivalElements(); int getLeftHeight(); //weird ForgeGui stuff diff --git a/src/main/java/org/violetmoon/zeta/event/play/entity/player/ZRightClickBlock.java b/src/main/java/org/violetmoon/zeta/event/play/entity/player/ZRightClickBlock.java index e17f5f2..1cae111 100644 --- a/src/main/java/org/violetmoon/zeta/event/play/entity/player/ZRightClickBlock.java +++ b/src/main/java/org/violetmoon/zeta/event/play/entity/player/ZRightClickBlock.java @@ -1,5 +1,6 @@ package org.violetmoon.zeta.event.play.entity.player; +import net.neoforged.neoforge.common.util.TriState; import org.violetmoon.zeta.event.bus.Cancellable; import org.violetmoon.zeta.event.bus.IZetaPlayEvent; import org.violetmoon.zeta.event.bus.Resultable; @@ -22,7 +23,7 @@ public interface ZRightClickBlock extends IZetaPlayEvent, Cancellable, Resultabl BlockHitResult getHitVec(); Direction getFace(); - ZResult getUseBlock(); + TriState getUseBlock(); void setCancellationResult(InteractionResult result); diff --git a/src/main/java/org/violetmoon/zeta/item/ext/IZetaItemExtensions.java b/src/main/java/org/violetmoon/zeta/item/ext/IZetaItemExtensions.java index 32da1ab..8765b8d 100644 --- a/src/main/java/org/violetmoon/zeta/item/ext/IZetaItemExtensions.java +++ b/src/main/java/org/violetmoon/zeta/item/ext/IZetaItemExtensions.java @@ -4,6 +4,7 @@ import java.util.function.Consumer; import net.minecraft.world.item.*; +import net.minecraft.world.item.enchantment.Enchantments; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -74,6 +75,7 @@ default int getEnchantmentLevelZeta(ItemStack stack, Enchantment enchantment) { } default Map getAllEnchantmentsZeta(ItemStack stack) { + Enchantments return EnchantmentHelper.deserializeEnchantments(stack.getEnchantmentTags()); } diff --git a/src/main/java/org/violetmoon/zeta/mod/ZetaMod.java b/src/main/java/org/violetmoon/zeta/mod/ZetaMod.java index bea5684..b328a38 100644 --- a/src/main/java/org/violetmoon/zeta/mod/ZetaMod.java +++ b/src/main/java/org/violetmoon/zeta/mod/ZetaMod.java @@ -5,7 +5,6 @@ import org.violetmoon.zeta.event.bus.LoadEvent; import org.violetmoon.zeta.event.load.ZCommonSetup; import org.violetmoon.zeta.network.ZetaModInternalNetwork; -import org.violetmoon.zetaimplforge.config.ConfigEventDispatcher; public class ZetaMod { diff --git a/src/main/java/org/violetmoon/zeta/network/ZetaMessageSerializer.java b/src/main/java/org/violetmoon/zeta/network/ZetaMessageSerializer.java index 885ccb2..86f1fa4 100644 --- a/src/main/java/org/violetmoon/zeta/network/ZetaMessageSerializer.java +++ b/src/main/java/org/violetmoon/zeta/network/ZetaMessageSerializer.java @@ -28,7 +28,7 @@ public final class ZetaMessageSerializer { private final HashMap, Field[]> fieldCache = new HashMap<>(); { - this.mapFunctions(byte.class, FriendlyByteBuf::readByte, FriendlyByteBuf::writeByte); + this.mapFunctions(byte.class, FriendlyByteBuf::readByte, FriendlyByteBuf::writeByte); this.mapFunctions(short.class, FriendlyByteBuf::readShort, FriendlyByteBuf::writeShort); mapFunctions(int.class, FriendlyByteBuf::readInt, FriendlyByteBuf::writeInt); mapFunctions(long.class, FriendlyByteBuf::readLong, FriendlyByteBuf::writeLong); @@ -186,11 +186,11 @@ private static void writeString(FriendlyByteBuf buf, String string) { // Functional interfaces // ================================================================ - public static interface Reader { - public T read(FriendlyByteBuf buf, Field field); + public interface Reader { + T read(FriendlyByteBuf buf, Field field); } - public static interface Writer { - public void write(FriendlyByteBuf buf, Field field, T t); + public interface Writer { + void write(FriendlyByteBuf buf, Field field, T t); } } diff --git a/src/main/java/org/violetmoon/zeta/registry/BrewingRegistry.java b/src/main/java/org/violetmoon/zeta/registry/BrewingRegistry.java index 863db52..3ccd74c 100644 --- a/src/main/java/org/violetmoon/zeta/registry/BrewingRegistry.java +++ b/src/main/java/org/violetmoon/zeta/registry/BrewingRegistry.java @@ -4,6 +4,7 @@ import java.util.function.Supplier; import net.minecraft.core.Holder; +import net.minecraft.world.item.Item; import org.jetbrains.annotations.Nullable; import org.violetmoon.zeta.Zeta; import org.violetmoon.zeta.recipe.FlagIngredient; @@ -24,6 +25,8 @@ * @author WireSegal * Created at 3:34 PM on 9/23/19. */ + +//Todo: This NEEDS a rewrite, I feel its been butchered in 1.21 public abstract class BrewingRegistry { protected final Zeta zeta; @@ -32,22 +35,22 @@ public BrewingRegistry(Zeta zeta) { this.zeta = zeta; } - public void addPotionMix(String flag, Supplier reagent, MobEffect effect) { + public void addPotionMix(String flag, Item reagent, MobEffect effect) { addPotionMix(flag, reagent, effect, null); } - public void addPotionMix(String flag, Supplier reagent, MobEffect effect, + public void addPotionMix(String flag, Item reagent, MobEffect effect, int normalTime, int longTime, int strongTime) { addPotionMix(flag, reagent, effect, null, normalTime, longTime, strongTime); } - public void addPotionMix(String flag, Supplier reagent, MobEffect effect, - @Nullable MobEffect negation) { + public void addPotionMix(String flag, Item reagent, MobEffect effect, + @Nullable MobEffect negation) { addPotionMix(flag, reagent, effect, negation, 3600, 9600, 1800); } - public void addPotionMix(String flag, Supplier reagent, MobEffect effect, + public void addPotionMix(String flag, Item reagent, MobEffect effect, @Nullable MobEffect negation, int normalTime, int longTime, int strongTime) { ResourceLocation loc = zeta.registry.getRegistryName(effect, BuiltInRegistries.MOB_EFFECT); @@ -79,44 +82,47 @@ public void addPotionMix(String flag, Supplier reagent, MobEffect ef } - public void addPotionMix(String flag, Supplier reagent, Potion normalType, Potion longType, @Nullable Potion strongType) { + public void addPotionMix(String flag, Item reagent, Potion normalType, Potion longType, @Nullable Potion strongType) { boolean hasStrong = strongType != null; addFlaggedRecipe(flag, Potions.AWKWARD.value(), reagent, normalType); addFlaggedRecipe(flag, Potions.WATER.value(), reagent, Potions.MUNDANE.value()); if (hasStrong) - addFlaggedRecipe(flag, normalType, BrewingRegistry::glowstone, strongType); - addFlaggedRecipe(flag, normalType, BrewingRegistry::redstone, longType); + addFlaggedRecipe(flag, normalType, Items.GLOWSTONE, strongType); + addFlaggedRecipe(flag, normalType, Items.REDSTONE, longType); } public void addNegation(String flag, Potion normalType, Potion longType, @Nullable Potion strongType, Potion normalNegatedType, Potion longNegatedType, @Nullable Potion strongNegatedType) { - addFlaggedRecipe(flag, normalType, BrewingRegistry::spiderEye, normalNegatedType); + addFlaggedRecipe(flag, normalType, Items.FERMENTED_SPIDER_EYE, normalNegatedType); boolean hasStrong = strongType != null && strongNegatedType != null; if (hasStrong) { - addFlaggedRecipe(flag, strongType, BrewingRegistry::spiderEye, strongNegatedType); - addFlaggedRecipe(flag, normalNegatedType, BrewingRegistry::glowstone, strongNegatedType); + addFlaggedRecipe(flag, strongType, Items.FERMENTED_SPIDER_EYE, strongNegatedType); + addFlaggedRecipe(flag, normalNegatedType, Items.GLOWSTONE_DUST, strongNegatedType); } - addFlaggedRecipe(flag, longType, BrewingRegistry::spiderEye, longNegatedType); - addFlaggedRecipe(flag, normalNegatedType, BrewingRegistry::redstone, longNegatedType); + addFlaggedRecipe(flag, longType, Items.FERMENTED_SPIDER_EYE, longNegatedType); + addFlaggedRecipe(flag, normalNegatedType, Items.REDSTONE, longNegatedType); } protected final Map flaggedPotions = Maps.newHashMap(); - protected void addFlaggedRecipe(String flag, Potion potion, Supplier reagent, Potion to) { + protected void addFlaggedRecipe(String flag, Potion potion, Item reagent, Potion to) { flaggedPotions.put(to, flag); - Supplier flagIngredientSupplier = () -> new FlagIngredient( - reagent.get(), + /*Supplier flagIngredientSupplier = () -> new FlagIngredient( + reagent, flag, zeta.configManager.getConfigFlagManager(), zeta.configManager.getConfigFlagManager().flagIngredientSerializer - ); + );*/ + //todo: Chat checkup on this + if (zeta.configManager.getConfigFlagManager().getFlag(flag)) { + addBrewingRecipe(potion, reagent, to); + }; - addBrewingRecipe(potion, flagIngredientSupplier, to); } protected Potion registerPotion(MobEffectInstance eff, String baseName, String name) { @@ -132,17 +138,5 @@ public boolean isEnabled(Potion potion) { return zeta.configManager.getConfigFlagManager().getFlag(flaggedPotions.get(potion)); } - public static Ingredient redstone() { - return Ingredient.of(Items.REDSTONE); - } - - public static Ingredient glowstone() { - return Ingredient.of(Items.GLOWSTONE_DUST); - } - - public static Ingredient spiderEye() { - return Ingredient.of(Items.FERMENTED_SPIDER_EYE); - } - - protected abstract void addBrewingRecipe(Potion potion, Supplier reagent, Potion result); + protected abstract void addBrewingRecipe(Potion input, Item reagentSupplier, Potion output); } diff --git a/src/main/java/org/violetmoon/zeta/registry/DyeablesRegistry.java b/src/main/java/org/violetmoon/zeta/registry/DyeablesRegistry.java index a039475..2de0094 100644 --- a/src/main/java/org/violetmoon/zeta/registry/DyeablesRegistry.java +++ b/src/main/java/org/violetmoon/zeta/registry/DyeablesRegistry.java @@ -5,8 +5,11 @@ import java.util.Map; import java.util.function.BooleanSupplier; +import net.minecraft.core.component.DataComponents; +import net.minecraft.stats.Stats; import net.minecraft.world.ItemInteractionResult; -import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.component.DyedItemColor; +import org.jetbrains.annotations.NotNull; import org.violetmoon.zeta.event.bus.LoadEvent; import org.violetmoon.zeta.event.load.ZRegister; import org.violetmoon.zeta.module.ZetaModule; @@ -18,7 +21,6 @@ import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.DyeItem; import net.minecraft.world.item.Item; @@ -34,7 +36,7 @@ public class DyeablesRegistry { //todo: This needs a redo public final Map dyeableConditions = new HashMap<>(); - public final DyeableLeatherItem SURROGATE = new DyeableLeatherItem() {}; //Simply an accessor for various DyeableLeatherItem default methods + //public final DyeableLeatherItem SURROGATE = new DyeableLeatherItem() {}; //Simply an accessor for various DyeableLeatherItem default methods @LoadEvent public void register(ZRegister event) { @@ -53,13 +55,13 @@ public void registerPost(ZRegister.Post event) { class WashingInteraction implements CauldronInteraction { //Copy of CauldronInteraction.DYED_ITEM @Override - public ItemInteractionResult interact(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, ItemStack stack) { + public @NotNull ItemInteractionResult interact(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, ItemStack stack) { if(!isDyed(stack)) return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; if(!level.isClientSide) { - SURROGATE.clearColor(stack); - //player.awardStat(Stats.CLEAN_ARMOR); + stack.remove(DataComponents.DYED_COLOR); + player.awardStat(Stats.CLEAN_ARMOR); LayeredCauldronBlock.lowerFillLevel(state, level, pos); } @@ -85,20 +87,20 @@ public boolean isDyeable(ItemStack stack) { } public boolean isDyed(ItemStack stack) { - return isDyeable(stack) && SURROGATE.hasCustomColor(stack); + return isDyeable(stack) && stack.getComponents().has(DataComponents.DYED_COLOR); } - public int getDye(ItemStack stack) { - return SURROGATE.getColor(stack); + public DyedItemColor getDye(ItemStack stack) { + return stack.getComponents().get(DataComponents.DYED_COLOR); } - public void applyDye(ItemStack stack, int color) { + public void applyDye(ItemStack stack, DyedItemColor color) { if(isDyeable(stack)) - SURROGATE.setColor(stack, color); + stack.update(DataComponents.DYED_COLOR, color, dyedItemColor -> dyedItemColor); } - public int getColor(ItemStack stack) { - return isDyed(stack) ? SURROGATE.getColor(stack) : 0xFF_FF_FF; + public DyedItemColor getColor(ItemStack stack) { + return isDyed(stack) ? stack.getComponents().get(DataComponents.DYED_COLOR) : new DyedItemColor(0xFF_FF_FF, false); } // Copy of DyeableLeatherItem @@ -111,11 +113,11 @@ public ItemStack dyeItem(ItemStack stack, List dyes) { if(isDyeable(stack)) { itemstack = stack.copy(); itemstack.setCount(1); - if(SURROGATE.hasCustomColor(stack)) { - int k = SURROGATE.getColor(itemstack); - float f = (float) (k >> 16 & 255) / 255.0F; - float f1 = (float) (k >> 8 & 255) / 255.0F; - float f2 = (float) (k & 255) / 255.0F; + if(stack.getComponents().has(DataComponents.DYED_COLOR)) { + DyedItemColor k = stack.getComponents().get(DataComponents.DYED_COLOR); + float f = (float) (k.rgb() >> 16 & 255) / 255.0F; + float f1 = (float) (k.rgb() >> 8 & 255) / 255.0F; + float f2 = (float) (k.rgb() & 255) / 255.0F; i += (int) (Math.max(f, Math.max(f1, f2)) * 255.0F); aint[0] += (int) (f * 255.0F); aint[1] += (int) (f1 * 255.0F); @@ -123,15 +125,15 @@ public ItemStack dyeItem(ItemStack stack, List dyes) { ++j; } - for(DyeItem dyeitem : dyes) { - float[] afloat = dyeitem.getDyeColor().getTextureDiffuseColors(); - int i2 = (int) (afloat[0] * 255.0F); - int l = (int) (afloat[1] * 255.0F); - int i1 = (int) (afloat[2] * 255.0F); - i += Math.max(i2, Math.max(l, i1)); - aint[0] += i2; - aint[1] += l; - aint[2] += i1; + for(DyeItem dyeItem : dyes) { + int diffuseColor = dyeItem.getDyeColor().getTextureDiffuseColor(); + float f = (diffuseColor >> 16 & 255) / 255.0F; + float f1 = (diffuseColor >> 8 & 255) / 255.0F; + float f2 = (diffuseColor & 255) / 255.0F; + i += (int) Math.max(f2, Math.max(f, f1)); + aint[0] += (int) f; + aint[1] += (int) f1; + aint[2] += (int) f2; ++j; } @@ -145,7 +147,7 @@ public ItemStack dyeItem(ItemStack stack, List dyes) { l1 = (int) ((float) l1 * f3 / f4); int j2 = (j1 << 8) + k1; j2 = (j2 << 8) + l1; - SURROGATE.setColor(itemstack, j2); + stack.set(DataComponents.DYED_COLOR, new DyedItemColor(j2, false)); return itemstack; } diff --git a/src/main/java/org/violetmoon/zeta/util/MiscUtil.java b/src/main/java/org/violetmoon/zeta/util/MiscUtil.java index be3ede5..44b8dea 100644 --- a/src/main/java/org/violetmoon/zeta/util/MiscUtil.java +++ b/src/main/java/org/violetmoon/zeta/util/MiscUtil.java @@ -105,8 +105,8 @@ public static void addGoalJustAfterLatestWithPriority(GoalSelector selector, int } } - public static void damageStack(Player player, InteractionHand hand, ItemStack stack, int dmg) { - stack.hurtAndBreak(dmg, player, (p) -> p.broadcastBreakEvent(hand)); + public static void damageStack(Player player, ItemStack stack, int dmg) { + stack.hurtAndBreak(dmg, player, stack.getEquipmentSlot()); } public static Vec2 getMinecraftAngles(Vec3 direction) { @@ -178,10 +178,10 @@ public static ItemStack putIntoInv(ItemStack stack, LevelAccessor level, BlockPo if(level != null && blockPos != null && level.getBlockState(blockPos).getBlock() instanceof WorldlyContainerHolder holder) { handler = new SidedInvWrapper(holder.getContainer(level.getBlockState(blockPos), level, blockPos), face); } else if(tile != null) { - LazyOptional opt = tile.getCapability(ForgeCapabilities.ITEM_HANDLER, face); + /*LazyOptional opt = tile.getCapability(ForgeCapabilities.ITEM_HANDLER, face); if(opt.isPresent()) handler = opt.orElse(new ItemStackHandler()); - else if(tile instanceof WorldlyContainer container) + else */if(tile instanceof WorldlyContainer container) handler = new SidedInvWrapper(container, face); else if(tile instanceof Container container) handler = new InvWrapper(container); @@ -209,7 +209,7 @@ public static BlockState fromString(String key) { //gets rid of lambdas that could contain references to blockstate properties we might not have public static BlockBehaviour.Properties copyPropertySafe(BlockBehaviour blockBehaviour) { - BlockBehaviour.Properties p = BlockBehaviour.Properties.copy(blockBehaviour); + BlockBehaviour.Properties p = BlockBehaviour.Properties.ofFullCopy(blockBehaviour); p.lightLevel(s -> 0); p.offsetType(BlockBehaviour.OffsetType.NONE); p.mapColor(blockBehaviour.defaultMapColor()); diff --git a/src/main/java/org/violetmoon/zeta/util/handler/RequiredModTooltipHandler.java b/src/main/java/org/violetmoon/zeta/util/handler/RequiredModTooltipHandler.java index 509e24a..1563c38 100644 --- a/src/main/java/org/violetmoon/zeta/util/handler/RequiredModTooltipHandler.java +++ b/src/main/java/org/violetmoon/zeta/util/handler/RequiredModTooltipHandler.java @@ -62,7 +62,7 @@ public void onTooltip(ZItemTooltip event) { if(ITEMS.containsKey(item)) { String mod = ITEMS.get(item); if (!z.isModLoaded(mod)) { - event.getToolTip().add(Component.translatable("quark.misc.mod_disabled", mod).withStyle(ChatFormatting.GRAY)); + event.getToolTip().add(Component.translatable("quark.misc.mod_disabled", mod).withStyle(ChatFormatting.GRAY)); //todo: Quark reference } } } diff --git a/src/main/java/org/violetmoon/zetaimplforge/ForgeZeta.java b/src/main/java/org/violetmoon/zetaimplforge/ForgeZeta.java index 1b419c7..e4102e6 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/ForgeZeta.java +++ b/src/main/java/org/violetmoon/zetaimplforge/ForgeZeta.java @@ -35,6 +35,9 @@ import net.neoforged.neoforge.event.furnace.FurnaceFuelBurnTimeEvent; import net.neoforged.neoforge.event.level.BlockEvent; import net.neoforged.neoforge.event.level.NoteBlockEvent; +import net.neoforged.neoforge.event.tick.LevelTickEvent; +import net.neoforged.neoforge.event.tick.PlayerTickEvent; +import net.neoforged.neoforge.event.tick.ServerTickEvent; import net.neoforged.neoforge.event.village.VillagerTradesEvent; import net.neoforged.neoforge.event.village.WandererTradesEvent; import net.neoforged.neoforge.registries.RegisterEvent; @@ -247,7 +250,7 @@ public void start(IEventBus modbus) { NeoForge.EVENT_BUS.addListener(this::rightClickItem); NeoForge.EVENT_BUS.addListener(this::livingDeath); NeoForge.EVENT_BUS.addListener(EventPriority.LOWEST, this::livingDeathLowest); - NeoForge.EVENT_BUS.addListener(this::livingTick); + //NeoForge.EVENT_BUS.addListener(this::livingTick); NeoForge.EVENT_BUS.addListener(this::playNoteBlock); NeoForge.EVENT_BUS.addListener(this::lootTableLoad); NeoForge.EVENT_BUS.addListener(this::livingConversion); @@ -282,10 +285,10 @@ public void start(IEventBus modbus) { NeoForge.EVENT_BUS.addListener(this::playerInteractRightClickItem); NeoForge.EVENT_BUS.addListener(this::playerDestroyItem); NeoForge.EVENT_BUS.addListener(this::mobSpawn); - NeoForge.EVENT_BUS.addListener(this::mobSpawnFinalizeSpawn); - NeoForge.EVENT_BUS.addListener(this::mobSpawnFinalizeSpawnLowest); + //NeoForge.EVENT_BUS.addListener(this::mobSpawnFinalizeSpawn); + //NeoForge.EVENT_BUS.addListener(this::mobSpawnFinalizeSpawnLowest); NeoForge.EVENT_BUS.addListener(this::livingChangeTarget); - NeoForge.EVENT_BUS.addListener(this::sleepingLocationCheck); + //NeoForge.EVENT_BUS.addListener(this::sleepingLocationCheck); NeoForge.EVENT_BUS.addListener(this::villagerTrades); NeoForge.EVENT_BUS.addListener(this::anvilRepair); NeoForge.EVENT_BUS.addListener(this::player); @@ -296,7 +299,7 @@ public void start(IEventBus modbus) { NeoForge.EVENT_BUS.addListener(this::entityItemPickup); NeoForge.EVENT_BUS.addListener(this::blockBreak); NeoForge.EVENT_BUS.addListener(this::blockEntityPlace); - NeoForge.EVENT_BUS.addListener(this::blockToolModification); + //NeoForge.EVENT_BUS.addListener(this::blockToolModification); NeoForge.EVENT_BUS.addListener(this::animalTame); NeoForge.EVENT_BUS.addListener(this::bonemeal); NeoForge.EVENT_BUS.addListener(this::entityTeleport); @@ -358,9 +361,9 @@ public void livingDeathLowest(LivingDeathEvent e) { playBus.fire(new ForgeZLivingDeath.Lowest(e), ZLivingDeath.Lowest.class); } - public void livingTick(LivingEvent.LivingTickEvent e) { + /*public void livingTick(LivingEvent.LivingTickEvent e) { playBus.fire(new ForgeZLivingTick(e), ZLivingTick.class); - } + }*/ public void playNoteBlock(NoteBlockEvent.Play e) { playBus.fire(new ForgeZPlayNoteBlock(e), ZPlayNoteBlock.class); @@ -414,14 +417,14 @@ public void livingDropsLowest(LivingDropsEvent e) { playBus.fire(new ForgeZLivingDrops.Lowest(e), ZLivingDrops.Lowest.class); } - public void playerTickStart(TickEvent.PlayerTickEvent e) { - if (e.phase == TickEvent.Phase.START) - playBus.fire(new ForgeZPlayerTick.Start(e), ZPlayerTick.Start.class); + public void playerTickStart(PlayerTickEvent e) { + if (e instanceof PlayerTickEvent.Pre) + playBus.fire(new ForgeZPlayerTick.Pre(e), ZPlayerTick.Start.class); } - public void playerTickEnd(TickEvent.PlayerTickEvent e) { - if (e.phase == TickEvent.Phase.END) - playBus.fire(new ForgeZPlayerTick.End(e), ZPlayerTick.End.class); + public void playerTickEnd(PlayerTickEvent e) { + if (e instanceof PlayerTickEvent.Post) + playBus.fire(new ForgeZPlayerTick.Post(e), ZPlayerTick.End.class); } public void babyEntitySpawn(BabyEntitySpawnEvent e) { @@ -448,23 +451,23 @@ public void levelCaps(AttachCapabilitiesEvent e) { playBus.fire(new ForgeZAttachCapabilities.LevelCaps(capabilityManager, e), ZAttachCapabilities.LevelCaps.class); }*/ - public void serverTickStart(TickEvent.ServerTickEvent e) { - if (e.phase == TickEvent.Phase.START) - playBus.fire(new ForgeZServerTick.Start(e), ZServerTick.Start.class); + public void serverTickStart(ServerTickEvent e) { + if (e instanceof ServerTickEvent.Pre) + playBus.fire(new ForgeZServerTick.Pre(e), ZServerTick.Start.class); } - public void serverTickEnd(TickEvent.ServerTickEvent e) { - if (e.phase == TickEvent.Phase.END) - playBus.fire(new ForgeZServerTick.End(e), ZServerTick.End.class); + public void serverTickEnd(ServerTickEvent e) { + if (e instanceof ServerTickEvent.Post) + playBus.fire(new ForgeZServerTick.Post(e), ZServerTick.End.class); } - public void levelTickStart(TickEvent.LevelTickEvent e) { - if (e.phase == TickEvent.Phase.START) + public void levelTickStart(LevelTickEvent e) { + if (e instanceof LevelTickEvent.Pre) playBus.fire(new ForgeZLevelTick.Start(e), ZLevelTick.Start.class); } - public void levelTickEnd(TickEvent.LevelTickEvent e) { - if (e.phase == TickEvent.Phase.END) + public void levelTickEnd(LevelTickEvent e) { + if (e instanceof LevelTickEvent.Post) playBus.fire(new ForgeZLevelTick.End(e), ZLevelTick.End.class); } @@ -496,13 +499,13 @@ public void mobSpawn(MobSpawnEvent e) { playBus.fire(new ForgeZMobSpawnEvent(e), ZMobSpawnEvent.class); } - public void mobSpawnFinalizeSpawn(MobSpawnEvent.FinalizeSpawn e) { + /*public void mobSpawnFinalizeSpawn(MobSpawnEvent.FinalizeSpawn e) { playBus.fire(new ForgeZMobSpawnEvent.FinalizeSpawn(e), ZMobSpawnEvent.CheckSpawn.class); } public void mobSpawnFinalizeSpawnLowest(MobSpawnEvent.FinalizeSpawn e) { playBus.fire(new ForgeZMobSpawnEvent.FinalizeSpawn.Lowest(e), ZMobSpawnEvent.CheckSpawn.Lowest.class); - } + }*/ public void livingChangeTarget(LivingChangeTargetEvent e) { playBus.fire(new ForgeZLivingChangeTarget(e), ZLivingChangeTarget.class); @@ -524,9 +527,9 @@ public void blockEntityPlace(BlockEvent.EntityPlaceEvent e) { playBus.fire(new ForgeZBlock.EntityPlace(e), ZBlock.EntityPlace.class); } - public void blockToolModification(BlockEvent.BlockToolModificationEvent e) { + /*public void blockToolModification(BlockEvent.BlockToolModificationEvent e) { playBus.fire(new ForgeZBlock.BlockToolModification(e), ZBlock.BlockToolModification.class); - } + }*/ public void animalTame(AnimalTameEvent e) { playBus.fire(new ForgeZAnimalTame(e), ZAnimalTame.class); @@ -584,7 +587,7 @@ public void itemTooltip(ItemTooltipEvent e) { playBus.fire(new ForgeZItemTooltip(e), ZItemTooltip.class); } - public static ZResult from(Event.Result r) { + /*public static ZResult from(Event.Result r) { return switch(r) { case DENY -> ZResult.DENY; case DEFAULT -> ZResult.DEFAULT; @@ -598,5 +601,5 @@ public static Event.Result to(ZResult r) { case DEFAULT -> Event.Result.DEFAULT; case ALLOW -> Event.Result.ALLOW; }; - } + }*/ } diff --git a/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java b/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java index c78d7a4..e7cf971 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java +++ b/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java @@ -8,6 +8,7 @@ import net.minecraft.client.multiplayer.ClientPacketListener; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.item.Item; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; @@ -15,22 +16,8 @@ import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; import net.neoforged.fml.util.thread.EffectiveSide; -import net.neoforged.neoforge.client.event.ClientTickEvent; -import net.neoforged.neoforge.client.event.ContainerScreenEvent; -import net.neoforged.neoforge.client.event.EntityRenderersEvent; -import net.neoforged.neoforge.client.event.InputEvent; -import net.neoforged.neoforge.client.event.ModelEvent; -import net.neoforged.neoforge.client.event.MovementInputUpdateEvent; -import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent; -import net.neoforged.neoforge.client.event.RegisterClientTooltipComponentFactoriesEvent; -import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent; -import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent; -import net.neoforged.neoforge.client.event.RenderHighlightEvent; -import net.neoforged.neoforge.client.event.RenderLivingEvent; -import net.neoforged.neoforge.client.event.RenderPlayerEvent; -import net.neoforged.neoforge.client.event.RenderTooltipEvent; -import net.neoforged.neoforge.client.event.ScreenEvent; -import net.neoforged.neoforge.client.event.ScreenshotEvent; +import net.neoforged.neoforge.client.event.*; +import net.neoforged.neoforge.client.gui.VanillaGuiLayers; import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.registries.NeoForgeRegistries; import net.neoforged.neoforge.server.ServerLifecycleHooks; @@ -59,7 +46,7 @@ import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay; import org.violetmoon.zeta.client.event.play.ZRenderLiving; import org.violetmoon.zeta.client.event.play.ZRenderPlayer; -import org.violetmoon.zeta.client.event.play.ZRenderTick; +import org.violetmoon.zeta.client.event.play.ZRenderFrame; import org.violetmoon.zeta.client.event.play.ZRenderTooltip; import org.violetmoon.zeta.client.event.play.ZScreen; import org.violetmoon.zeta.client.event.play.ZScreenshot; @@ -81,7 +68,7 @@ import org.violetmoon.zetaimplforge.client.event.play.ForgeZRenderGuiOverlay; import org.violetmoon.zetaimplforge.client.event.play.ForgeZRenderLiving; import org.violetmoon.zetaimplforge.client.event.play.ForgeZRenderPlayer; -import org.violetmoon.zetaimplforge.client.event.play.ForgeZRenderTick; +import org.violetmoon.zetaimplforge.client.event.play.ForgeZRenderFrame; import org.violetmoon.zetaimplforge.client.event.play.ForgeZRenderTooltip; import org.violetmoon.zetaimplforge.client.event.play.ForgeZScreen; import org.violetmoon.zetaimplforge.mixin.mixins.client.AccessorBlockColors; @@ -94,16 +81,12 @@ public ForgeZetaClient(Zeta z) { @Override public @Nullable BlockColor getBlockColor(BlockColors bcs, Block block) { - return NeoForgeRegistries.BLOCKS.getDelegate(block) - .map(ref -> ((AccessorBlockColors) bcs).zeta$getBlockColors().get(ref)) - .orElse(null); + return ((AccessorBlockColors) bcs).zeta$getBlockColors().get(block); } @Override public @Nullable ItemColor getItemColor(ItemColors ics, ItemLike itemlike) { - return ForgeRegistries.ITEMS.getDelegate(itemlike.asItem()) - .map(ref -> ((AccessorItemColors) ics).zeta$getItemColors().get(ref)) - .orElse(null); + return ((AccessorItemColors) ics).zeta$getItemColors().get(itemlike); } @Override @@ -132,7 +115,7 @@ public RegistryAccess hackilyGetCurrentClientLevelRegistryAccess() { @Override public void start() { - IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); + IEventBus bus = NeoForge.EVENT_BUS; bus.addListener(this::registerBlockColors); bus.addListener(this::registerItemColors); @@ -242,8 +225,8 @@ public void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitio //TODO: move ticker stuff out of forge event handlers, subscribe to them from zeta // Also these events are a mess lol; sometimes there's 2 start/end events, sometimes there's // one event with multiple Phases... bad - public void renderTick(TickEvent.RenderTickEvent e) { - playBus.fire(new ForgeZRenderTick(e), ZRenderTick.class); + public void renderTick(RenderFrameEvent e) { + playBus.fire(new ForgeZRenderFrame(e), ZRenderFrame.class); } boolean clientTicked = false; @@ -289,44 +272,44 @@ public void renderContainerScreenBackground(ContainerScreenEvent.Render.Backgrou } //TODO: This probably should have been a PRE/POST event (just copying quark here) - public void renderGameOverlayNeitherPreNorPost(RenderGuiOverlayEvent e) { - if(e.getOverlay() == VanillaGuiOverlay.CROSSHAIR.type()) + public void renderGameOverlayNeitherPreNorPost(RenderGuiLayerEvent e) { + if(e.getName() == VanillaGuiLayers.CROSSHAIR) playBus.fire(new ForgeZRenderGuiOverlay.Crosshair(e), ZRenderGuiOverlay.Crosshair.class); - else if(e.getOverlay() == VanillaGuiOverlay.HOTBAR.type()) + else if(e.getName() == VanillaGuiLayers.HOTBAR) playBus.fire(new ForgeZRenderGuiOverlay.Hotbar(e), ZRenderGuiOverlay.Hotbar.class); } - public void renderGuiOverlayPre(RenderGuiOverlayEvent.Pre e) { - if (e.getOverlay() == VanillaGuiOverlay.HOTBAR.type()) + public void renderGuiOverlayPre(RenderGuiLayerEvent.Pre e) { + if (e.getName() == VanillaGuiLayers.HOTBAR) playBus.fire(new ForgeZRenderGuiOverlay.Hotbar.Pre(e), ZRenderGuiOverlay.Hotbar.Pre.class); - else if (e.getOverlay() == VanillaGuiOverlay.CROSSHAIR.type()) + else if (e.getName() == VanillaGuiLayers.CROSSHAIR) playBus.fire(new ForgeZRenderGuiOverlay.Crosshair.Pre(e), ZRenderGuiOverlay.Crosshair.Pre.class); - else if (e.getOverlay() == VanillaGuiOverlay.PLAYER_HEALTH.type()) + else if (e.getName() == VanillaGuiLayers.PLAYER_HEALTH) playBus.fire(new ForgeZRenderGuiOverlay.PlayerHealth.Pre(e), ZRenderGuiOverlay.PlayerHealth.Pre.class); - else if (e.getOverlay() == VanillaGuiOverlay.ARMOR_LEVEL.type()) + else if (e.getName() == VanillaGuiLayers.ARMOR_LEVEL) playBus.fire(new ForgeZRenderGuiOverlay.ArmorLevel.Pre(e), ZRenderGuiOverlay.ArmorLevel.Pre.class); - else if (e.getOverlay() == VanillaGuiOverlay.DEBUG_TEXT.type()) + else if (e.getName() == VanillaGuiLayers.DEBUG_OVERLAY) playBus.fire(new ForgeZRenderGuiOverlay.DebugText.Pre(e), ZRenderGuiOverlay.DebugText.Pre.class); - else if (e.getOverlay() == VanillaGuiOverlay.POTION_ICONS.type()) + else if (e.getName() == VanillaGuiLayers.EFFECTS) playBus.fire(new ForgeZRenderGuiOverlay.PotionIcons.Pre(e), ZRenderGuiOverlay.PotionIcons.Pre.class); - else if (e.getOverlay() == VanillaGuiOverlay.CHAT_PANEL.type()) + else if (e.getName() == VanillaGuiLayers.CHAT) playBus.fire(new ForgeZRenderGuiOverlay.ChatPanel.Pre(e), ZRenderGuiOverlay.ChatPanel.Pre.class); } - public void renderGuiOverlayPost(RenderGuiOverlayEvent.Post e) { - if (e.getOverlay() == VanillaGuiOverlay.HOTBAR.type()) + public void renderGuiOverlayPost(RenderGuiLayerEvent.Post e) { + if (e.getName() == VanillaGuiLayers.HOTBAR) playBus.fire(new ForgeZRenderGuiOverlay.Hotbar.Post(e), ZRenderGuiOverlay.Hotbar.Post.class); - else if (e.getOverlay() == VanillaGuiOverlay.CROSSHAIR.type()) + else if (e.getName() == VanillaGuiLayers.CROSSHAIR) playBus.fire(new ForgeZRenderGuiOverlay.Crosshair.Post(e), ZRenderGuiOverlay.Crosshair.Post.class); - else if (e.getOverlay() == VanillaGuiOverlay.PLAYER_HEALTH.type()) + else if (e.getName() == VanillaGuiLayers.PLAYER_HEALTH) playBus.fire(new ForgeZRenderGuiOverlay.PlayerHealth.Post(e), ZRenderGuiOverlay.PlayerHealth.Post.class); - else if (e.getOverlay() == VanillaGuiOverlay.ARMOR_LEVEL.type()) + else if (e.getName() == VanillaGuiLayers.ARMOR_LEVEL) playBus.fire(new ForgeZRenderGuiOverlay.ArmorLevel.Post(e), ZRenderGuiOverlay.ArmorLevel.Post.class); - else if (e.getOverlay() == VanillaGuiOverlay.DEBUG_TEXT.type()) + else if (e.getName() == VanillaGuiLayers.DEBUG_OVERLAY) playBus.fire(new ForgeZRenderGuiOverlay.DebugText.Post(e), ZRenderGuiOverlay.DebugText.Post.class); - else if (e.getOverlay() == VanillaGuiOverlay.POTION_ICONS.type()) + else if (e.getName() == VanillaGuiLayers.EFFECTS) playBus.fire(new ForgeZRenderGuiOverlay.PotionIcons.Post(e), ZRenderGuiOverlay.PotionIcons.Post.class); - else if (e.getOverlay() == VanillaGuiOverlay.CHAT_PANEL.type()) + else if (e.getName() == VanillaGuiLayers.CHAT) playBus.fire(new ForgeZRenderGuiOverlay.ChatPanel.Post(e), ZRenderGuiOverlay.ChatPanel.Post.class); } diff --git a/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java b/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java index 0739d40..cab0f82 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java +++ b/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java @@ -3,6 +3,7 @@ import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.resources.ResourceLocation; import net.neoforged.neoforge.client.event.ModelEvent; import net.neoforged.neoforge.client.model.geometry.IGeometryLoader; @@ -19,7 +20,7 @@ public ModifyBakingResult(ModelEvent.ModifyBakingResult e) { } @Override - public Map getModels() { + public Map getModels() { return e.getModels(); } @@ -42,7 +43,7 @@ public ModelManager getModelManager() { } @Override - public Map getModels() { + public Map getModels() { return e.getModels(); } @@ -60,7 +61,7 @@ public RegisterAdditional(ModelEvent.RegisterAdditional e) { } @Override - public void register(ResourceLocation model) { + public void register(ModelResourceLocation model) { e.register(model); } } @@ -73,8 +74,8 @@ public RegisterGeometryLoaders(ModelEvent.RegisterGeometryLoaders e) { } @Override - public void register(String name, IGeometryLoader loader) { - e.register(name, loader); + public void register(ResourceLocation id, IGeometryLoader loader) { + e.register(id, loader); } } } diff --git a/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderTick.java b/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderFrame.java similarity index 70% rename from src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderTick.java rename to src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderFrame.java index 2a9d473..a592f76 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderTick.java +++ b/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderFrame.java @@ -1,9 +1,9 @@ package org.violetmoon.zetaimplforge.client.event.play; import net.neoforged.neoforge.client.event.RenderFrameEvent; -import org.violetmoon.zeta.client.event.play.ZRenderTick; +import org.violetmoon.zeta.client.event.play.ZRenderFrame; -public record ForgeZRenderTick(RenderFrameEvent e) implements ZRenderTick { +public record ForgeZRenderFrame(RenderFrameEvent e) implements ZRenderFrame { @Override public float getRenderTickTime() { return e.getPartialTick().getRealtimeDeltaTicks(); //todo: Test this diff --git a/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderGuiOverlay.java b/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderGuiOverlay.java index 20a4186..f5ce606 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderGuiOverlay.java +++ b/src/main/java/org/violetmoon/zetaimplforge/client/event/play/ForgeZRenderGuiOverlay.java @@ -1,5 +1,7 @@ package org.violetmoon.zetaimplforge.client.event.play; +import net.minecraft.client.DeltaTracker; +import net.neoforged.neoforge.client.event.RenderGuiLayerEvent; import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay; import com.mojang.blaze3d.platform.Window; @@ -8,15 +10,15 @@ import net.minecraft.client.gui.GuiGraphics; public class ForgeZRenderGuiOverlay implements ZRenderGuiOverlay { - private final RenderGuiOverlayEvent e; + private final RenderGuiLayerEvent e; - public ForgeZRenderGuiOverlay(RenderGuiOverlayEvent e) { + public ForgeZRenderGuiOverlay(RenderGuiLayerEvent e) { this.e = e; } @Override public Window getWindow() { - return e.getWindow(); + return Minecraft.getInstance().getWindow(); } @Override @@ -25,141 +27,141 @@ public GuiGraphics getGuiGraphics() { } @Override - public float getPartialTick() { + public DeltaTracker getPartialTick() { return e.getPartialTick(); } @Override public boolean shouldDrawSurvivalElements() { - return Minecraft.getInstance().gui instanceof ForgeGui fgui && fgui.shouldDrawSurvivalElements(); + return Minecraft.getInstance().gameMode.canHurtPlayer(); } @Override public int getLeftHeight() { - return Minecraft.getInstance().gui instanceof ForgeGui fgui ? fgui.leftHeight : 39; + return Minecraft.getInstance().gui.leftHeight; } public static class Hotbar extends ForgeZRenderGuiOverlay implements ZRenderGuiOverlay.Hotbar { - public Hotbar(RenderGuiOverlayEvent e) { + public Hotbar(RenderGuiLayerEvent e) { super(e); } public static class Pre extends ForgeZRenderGuiOverlay.Hotbar implements ZRenderGuiOverlay.Hotbar.Pre { - public Pre(RenderGuiOverlayEvent.Pre e) { + public Pre(RenderGuiLayerEvent.Pre e) { super(e); } } public static class Post extends ForgeZRenderGuiOverlay.Hotbar implements ZRenderGuiOverlay.Hotbar.Post { - public Post(RenderGuiOverlayEvent.Post e) { + public Post(RenderGuiLayerEvent.Post e) { super(e); } } } public static class Crosshair extends ForgeZRenderGuiOverlay implements ZRenderGuiOverlay.Crosshair { - public Crosshair(RenderGuiOverlayEvent e) { + public Crosshair(RenderGuiLayerEvent e) { super(e); } public static class Pre extends ForgeZRenderGuiOverlay.Crosshair implements ZRenderGuiOverlay.Crosshair.Pre { - public Pre(RenderGuiOverlayEvent.Pre e) { + public Pre(RenderGuiLayerEvent.Pre e) { super(e); } } public static class Post extends ForgeZRenderGuiOverlay.Crosshair implements ZRenderGuiOverlay.Crosshair.Post { - public Post(RenderGuiOverlayEvent.Post e) { + public Post(RenderGuiLayerEvent.Post e) { super(e); } } } public static class PlayerHealth extends ForgeZRenderGuiOverlay implements ZRenderGuiOverlay.PlayerHealth { - public PlayerHealth(RenderGuiOverlayEvent e) { + public PlayerHealth(RenderGuiLayerEvent e) { super(e); } public static class Pre extends ForgeZRenderGuiOverlay.PlayerHealth implements ZRenderGuiOverlay.PlayerHealth.Pre { - public Pre(RenderGuiOverlayEvent.Pre e) { + public Pre(RenderGuiLayerEvent.Pre e) { super(e); } } public static class Post extends ForgeZRenderGuiOverlay.PlayerHealth implements ZRenderGuiOverlay.PlayerHealth.Post { - public Post(RenderGuiOverlayEvent.Post e) { + public Post(RenderGuiLayerEvent.Post e) { super(e); } } } public static class ArmorLevel extends ForgeZRenderGuiOverlay implements ZRenderGuiOverlay.ArmorLevel { - public ArmorLevel(RenderGuiOverlayEvent e) { + public ArmorLevel(RenderGuiLayerEvent e) { super(e); } public static class Pre extends ForgeZRenderGuiOverlay.ArmorLevel implements ZRenderGuiOverlay.ArmorLevel.Pre { - public Pre(RenderGuiOverlayEvent.Pre e) { + public Pre(RenderGuiLayerEvent.Pre e) { super(e); } } public static class Post extends ForgeZRenderGuiOverlay.ArmorLevel implements ZRenderGuiOverlay.ArmorLevel.Post { - public Post(RenderGuiOverlayEvent.Post e) { + public Post(RenderGuiLayerEvent.Post e) { super(e); } } } public static class DebugText extends ForgeZRenderGuiOverlay implements ZRenderGuiOverlay.DebugText { - public DebugText(RenderGuiOverlayEvent e) { + public DebugText(RenderGuiLayerEvent e) { super(e); } public static class Pre extends ForgeZRenderGuiOverlay.DebugText implements ZRenderGuiOverlay.DebugText.Pre { - public Pre(RenderGuiOverlayEvent.Pre e) { + public Pre(RenderGuiLayerEvent.Pre e) { super(e); } } public static class Post extends ForgeZRenderGuiOverlay.DebugText implements ZRenderGuiOverlay.DebugText.Post { - public Post(RenderGuiOverlayEvent.Post e) { + public Post(RenderGuiLayerEvent.Post e) { super(e); } } } public static class PotionIcons extends ForgeZRenderGuiOverlay implements ZRenderGuiOverlay.PotionIcons { - public PotionIcons(RenderGuiOverlayEvent e) { + public PotionIcons(RenderGuiLayerEvent e) { super(e); } public static class Pre extends ForgeZRenderGuiOverlay.PotionIcons implements ZRenderGuiOverlay.PotionIcons.Pre { - public Pre(RenderGuiOverlayEvent.Pre e) { + public Pre(RenderGuiLayerEvent.Pre e) { super(e); } } public static class Post extends ForgeZRenderGuiOverlay.PotionIcons implements ZRenderGuiOverlay.PotionIcons.Post { - public Post(RenderGuiOverlayEvent.Post e) { + public Post(RenderGuiLayerEvent.Post e) { super(e); } } } public static class ChatPanel extends ForgeZRenderGuiOverlay implements ZRenderGuiOverlay.ChatPanel { - public ChatPanel(RenderGuiOverlayEvent e) { + public ChatPanel(RenderGuiLayerEvent e) { super(e); } public static class Pre extends ForgeZRenderGuiOverlay.ChatPanel implements ZRenderGuiOverlay.ChatPanel.Pre { - public Pre(RenderGuiOverlayEvent.Pre e) { + public Pre(RenderGuiLayerEvent.Pre e) { super(e); } } public static class Post extends ForgeZRenderGuiOverlay.ChatPanel implements ZRenderGuiOverlay.ChatPanel.Post { - public Post(RenderGuiOverlayEvent.Post e) { + public Post(RenderGuiLayerEvent.Post e) { super(e); } } diff --git a/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZBonemeal.java b/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZBonemeal.java index a33a10c..2dd06ff 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZBonemeal.java +++ b/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZBonemeal.java @@ -37,8 +37,8 @@ public ItemStack getStack() { } @Override - public ZResult getResult() { - return ForgeZeta.from(e.isSuccessful()); + public boolean getResult() { + return e.isSuccessful(); } @Override diff --git a/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZLevelTick.java b/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZLevelTick.java index e244f8f..6d54f44 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZLevelTick.java +++ b/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZLevelTick.java @@ -1,30 +1,31 @@ package org.violetmoon.zetaimplforge.event.play; +import net.neoforged.neoforge.event.tick.LevelTickEvent; import org.violetmoon.zeta.event.play.ZLevelTick; import net.minecraft.world.level.Level; public class ForgeZLevelTick implements ZLevelTick { - private final TickEvent.LevelTickEvent e; + private final LevelTickEvent e; - public ForgeZLevelTick(TickEvent.LevelTickEvent e) { + public ForgeZLevelTick(LevelTickEvent e) { this.e = e; } @Override public Level getLevel() { - return e.level; + return e.getLevel(); } public static class Start extends ForgeZLevelTick implements ZLevelTick.Start { - public Start(TickEvent.LevelTickEvent e) { + public Start(LevelTickEvent e) { super(e); } } public static class End extends ForgeZLevelTick implements ZLevelTick.End { - public End(TickEvent.LevelTickEvent e) { + public End(LevelTickEvent e) { super(e); } } diff --git a/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZServerTick.java b/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZServerTick.java index 31935f2..5d4ada9 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZServerTick.java +++ b/src/main/java/org/violetmoon/zetaimplforge/event/play/ForgeZServerTick.java @@ -1,13 +1,14 @@ package org.violetmoon.zetaimplforge.event.play; +import net.neoforged.neoforge.event.tick.ServerTickEvent; import org.violetmoon.zeta.event.play.ZServerTick; import net.minecraft.server.MinecraftServer; public class ForgeZServerTick implements ZServerTick { - private final TickEvent.ServerTickEvent e; + private final ServerTickEvent e; - public ForgeZServerTick(TickEvent.ServerTickEvent e) { + public ForgeZServerTick(ServerTickEvent e) { this.e = e; } @@ -16,14 +17,14 @@ public MinecraftServer getServer() { return e.getServer(); } - public static class Start extends ForgeZServerTick implements ZServerTick.Start { - public Start(TickEvent.ServerTickEvent e) { + public static class Pre extends ForgeZServerTick implements ZServerTick.Start { + public Pre(ServerTickEvent e) { super(e); } } - public static class End extends ForgeZServerTick implements ZServerTick.End { - public End(TickEvent.ServerTickEvent e) { + public static class Post extends ForgeZServerTick implements ZServerTick.End { + public Post(ServerTickEvent e) { super(e); } } diff --git a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/ForgeZEntityMobGriefing.java b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/ForgeZEntityMobGriefing.java index e35b8a9..af34ad2 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/ForgeZEntityMobGriefing.java +++ b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/ForgeZEntityMobGriefing.java @@ -19,8 +19,8 @@ public Entity getEntity() { } @Override - public ZResult getResult() { - return ForgeZeta.from(e.getResult()); + public boolean getResult() { + return true; //todo: FIX } @Override diff --git a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/living/ForgeZMobSpawnEvent.java b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/living/ForgeZMobSpawnEvent.java index 3e3f0f5..6e1f3c2 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/living/ForgeZMobSpawnEvent.java +++ b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/living/ForgeZMobSpawnEvent.java @@ -51,7 +51,7 @@ public void setResult(ZResult value) { e.setResult(ForgeZeta.to(value)); }*/ - public static class FinalizeSpawn extends ForgeZMobSpawnEvent implements ZMobSpawnEvent.CheckSpawn { + /*public static class FinalizeSpawn extends ForgeZMobSpawnEvent implements ZMobSpawnEvent.CheckSpawn { private final MobSpawnEvent.FinalizeSpawn e; public FinalizeSpawn(MobSpawnEvent.FinalizeSpawn e) { @@ -74,5 +74,5 @@ public Lowest(MobSpawnEvent.FinalizeSpawn e) { super(e); } } - } + }*/ } diff --git a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZPlayerTick.java b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZPlayerTick.java index 5295d89..7343cab 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZPlayerTick.java +++ b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZPlayerTick.java @@ -1,29 +1,30 @@ package org.violetmoon.zetaimplforge.event.play.entity.player; +import net.neoforged.neoforge.event.tick.PlayerTickEvent; import org.violetmoon.zeta.event.play.entity.player.ZPlayerTick; import net.minecraft.world.entity.player.Player; public abstract class ForgeZPlayerTick implements ZPlayerTick { - private final TickEvent.PlayerTickEvent e; + private final PlayerTickEvent e; - protected ForgeZPlayerTick(TickEvent.PlayerTickEvent e) { + protected ForgeZPlayerTick(PlayerTickEvent e) { this.e = e; } @Override public Player getPlayer() { - return e.player; + return e.getEntity(); } - public static class Start extends ForgeZPlayerTick implements ZPlayerTick.Start { - public Start(TickEvent.PlayerTickEvent e) { + public static class Pre extends ForgeZPlayerTick implements ZPlayerTick.Start { + public Pre(PlayerTickEvent e) { super(e); } } - public static class End extends ForgeZPlayerTick implements ZPlayerTick.End { - public End(TickEvent.PlayerTickEvent e) { + public static class Post extends ForgeZPlayerTick implements ZPlayerTick.End { + public Post(PlayerTickEvent e) { super(e); } } diff --git a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZRightClickBlock.java b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZRightClickBlock.java index aed501c..d8be924 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZRightClickBlock.java +++ b/src/main/java/org/violetmoon/zetaimplforge/event/play/entity/player/ForgeZRightClickBlock.java @@ -8,6 +8,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.phys.BlockHitResult; +import net.neoforged.neoforge.common.util.TriState; import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; import org.violetmoon.zeta.event.bus.ZResult; import org.violetmoon.zeta.event.play.entity.player.ZRightClickBlock; @@ -56,8 +57,8 @@ public Direction getFace() { } @Override - public ZResult getUseBlock() { - return ForgeZeta.from(e.getUseBlock()); + public TriState getUseBlock() { + return e.getUseBlock(); } @Override @@ -76,8 +77,8 @@ public void setCanceled(boolean cancel) { } @Override - public ZResult getResult() { - return ForgeZeta.from(e.getResult()); + public boolean getResult() { + return e.getCancellationResult(); } @Override diff --git a/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorBlockColors.java b/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorBlockColors.java index 3d44cc5..bf54945 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorBlockColors.java +++ b/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorBlockColors.java @@ -12,8 +12,7 @@ @Mixin(BlockColors.class) public interface AccessorBlockColors { - @Accessor("blockColors") - Map, BlockColor> zeta$getBlockColors(); + Map zeta$getBlockColors(); } diff --git a/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorItemColors.java b/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorItemColors.java index 76b3997..51fa0e9 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorItemColors.java +++ b/src/main/java/org/violetmoon/zetaimplforge/mixin/mixins/client/AccessorItemColors.java @@ -12,8 +12,7 @@ @Mixin(ItemColors.class) public interface AccessorItemColors { - @Accessor("itemColors") - Map, ItemColor> zeta$getItemColors(); + Map zeta$getItemColors(); } diff --git a/src/main/java/org/violetmoon/zetaimplforge/registry/ForgeBrewingRegistry.java b/src/main/java/org/violetmoon/zetaimplforge/registry/ForgeBrewingRegistry.java index 15244a3..f6db9c8 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/registry/ForgeBrewingRegistry.java +++ b/src/main/java/org/violetmoon/zetaimplforge/registry/ForgeBrewingRegistry.java @@ -1,6 +1,8 @@ package org.violetmoon.zetaimplforge.registry; import net.minecraft.core.Holder; +import net.minecraft.world.flag.FeatureFlagSet; +import net.minecraft.world.item.Item; import net.minecraft.world.item.alchemy.Potion; import net.minecraft.world.item.alchemy.PotionBrewing; import net.minecraft.world.item.crafting.Ingredient; @@ -19,16 +21,16 @@ public ForgeBrewingRegistry(ForgeZeta zeta) { super(zeta); } - private record DelayedPotion(Holder input, Supplier reagentSupplier, Holder output) { + private record DelayedPotion(Holder input, Item reagentSupplier, Holder output) { void register() { - AccessorPotionBrewing.zeta$getPotionMixes().add(new PotionBrewing.Mix<>(input, reagentSupplier.get(), output)); + new PotionBrewing.Builder(FeatureFlagSet.of()).addMix(input, reagentSupplier, output); } } private List delayedPotions = new ArrayList<>(); private boolean okToRegisterImmediately = false; @Override - public void addBrewingRecipe(Potion input, Supplier reagentSupplier, Potion output) { + public void addBrewingRecipe(Potion input, Item reagentSupplier, Potion output) { DelayedPotion d = new DelayedPotion(Holder.direct(input), reagentSupplier, Holder.direct(output)); if(okToRegisterImmediately)