[Change] Disabled EMI and Trinkets support for now

This commit is contained in:
Frank 2023-12-19 12:43:45 +01:00
parent 103518caf5
commit 21434e8b98
10 changed files with 323 additions and 326 deletions

View file

@ -93,8 +93,8 @@ dependencies {
} else { } else {
modImplementation "com.github.quiqueck:BCLib:${project.bclib_version}" modImplementation "com.github.quiqueck:BCLib:${project.bclib_version}"
} }
// modCompileOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" modCompileOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}"
// modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-fabric:${project.rei_version}" modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-fabric:${project.rei_version}"
//needed for trinkets, otherwise BetterEnd would require users to install trinkets //needed for trinkets, otherwise BetterEnd would require users to install trinkets
// modApi "dev.onyxstudios.cardinal-components-api:cardinal-components-base:${project.cca_version}" // modApi "dev.onyxstudios.cardinal-components-api:cardinal-components-base:${project.cca_version}"

View file

@ -20,7 +20,7 @@ archives_base_name=better-end
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
patchouli_version=1.19-73-FABRIC patchouli_version=1.19-73-FABRIC
bclib_version=3.30.0 bclib_version=3.30.0
rei_version=12.0.622 rei_version=14.0.680
emi_version=1.0.3+1.20 emi_version=1.0.3+1.20
trinkets_version=3.7.0 trinkets_version=3.7.0
cca_version=5.2.1 cca_version=5.2.1

View file

@ -9,7 +9,6 @@ import org.betterx.betterend.commands.CommandRegistry;
import org.betterx.betterend.config.Configs; import org.betterx.betterend.config.Configs;
import org.betterx.betterend.effects.EndPotions; import org.betterx.betterend.effects.EndPotions;
import org.betterx.betterend.integration.Integrations; import org.betterx.betterend.integration.Integrations;
import org.betterx.betterend.integration.trinkets.Elytra;
import org.betterx.betterend.network.RitualUpdate; import org.betterx.betterend.network.RitualUpdate;
import org.betterx.betterend.recipe.builders.InfusionRecipe; import org.betterx.betterend.recipe.builders.InfusionRecipe;
import org.betterx.betterend.registry.*; import org.betterx.betterend.registry.*;
@ -88,10 +87,10 @@ public class BetterEnd implements ModInitializer {
DataExchangeAPI.registerDescriptors(List.of( DataExchangeAPI.registerDescriptors(List.of(
RitualUpdate.DESCRIPTOR RitualUpdate.DESCRIPTOR
)); ));
//TODO: Trinkets
if (RUNS_TRINKETS) { // if (RUNS_TRINKETS) {
Elytra.register(); // Elytra.register();
} // }
} }
public static ResourceLocation makeID(String path) { public static ResourceLocation makeID(String path) {

View file

@ -49,9 +49,10 @@ public class BetterEndClient implements ClientModInitializer {
if (ClientOptions.isCustomSky()) { if (ClientOptions.isCustomSky()) {
DimensionRenderingRegistry.registerSkyRenderer(Level.END, new BetterEndSkyRenderer()); DimensionRenderingRegistry.registerSkyRenderer(Level.END, new BetterEndSkyRenderer());
} }
if (BetterEnd.RUNS_TRINKETS) { //TODO: Trinkets
org.betterx.betterend.integration.trinkets.ElytraClient.register(); // if (BetterEnd.RUNS_TRINKETS) {
} // org.betterx.betterend.integration.trinkets.ElytraClient.register();
// }
} }
public static void registerTooltips() { public static void registerTooltips() {

View file

@ -1,40 +1,40 @@
package org.betterx.betterend.integration.emi; package org.betterx.betterend.integration.emi;
import org.betterx.bclib.integration.emi.EMIAbstractAlloyingRecipe; //import org.betterx.bclib.integration.emi.EMIAbstractAlloyingRecipe;
import org.betterx.bclib.integration.emi.EMIPlugin; //import org.betterx.bclib.integration.emi.EMIPlugin;
import org.betterx.betterend.BetterEnd; //import org.betterx.betterend.BetterEnd;
//
import net.minecraft.resources.ResourceLocation; //import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.Container; //import net.minecraft.world.Container;
import net.minecraft.world.item.crafting.BlastingRecipe; //import net.minecraft.world.item.crafting.BlastingRecipe;
import net.minecraft.world.item.crafting.RecipeManager; //import net.minecraft.world.item.crafting.RecipeManager;
import net.minecraft.world.item.crafting.RecipeType; //import net.minecraft.world.item.crafting.RecipeType;
//
import dev.emi.emi.api.EmiRegistry; //import dev.emi.emi.api.EmiRegistry;
//
public class EMIBlastingRecipe extends EMIAbstractAlloyingRecipe<Container, BlastingRecipe> { //public class EMIBlastingRecipe extends EMIAbstractAlloyingRecipe<Container, BlastingRecipe> {
public EMIBlastingRecipe(BlastingRecipe recipe) { // public EMIBlastingRecipe(BlastingRecipe recipe) {
super(recipe, new ResourceLocation( // super(recipe, new ResourceLocation(
"emi", // "emi",
recipe.getId().getNamespace() + "/" + recipe.getId().getPath() + "/allloying" // recipe.getId().getNamespace() + "/" + recipe.getId().getPath() + "/allloying"
), 1, false); // ), 1, false);
} // }
//
@Override // @Override
protected int getSmeltTime() { // protected int getSmeltTime() {
return recipe.getCookingTime(); // return recipe.getCookingTime();
} // }
//
@Override // @Override
protected float getExperience() { // protected float getExperience() {
return recipe.getExperience(); // return recipe.getExperience();
} // }
//
//
static void addAllRecipes(EmiRegistry emiRegistry, RecipeManager manager) { // static void addAllRecipes(EmiRegistry emiRegistry, RecipeManager manager) {
EMIPlugin.addAllRecipes( // EMIPlugin.addAllRecipes(
emiRegistry, manager, BetterEnd.LOGGER, // emiRegistry, manager, BetterEnd.LOGGER,
RecipeType.BLASTING, EMIBlastingRecipe::new // RecipeType.BLASTING, EMIBlastingRecipe::new
); // );
} // }
} //}

View file

@ -1,132 +1,132 @@
package org.betterx.betterend.integration.emi; package org.betterx.betterend.integration.emi;
import org.betterx.betterend.BetterEnd; //import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.recipe.builders.InfusionRecipe; //import org.betterx.betterend.recipe.builders.InfusionRecipe;
import org.betterx.ui.ColorUtil; //import org.betterx.ui.ColorUtil;
//
import net.minecraft.client.Minecraft; //import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component; //import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.Style; //import net.minecraft.network.chat.Style;
import net.minecraft.resources.ResourceLocation; //import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.FormattedCharSequence; //import net.minecraft.util.FormattedCharSequence;
import net.minecraft.world.item.crafting.RecipeManager; //import net.minecraft.world.item.crafting.RecipeManager;
//
import dev.emi.emi.api.EmiRegistry; //import dev.emi.emi.api.EmiRegistry;
import dev.emi.emi.api.recipe.EmiRecipe; //import dev.emi.emi.api.recipe.EmiRecipe;
import dev.emi.emi.api.recipe.EmiRecipeCategory; //import dev.emi.emi.api.recipe.EmiRecipeCategory;
import dev.emi.emi.api.render.EmiTexture; //import dev.emi.emi.api.render.EmiTexture;
import dev.emi.emi.api.stack.EmiIngredient; //import dev.emi.emi.api.stack.EmiIngredient;
import dev.emi.emi.api.stack.EmiStack; //import dev.emi.emi.api.stack.EmiStack;
import dev.emi.emi.api.widget.SlotWidget; //import dev.emi.emi.api.widget.SlotWidget;
import dev.emi.emi.api.widget.WidgetHolder; //import dev.emi.emi.api.widget.WidgetHolder;
//
import java.util.List; //import java.util.List;
import org.jetbrains.annotations.Nullable; //import org.jetbrains.annotations.Nullable;
//
public class EMIInfusionRecipe implements EmiRecipe { //public class EMIInfusionRecipe implements EmiRecipe {
public final static EmiTexture BACKGROUND = new EmiTexture( // public final static EmiTexture BACKGROUND = new EmiTexture(
BetterEnd.makeID("textures/gui/infusion.png"), // BetterEnd.makeID("textures/gui/infusion.png"),
0, 0, // 0, 0,
84, 84, 84, 84, 84, 84 // 84, 84, 84, 84, 84, 84
); // );
//
public final Component[] ORIENTATIONS = { // public final Component[] ORIENTATIONS = {
Component.translatable("betterend.infusion.north").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.north").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
Component.translatable("betterend.infusion.north_east").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.north_east").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
Component.translatable("betterend.infusion.east").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.east").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
Component.translatable("betterend.infusion.south_east").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.south_east").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
Component.translatable("betterend.infusion.south").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.south").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
Component.translatable("betterend.infusion.south_west").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.south_west").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
Component.translatable("betterend.infusion.west").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.west").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
Component.translatable("betterend.infusion.north_west").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)), // Component.translatable("betterend.infusion.north_west").setStyle(Style.EMPTY.withColor(ColorUtil.GRAY)),
}; // };
private final ResourceLocation id; // private final ResourceLocation id;
private final List<EmiIngredient> input; // private final List<EmiIngredient> input;
private final List<EmiStack> output; // private final List<EmiStack> output;
//
public EMIInfusionRecipe(InfusionRecipe recipe) { // public EMIInfusionRecipe(InfusionRecipe recipe) {
this.id = recipe.getId(); // this.id = recipe.getId();
this.input = recipe.getIngredients().stream().map(i -> EmiIngredient.of(i)).toList(); // this.input = recipe.getIngredients().stream().map(i -> EmiIngredient.of(i)).toList();
this.output = List.of(EmiStack.of(recipe.getResultItem(Minecraft.getInstance().level.registryAccess()))); // this.output = List.of(EmiStack.of(recipe.getResultItem(Minecraft.getInstance().level.registryAccess())));
} // }
//
static void addAllRecipes(EmiRegistry emiRegistry, RecipeManager manager) { // static void addAllRecipes(EmiRegistry emiRegistry, RecipeManager manager) {
org.betterx.bclib.integration.emi.EMIPlugin.addAllRecipes( // org.betterx.bclib.integration.emi.EMIPlugin.addAllRecipes(
emiRegistry, manager, BetterEnd.LOGGER, // emiRegistry, manager, BetterEnd.LOGGER,
InfusionRecipe.TYPE, EMIInfusionRecipe::new // InfusionRecipe.TYPE, EMIInfusionRecipe::new
); // );
} // }
//
//
@Override // @Override
public EmiRecipeCategory getCategory() { // public EmiRecipeCategory getCategory() {
return EMIPlugin.INFUSION_CATEGORY; // return EMIPlugin.INFUSION_CATEGORY;
} // }
//
@Override // @Override
public @Nullable ResourceLocation getId() { // public @Nullable ResourceLocation getId() {
return id; // return id;
} // }
//
@Override // @Override
public List<EmiIngredient> getInputs() { // public List<EmiIngredient> getInputs() {
return input; // return input;
} // }
//
@Override // @Override
public List<EmiStack> getOutputs() { // public List<EmiStack> getOutputs() {
return output; // return output;
} // }
//
@Override // @Override
public int getDisplayWidth() { // public int getDisplayWidth() {
return 4 + 10 + 84 + 68; // return 4 + 10 + 84 + 68;
} // }
//
@Override // @Override
public int getDisplayHeight() { // public int getDisplayHeight() {
return 4 + 20 + 84; // return 4 + 20 + 84;
} // }
//
@Override // @Override
public void addWidgets(WidgetHolder widgets) { // public void addWidgets(WidgetHolder widgets) {
final int radius = 36; // final int radius = 36;
final int halfSize = 9; // final int halfSize = 9;
final int left = 10; // final int left = 10;
final int top = 17; // final int top = 17;
//
final int cx = left + 84 / 2; // final int cx = left + 84 / 2;
final int cy = top + 84 / 2; // final int cy = top + 84 / 2;
//
final int right = left + 84; // final int right = left + 84;
final int bottom = top + 84; // final int bottom = top + 84;
widgets.addTexture(BACKGROUND, left, top); // widgets.addTexture(BACKGROUND, left, top);
// Add an arrow texture to indicate processing // // Add an arrow texture to indicate processing
widgets.addTexture(EmiTexture.EMPTY_ARROW, right + 10, cy - 8); // widgets.addTexture(EmiTexture.EMPTY_ARROW, right + 10, cy - 8);
//
// Adds an input slot on the left // // Adds an input slot on the left
widgets.add(new SlotWidget(input.get(0), cx - halfSize, cy - halfSize)); // widgets.add(new SlotWidget(input.get(0), cx - halfSize, cy - halfSize));
//
FormattedCharSequence str = FormattedCharSequence.forward("N", Style.EMPTY); // FormattedCharSequence str = FormattedCharSequence.forward("N", Style.EMPTY);
widgets.addText(str, cx - Minecraft.getInstance().font.width(str) / 2, 4, ColorUtil.WHITE, true); // widgets.addText(str, cx - Minecraft.getInstance().font.width(str) / 2, 4, ColorUtil.WHITE, true);
double a = Math.PI; // double a = Math.PI;
for (int i = 1; i < input.size(); i++) { // for (int i = 1; i < input.size(); i++) {
widgets.add(new SlotWidget( // widgets.add(new SlotWidget(
input.get(i), // input.get(i),
cx - halfSize + (int) (Math.sin(a) * radius), // cx - halfSize + (int) (Math.sin(a) * radius),
cy - halfSize + (int) (Math.cos(a) * radius) // cy - halfSize + (int) (Math.cos(a) * radius)
)).appendTooltip(ORIENTATIONS[i - 1]); // )).appendTooltip(ORIENTATIONS[i - 1]);
a -= Math.PI / 4; // a -= Math.PI / 4;
} // }
//
// Adds an output slot on the right // // Adds an output slot on the right
// Note that output slots need to call `recipeContext` to inform EMI about their recipe context // // Note that output slots need to call `recipeContext` to inform EMI about their recipe context
// This includes being able to resolve recipe trees, favorite stacks with recipe context, and more // // This includes being able to resolve recipe trees, favorite stacks with recipe context, and more
widgets.addSlot(output.get(0), right + 40, cy - (halfSize + 4)).large(true).recipeContext(this); // widgets.addSlot(output.get(0), right + 40, cy - (halfSize + 4)).large(true).recipeContext(this);
} // }
//
@Override // @Override
public boolean supportsRecipeTree() { // public boolean supportsRecipeTree() {
return true; // return true;
} // }
} //}

View file

@ -1,40 +1,40 @@
package org.betterx.betterend.integration.emi; package org.betterx.betterend.integration.emi;
import org.betterx.betterend.BetterEnd; //import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.registry.EndBlocks; //import org.betterx.betterend.registry.EndBlocks;
//
import net.minecraft.world.item.crafting.RecipeManager; //import net.minecraft.world.item.crafting.RecipeManager;
//
import dev.emi.emi.api.EmiRegistry; //import dev.emi.emi.api.EmiRegistry;
import dev.emi.emi.api.recipe.EmiRecipeCategory; //import dev.emi.emi.api.recipe.EmiRecipeCategory;
import dev.emi.emi.api.recipe.VanillaEmiRecipeCategories; //import dev.emi.emi.api.recipe.VanillaEmiRecipeCategories;
import dev.emi.emi.api.stack.EmiStack; //import dev.emi.emi.api.stack.EmiStack;
//
public class EMIPlugin implements dev.emi.emi.api.EmiPlugin { //public class EMIPlugin implements dev.emi.emi.api.EmiPlugin {
public static final EmiStack INFUSION_WORKSTATION = EmiStack.of(EndBlocks.INFUSION_PEDESTAL); // public static final EmiStack INFUSION_WORKSTATION = EmiStack.of(EndBlocks.INFUSION_PEDESTAL);
public static final EmiStack AZURE_JADESTONE_FURNACE_WORKSTATION = EmiStack.of(EndBlocks.AZURE_JADESTONE.furnace); // public static final EmiStack AZURE_JADESTONE_FURNACE_WORKSTATION = EmiStack.of(EndBlocks.AZURE_JADESTONE.furnace);
public static final EmiStack SANDY_JADESTONE_FURNACE_WORKSTATION = EmiStack.of(EndBlocks.SANDY_JADESTONE.furnace); // public static final EmiStack SANDY_JADESTONE_FURNACE_WORKSTATION = EmiStack.of(EndBlocks.SANDY_JADESTONE.furnace);
public static final EmiStack VIRID_JADESTONE_FURNACE_WORKSTATION = EmiStack.of(EndBlocks.VIRID_JADESTONE.furnace); // public static final EmiStack VIRID_JADESTONE_FURNACE_WORKSTATION = EmiStack.of(EndBlocks.VIRID_JADESTONE.furnace);
//
public static final EmiRecipeCategory INFUSION_CATEGORY = new EmiRecipeCategory( // public static final EmiRecipeCategory INFUSION_CATEGORY = new EmiRecipeCategory(
BetterEnd.makeID("infusion"), // BetterEnd.makeID("infusion"),
INFUSION_WORKSTATION, // INFUSION_WORKSTATION,
org.betterx.bclib.integration.emi.EMIPlugin.getSprite(0, 16) // org.betterx.bclib.integration.emi.EMIPlugin.getSprite(0, 16)
); // );
//
@Override // @Override
public void register(EmiRegistry emiRegistry) { // public void register(EmiRegistry emiRegistry) {
final RecipeManager manager = emiRegistry.getRecipeManager(); // final RecipeManager manager = emiRegistry.getRecipeManager();
emiRegistry.addCategory(INFUSION_CATEGORY); // emiRegistry.addCategory(INFUSION_CATEGORY);
emiRegistry.addWorkstation(INFUSION_CATEGORY, INFUSION_WORKSTATION); // emiRegistry.addWorkstation(INFUSION_CATEGORY, INFUSION_WORKSTATION);
//
EMIInfusionRecipe.addAllRecipes(emiRegistry, manager); // EMIInfusionRecipe.addAllRecipes(emiRegistry, manager);
if (org.betterx.bclib.integration.emi.EMIPlugin.END_ALLOYING_CATEGORY != null) { // if (org.betterx.bclib.integration.emi.EMIPlugin.END_ALLOYING_CATEGORY != null) {
EMIBlastingRecipe.addAllRecipes(emiRegistry, manager); // EMIBlastingRecipe.addAllRecipes(emiRegistry, manager);
} // }
//
emiRegistry.addWorkstation(VanillaEmiRecipeCategories.SMELTING, AZURE_JADESTONE_FURNACE_WORKSTATION); // emiRegistry.addWorkstation(VanillaEmiRecipeCategories.SMELTING, AZURE_JADESTONE_FURNACE_WORKSTATION);
emiRegistry.addWorkstation(VanillaEmiRecipeCategories.SMELTING, SANDY_JADESTONE_FURNACE_WORKSTATION); // emiRegistry.addWorkstation(VanillaEmiRecipeCategories.SMELTING, SANDY_JADESTONE_FURNACE_WORKSTATION);
emiRegistry.addWorkstation(VanillaEmiRecipeCategories.SMELTING, VIRID_JADESTONE_FURNACE_WORKSTATION); // emiRegistry.addWorkstation(VanillaEmiRecipeCategories.SMELTING, VIRID_JADESTONE_FURNACE_WORKSTATION);
} // }
} //}

View file

@ -1,88 +1,88 @@
package org.betterx.betterend.integration.trinkets; package org.betterx.betterend.integration.trinkets;
import org.betterx.bclib.items.elytra.BCLElytraItem; //import org.betterx.bclib.items.elytra.BCLElytraItem;
import org.betterx.bclib.items.elytra.BCLElytraUtils; //import org.betterx.bclib.items.elytra.BCLElytraUtils;
//
import net.minecraft.util.Tuple; //import net.minecraft.util.Tuple;
import net.minecraft.world.entity.EquipmentSlot; //import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity; //import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.ElytraItem; //import net.minecraft.world.item.ElytraItem;
import net.minecraft.world.item.Item; //import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack; //import net.minecraft.world.item.ItemStack;
//
import net.fabricmc.fabric.api.entity.event.v1.EntityElytraEvents; //import net.fabricmc.fabric.api.entity.event.v1.EntityElytraEvents;
import net.fabricmc.fabric.api.entity.event.v1.FabricElytraItem; //import net.fabricmc.fabric.api.entity.event.v1.FabricElytraItem;
//
import dev.emi.trinkets.api.SlotReference; //import dev.emi.trinkets.api.SlotReference;
import dev.emi.trinkets.api.TrinketComponent; //import dev.emi.trinkets.api.TrinketComponent;
import dev.emi.trinkets.api.TrinketsApi; //import dev.emi.trinkets.api.TrinketsApi;
//
import java.util.List; //import java.util.List;
import java.util.Optional; //import java.util.Optional;
//
public class Elytra { //public class Elytra {
private static boolean isElytra(ItemStack stack) { // private static boolean isElytra(ItemStack stack) {
return stack.getItem() instanceof ElytraItem // return stack.getItem() instanceof ElytraItem
|| stack.getItem() instanceof FabricElytraItem; // || stack.getItem() instanceof FabricElytraItem;
} // }
//
public static void register() { // public static void register() {
BCLElytraUtils.slotProvider = (entity, slotGetter) -> { // BCLElytraUtils.slotProvider = (entity, slotGetter) -> {
ItemStack itemStack = slotGetter.apply(EquipmentSlot.CHEST); // ItemStack itemStack = slotGetter.apply(EquipmentSlot.CHEST);
if (isElytra(itemStack)) return itemStack; // if (isElytra(itemStack)) return itemStack;
//
Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity); // Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
if (oTrinketComponent.isPresent()) { // if (oTrinketComponent.isPresent()) {
List<Tuple<SlotReference, ItemStack>> equipped = // List<Tuple<SlotReference, ItemStack>> equipped =
oTrinketComponent.get().getEquipped(Elytra::isElytra); // oTrinketComponent.get().getEquipped(Elytra::isElytra);
//
if (!equipped.isEmpty()) return equipped.get(0).getB(); // if (!equipped.isEmpty()) return equipped.get(0).getB();
} // }
return null; // return null;
}; // };
//
BCLElytraUtils.onBreak = (entity, chestStack) -> { // BCLElytraUtils.onBreak = (entity, chestStack) -> {
Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity); // Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
if (oTrinketComponent.isPresent()) { // if (oTrinketComponent.isPresent()) {
List<Tuple<SlotReference, ItemStack>> equipped = // List<Tuple<SlotReference, ItemStack>> equipped =
oTrinketComponent.get().getEquipped(Elytra::isElytra); // oTrinketComponent.get().getEquipped(Elytra::isElytra);
//
for (Tuple<SlotReference, ItemStack> slot : equipped) { // for (Tuple<SlotReference, ItemStack> slot : equipped) {
ItemStack slotStack = slot.getB(); // ItemStack slotStack = slot.getB();
if (slotStack == chestStack) { // if (slotStack == chestStack) {
TrinketsApi.onTrinketBroken(slotStack, slot.getA(), entity); // TrinketsApi.onTrinketBroken(slotStack, slot.getA(), entity);
} // }
} // }
} // }
}; // };
//
EntityElytraEvents.CUSTOM.register(Elytra::useElytraTrinket); // EntityElytraEvents.CUSTOM.register(Elytra::useElytraTrinket);
} // }
//
private static boolean useElytraTrinket(LivingEntity entity, boolean tickElytra) { // private static boolean useElytraTrinket(LivingEntity entity, boolean tickElytra) {
Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity); // Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
if (oTrinketComponent.isPresent()) { // if (oTrinketComponent.isPresent()) {
List<Tuple<SlotReference, ItemStack>> equipped = // List<Tuple<SlotReference, ItemStack>> equipped =
oTrinketComponent.get().getEquipped(Elytra::isElytra); // oTrinketComponent.get().getEquipped(Elytra::isElytra);
//
for (Tuple<SlotReference, ItemStack> slot : equipped) { // for (Tuple<SlotReference, ItemStack> slot : equipped) {
ItemStack stack = slot.getB(); // ItemStack stack = slot.getB();
Item item = stack.getItem(); // Item item = stack.getItem();
//
if (item instanceof ElytraItem) { // if (item instanceof ElytraItem) {
if (ElytraItem.isFlyEnabled(stack)) { // if (ElytraItem.isFlyEnabled(stack)) {
BCLElytraItem.vanillaElytraTick(entity, stack); // BCLElytraItem.vanillaElytraTick(entity, stack);
return true; // return true;
} // }
} else if (item instanceof FabricElytraItem fabricElytraItem) { // } else if (item instanceof FabricElytraItem fabricElytraItem) {
if (fabricElytraItem.useCustomElytra(entity, stack, tickElytra)) { // if (fabricElytraItem.useCustomElytra(entity, stack, tickElytra)) {
return true; // return true;
} // }
} // }
} // }
} // }
return false; // return false;
} // }
} //}

View file

@ -1,22 +1,22 @@
package org.betterx.betterend.integration.trinkets; //package org.betterx.betterend.integration.trinkets;
//
import net.minecraft.world.item.ElytraItem; //import net.minecraft.world.item.ElytraItem;
//
import net.fabricmc.api.EnvType; //import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; //import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.rendering.v1.LivingEntityFeatureRenderEvents; //import net.fabricmc.fabric.api.client.rendering.v1.LivingEntityFeatureRenderEvents;
import net.fabricmc.fabric.api.entity.event.v1.FabricElytraItem; //import net.fabricmc.fabric.api.entity.event.v1.FabricElytraItem;
//
import dev.emi.trinkets.api.TrinketsApi; //import dev.emi.trinkets.api.TrinketsApi;
//
@Environment(EnvType.CLIENT) //@Environment(EnvType.CLIENT)
public class ElytraClient { //public class ElytraClient {
public static void register() { // public static void register() {
LivingEntityFeatureRenderEvents.ALLOW_CAPE_RENDER.register((player) -> TrinketsApi // LivingEntityFeatureRenderEvents.ALLOW_CAPE_RENDER.register((player) -> TrinketsApi
.getTrinketComponent(player) // .getTrinketComponent(player)
.map(trinketComponent -> trinketComponent.getEquipped( // .map(trinketComponent -> trinketComponent.getEquipped(
stack -> stack.getItem() instanceof ElytraItem || // stack -> stack.getItem() instanceof ElytraItem ||
stack.getItem() instanceof FabricElytraItem // stack.getItem() instanceof FabricElytraItem
).size() == 0).orElse(true)); // ).size() == 0).orElse(true));
} // }
} //}

View file

@ -33,9 +33,6 @@
], ],
"rei_client": [ "rei_client": [
"org.betterx.betterend.integration.rei.REIPlugin" "org.betterx.betterend.integration.rei.REIPlugin"
],
"emi": [
"org.betterx.betterend.integration.emi.EMIPlugin"
] ]
}, },
"accessWidener": "betterend.accesswidener", "accessWidener": "betterend.accesswidener",