diff --git a/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java b/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java index 7b7eef0b..74a0a138 100644 --- a/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java +++ b/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterRecipeBookScreen.java @@ -1,7 +1,5 @@ package org.betterx.betterend.client.gui; -import net.minecraft.client.gui.GuiComponent; -import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.recipebook.BlastingRecipeBookComponent; import net.minecraft.core.NonNullList; import net.minecraft.world.inventory.Slot; @@ -13,8 +11,6 @@ import net.minecraft.world.item.crafting.Recipe; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.PoseStack; import org.betterx.betterend.blocks.entities.EndStoneSmelterBlockEntity; import java.util.Iterator; @@ -23,11 +19,8 @@ import java.util.Set; @Environment(EnvType.CLIENT) public class EndStoneSmelterRecipeBookScreen extends BlastingRecipeBookComponent { - private Iterator fuelIterator; - private Set fuels; + private Ingredient fuels; private Slot fuelSlot; - private Item currentItem; - private float frameTime; @Override protected Set getFuelItems() { @@ -49,6 +42,15 @@ public class EndStoneSmelterRecipeBookScreen extends BlastingRecipeBookComponent this.ghostRecipe.setRecipe(recipe); this.ghostRecipe.addIngredient(Ingredient.of(result), (slots.get(3)).x, (slots.get(3)).y); NonNullList inputs = recipe.getIngredients(); + + this.fuelSlot = slots.get(2); + if (fuelSlot.getItem().isEmpty()) { + if (this.fuels == null) { + this.fuels = Ingredient.of(this.getFuelItems().stream().map(ItemStack::new)); + } + this.ghostRecipe.addIngredient(this.fuels, fuelSlot.x, fuelSlot.y); + } + Iterator iterator = inputs.iterator(); for (int i = 0; i < 2; i++) { if (!iterator.hasNext()) { @@ -60,51 +62,5 @@ public class EndStoneSmelterRecipeBookScreen extends BlastingRecipeBookComponent this.ghostRecipe.addIngredient(ingredient, slot.x, slot.y); } } - this.fuelSlot = slots.get(2); - if (this.fuels == null) { - this.fuels = this.getFuelItems(); - } - - this.fuelIterator = this.fuels.iterator(); - this.currentItem = null; - } - - @Override - public void renderGhostRecipe(PoseStack matrices, int x, int y, boolean bl, float f) { - this.ghostRecipe.render(matrices, minecraft, x, y, bl, f); - if (fuelSlot != null) { - if (!Screen.hasControlDown()) { - this.frameTime += f; - } - - int slotX = this.fuelSlot.x + x; - int slotY = this.fuelSlot.y + y; - GuiComponent.fill(matrices, slotX, slotY, slotX + 16, slotY + 16, 822018048); - //TODO: test k=0 - this.minecraft.getItemRenderer() - .renderAndDecorateItem(minecraft.player, - this.getFuel().getDefaultInstance(), - slotX, - slotY, - 0 - ); - RenderSystem.depthFunc(516); - GuiComponent.fill(matrices, slotX, slotY, slotX + 16, slotY + 16, 822083583); - RenderSystem.depthFunc(515); - } - } - - private Item getFuel() { - if (this.currentItem == null || this.frameTime > 30.0F) { - this.frameTime = 0.0F; - if (this.fuelIterator == null || !this.fuelIterator.hasNext()) { - if (this.fuels == null) { - this.fuels = this.getFuelItems(); - } - this.fuelIterator = this.fuels.iterator(); - } - this.currentItem = this.fuelIterator.next(); - } - return this.currentItem; } } diff --git a/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterScreen.java b/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterScreen.java index 8156619d..67b160b0 100644 --- a/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterScreen.java +++ b/src/main/java/org/betterx/betterend/client/gui/EndStoneSmelterScreen.java @@ -33,7 +33,6 @@ public class EndStoneSmelterScreen extends AbstractContainerScreen return widgets; } - //TODO: 1.18 REI find replacement - //@Override - public void renderRedSlots(PoseStack matrices, - List widgets, - Rectangle bounds, - REIAlloyingDisplay display, - IntList redSlots) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27); - matrices.pushPose(); - matrices.translate(0, 0, 400); - if (redSlots.contains(0)) { - GuiComponent.fill( - matrices, - startPoint.x - 20, - startPoint.y + 1, - startPoint.x - 20 + 16, - startPoint.y + 1 + 16, - 1090453504 - ); - GuiComponent.fill( - matrices, - startPoint.x + 1, - startPoint.y + 1, - startPoint.x + 1 + 16, - startPoint.y + 1 + 16, - 1090453504 - ); - } - matrices.popPose(); - } - @Override public int getDisplayHeight() { return 49; diff --git a/src/main/java/org/betterx/betterend/integration/rei/REIAlloyingFuelCategory.java b/src/main/java/org/betterx/betterend/integration/rei/REIAlloyingFuelCategory.java index 507c0fe1..42808684 100644 --- a/src/main/java/org/betterx/betterend/integration/rei/REIAlloyingFuelCategory.java +++ b/src/main/java/org/betterx/betterend/integration/rei/REIAlloyingFuelCategory.java @@ -43,7 +43,7 @@ public class REIAlloyingFuelCategory implements DisplayCategory fuel, CompoundTag tag) { - this(fuel, tag.getInt("fuelTime")); - } - public REIAlloyingFuelDisplay(List fuel, int fuelTime) { super(fuel, Collections.emptyList()); this.fuelTime = fuelTime; } - //public REIAlloyingFuelDisplay(EntryStack fuel, int fuelTime) { -// this.fuel = fuel; -// this.fuelTime = fuelTime; -// } @Override public CategoryIdentifier getCategoryIdentifier() { diff --git a/src/main/java/org/betterx/betterend/integration/rei/REIAnvilCategory.java b/src/main/java/org/betterx/betterend/integration/rei/REIAnvilCategory.java index d5f67af7..c6ebdc5c 100644 --- a/src/main/java/org/betterx/betterend/integration/rei/REIAnvilCategory.java +++ b/src/main/java/org/betterx/betterend/integration/rei/REIAnvilCategory.java @@ -1,6 +1,5 @@ package org.betterx.betterend.integration.rei; -import net.minecraft.client.gui.GuiComponent; import net.minecraft.network.chat.Component; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; @@ -8,8 +7,6 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import com.google.common.collect.Lists; -import com.mojang.blaze3d.vertex.PoseStack; -import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.gui.widgets.Widget; @@ -86,40 +83,8 @@ public class REIAnvilCategory implements DisplayCategory { return widgets; } - //TODO: 1.18 REI, find replacement - //@Override - public void renderRedSlots(PoseStack matrices, - List widgets, - Rectangle bounds, - REIAnvilDisplay display, - IntList redSlots) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 27); - matrices.pushPose(); - matrices.translate(0, 0, 400); - if (redSlots.contains(0)) { - GuiComponent.fill( - matrices, - startPoint.x - 20, - startPoint.y + 3, - startPoint.x - 20 + 16, - startPoint.y + 3 + 16, - 1090453504 - ); - GuiComponent.fill( - matrices, - startPoint.x + 1, - startPoint.y + 3, - startPoint.x + 1 + 16, - startPoint.y + 3 + 16, - 1090453504 - ); - } - matrices.popPose(); - } - @Override public int getDisplayHeight() { return 60; } - } \ No newline at end of file diff --git a/src/main/java/org/betterx/betterend/integration/rei/REIPlugin.java b/src/main/java/org/betterx/betterend/integration/rei/REIPlugin.java index ec224ec2..420de164 100644 --- a/src/main/java/org/betterx/betterend/integration/rei/REIPlugin.java +++ b/src/main/java/org/betterx/betterend/integration/rei/REIPlugin.java @@ -6,11 +6,15 @@ import net.minecraft.world.item.crafting.BlastingRecipe; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.block.Blocks; +import net.fabricmc.fabric.api.registry.FuelRegistry; +import net.fabricmc.fabric.impl.content.registry.FuelRegistryImpl; + import com.google.common.collect.Lists; import me.shedaniel.rei.api.client.plugins.REIClientPlugin; import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; import me.shedaniel.rei.api.client.registry.display.DisplayRegistry; import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.util.EntryIngredients; import me.shedaniel.rei.api.common.util.EntryStacks; @@ -23,6 +27,7 @@ import org.betterx.betterend.recipe.builders.AlloyingRecipe; import org.betterx.betterend.recipe.builders.InfusionRecipe; import org.betterx.betterend.registry.EndBlocks; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -54,13 +59,15 @@ public class REIPlugin implements REIClientPlugin { registry.registerRecipeFiller(AnvilRecipe.class, AnvilRecipe.TYPE, REIAnvilDisplay::new); registry.registerRecipeFiller(InfusionRecipe.class, InfusionRecipe.TYPE, REIInfusionDisplay::new); - //TODO: 1.18 REI fix this -// FuelRegistryImpl.INSTANCE.getFuelTimes().forEach((item, time) -> { -// if (time >= 2000) { -// final List list = Collections.singletonList(EntryIngredients.of(item)); -// registry.add(new REIAlloyingFuelDisplay(list, time)); -// } -// }); + //TODO: Migrate to 1.18/1.18.2 + if (FuelRegistry.INSTANCE instanceof FuelRegistryImpl fabricImpl) { + fabricImpl.getFuelTimes().forEach((item, time) -> { + if (time >= 2000) { + final List list = Collections.singletonList(EntryIngredients.of(item)); + registry.add(new REIAlloyingFuelDisplay(list, time)); + } + }); + } } @Override diff --git a/src/main/java/org/betterx/betterend/registry/EndTags.java b/src/main/java/org/betterx/betterend/registry/EndTags.java index e9f5a30a..296d3e19 100644 --- a/src/main/java/org/betterx/betterend/registry/EndTags.java +++ b/src/main/java/org/betterx/betterend/registry/EndTags.java @@ -1,11 +1,9 @@ package org.betterx.betterend.registry; -import net.minecraft.core.Registry; import net.minecraft.tags.TagKey; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; -import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LeavesBlock; @@ -132,18 +130,4 @@ public class EndTags { addEndGround(b.getAltTopMaterial().getBlock()); addEndGround(b.getUnderMaterial().getBlock()); } - - // TODO make getter for biome top blocks - public static void addTerrainTags(Registry biomeRegistry) { - /*biomeRegistry.forEach((biome) -> { - if (biome.getBiomeCategory() == BiomeCategory.THEEND) { - SurfaceBuilderConfiguration config = biome.getGenerationSettings().getSurfaceBuilderConfig(); - Block under = config.getUnderMaterial().getBlock(); - Block surface = config.getTopMaterial().getBlock(); - TagAPI.addTag(CommonBlockTags.GEN_END_STONES, under, surface); - TagAPI.addTag(CommonBlockTags.END_STONES, surface); - } - }); - TagAPI.BLOCK_END_STONES.getValues().forEach(TagAPI::addEndGround);*/ - } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 03de732f..5e964bd3 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,57 +1,53 @@ { - "schemaVersion": 1, - "id": "betterend", - "version": "${version}", - - "name": "Better End", - "description": "More content for The End dimension, including new biomes, plants, mobs, mechanics, terrain generation and more.\nMade by:\n- paulevs (code & art)\n- Bulldog83 (code & art)\n- Edos (building)\n- Yuki (art)\n- Seaward (art)\n- Firel (music)\n", - "authors": [ - "paulevs (code & art)", - "Bulldog83 (code & art)", - "Frank (code)", - "Edos (building)", - "Yuki (art)", - "Seaward (art)", - "Firel (music)" - ], - "contact": { - "homepage": "https://www.curseforge.com/minecraft/mc-mods/betterend", - "issues": "https://github.com/paulevsGitch/BetterEnd/issues", - "sources": "https://github.com/paulevsGitch/BetterEnd" - }, - - "license": "MIT", - "icon": "assets/betterend/icon.png", - - "environment": "*", - "entrypoints": { - "main": [ - "org.betterx.betterend.BetterEnd" - ], - "client": [ - "org.betterx.betterend.client.BetterEndClient" - ], - "rei_plugins": [ - "org.betterx.betterend.integration.rei.REIPlugin" - ] - }, - "accessWidener" : "betterend.accesswidener", - "mixins": [ - "betterend.mixins.common.json", - "betterend.mixins.client.json", - "betterend.mixins.shadow.json" - ], - - "depends": { - "fabricloader": ">=0.14.5", - "fabric": ">=0.52.4", - "minecraft": "1.19-beta.1", - "bclib": "2.0.x" - }, - "suggests": { - "byg": ">=1.1.3", - "blockus": ">=2.0.2", - "nourish": ">=1.2.0", - "colored_lights": ">=1.0.3" - } + "schemaVersion": 1, + "id": "betterend", + "version": "${version}", + "name": "Better End", + "description": "More content for The End dimension, including new biomes, plants, mobs, mechanics, terrain generation and more.\nMade by:\n- paulevs (code & art)\n- Bulldog83 (code & art)\n- Edos (building)\n- Yuki (art)\n- Seaward (art)\n- Firel (music)\n", + "authors": [ + "Quiqueck (code)", + "paulevs (code & art)", + "Bulldog83 (code & art)", + "Edos (building)", + "Yuki (art)", + "Seaward (art)", + "Firel (music)" + ], + "contact": { + "homepage": "https://www.curseforge.com/minecraft/mc-mods/betterend", + "issues": "https://github.com/quiqueck/BetterEnd/issues", + "sources": "https://github.com/quiqueck/BetterEnd" + }, + "license": "MIT", + "icon": "assets/betterend/icon.png", + "environment": "*", + "entrypoints": { + "main": [ + "org.betterx.betterend.BetterEnd" + ], + "client": [ + "org.betterx.betterend.client.BetterEndClient" + ], + "rei_plugins": [ + "org.betterx.betterend.integration.rei.REIPlugin" + ] + }, + "accessWidener": "betterend.accesswidener", + "mixins": [ + "betterend.mixins.common.json", + "betterend.mixins.client.json", + "betterend.mixins.shadow.json" + ], + "depends": { + "fabricloader": ">=0.14.5", + "fabric": ">=0.52.4", + "minecraft": "1.19-beta.1", + "bclib": "2.0.x" + }, + "suggests": { + "byg": ">=1.1.3", + "blockus": ">=2.0.2", + "nourish": ">=1.2.0", + "colored_lights": ">=1.0.3" + } }