[Changes] Re-Enabled support for trinkets
This commit is contained in:
parent
f84663711b
commit
ef448e27e1
4 changed files with 109 additions and 97 deletions
|
@ -95,8 +95,8 @@ dependencies {
|
||||||
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
|
||||||
//1.19.3 modApi "dev.onyxstudios.cardinal-components-api:cardinal-components-base:${project.cca_version}"
|
modApi "dev.onyxstudios.cardinal-components-api:cardinal-components-base:${project.cca_version}"
|
||||||
//1.19.3 modCompileOnly "dev.emi:trinkets:${project.trinkets_version}"
|
modCompileOnly "dev.emi:trinkets:${project.trinkets_version}"
|
||||||
modCompileOnly "dev.emi:emi:${emi_version}"
|
modCompileOnly "dev.emi:emi:${emi_version}"
|
||||||
//modRuntimeOnly "dev.emi:emi:${emi_version}"
|
//modRuntimeOnly "dev.emi:emi:${emi_version}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,6 @@ archives_base_name=better-end
|
||||||
patchouli_version=1.19-73-FABRIC
|
patchouli_version=1.19-73-FABRIC
|
||||||
bclib_version=2.2.4
|
bclib_version=2.2.4
|
||||||
rei_version=10.0.578
|
rei_version=10.0.578
|
||||||
jei_version=11.1.0.235
|
emi_version=0.6.2+1.19.3
|
||||||
emi_version=0.5.0+1.19.3
|
trinkets_version=3.5.0
|
||||||
trinkets_version=3.4.0
|
cca_version=5.1.0
|
||||||
cca_version=5.0.0-beta.1
|
|
||||||
|
|
|
@ -1,75 +1,88 @@
|
||||||
package org.betterx.betterend.integration.trinkets;
|
package org.betterx.betterend.integration.trinkets;
|
||||||
|
|
||||||
//import dev.emi.trinkets.api.SlotReference;
|
import org.betterx.bclib.items.elytra.BCLElytraItem;
|
||||||
//import dev.emi.trinkets.api.TrinketComponent;
|
import org.betterx.bclib.items.elytra.BCLElytraUtils;
|
||||||
//import dev.emi.trinkets.api.TrinketsApi;
|
|
||||||
//
|
import net.minecraft.util.Tuple;
|
||||||
//import java.util.List;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
//import java.util.Optional;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
//
|
import net.minecraft.world.item.ElytraItem;
|
||||||
//public class Elytra {
|
import net.minecraft.world.item.Item;
|
||||||
// private static boolean isElytra(ItemStack stack) {
|
import net.minecraft.world.item.ItemStack;
|
||||||
// return stack.getItem() instanceof ElytraItem
|
|
||||||
// || stack.getItem() instanceof FabricElytraItem;
|
import net.fabricmc.fabric.api.entity.event.v1.EntityElytraEvents;
|
||||||
// }
|
import net.fabricmc.fabric.api.entity.event.v1.FabricElytraItem;
|
||||||
//
|
|
||||||
// public static void register() {
|
import dev.emi.trinkets.api.SlotReference;
|
||||||
// BCLElytraUtils.slotProvider = (entity, slotGetter) -> {
|
import dev.emi.trinkets.api.TrinketComponent;
|
||||||
// ItemStack itemStack = slotGetter.apply(EquipmentSlot.CHEST);
|
import dev.emi.trinkets.api.TrinketsApi;
|
||||||
// if (isElytra(itemStack)) return itemStack;
|
|
||||||
//
|
import java.util.List;
|
||||||
// Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
|
import java.util.Optional;
|
||||||
// if (oTrinketComponent.isPresent()) {
|
|
||||||
// List<Tuple<SlotReference, ItemStack>> equipped =
|
public class Elytra {
|
||||||
// oTrinketComponent.get().getEquipped(Elytra::isElytra);
|
private static boolean isElytra(ItemStack stack) {
|
||||||
//
|
return stack.getItem() instanceof ElytraItem
|
||||||
// if (!equipped.isEmpty()) return equipped.get(0).getB();
|
|| stack.getItem() instanceof FabricElytraItem;
|
||||||
// }
|
}
|
||||||
// return null;
|
|
||||||
// };
|
public static void register() {
|
||||||
//
|
BCLElytraUtils.slotProvider = (entity, slotGetter) -> {
|
||||||
// BCLElytraUtils.onBreak = (entity, chestStack) -> {
|
ItemStack itemStack = slotGetter.apply(EquipmentSlot.CHEST);
|
||||||
// Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
|
if (isElytra(itemStack)) return itemStack;
|
||||||
// if (oTrinketComponent.isPresent()) {
|
|
||||||
// List<Tuple<SlotReference, ItemStack>> equipped =
|
Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
|
||||||
// oTrinketComponent.get().getEquipped(Elytra::isElytra);
|
if (oTrinketComponent.isPresent()) {
|
||||||
//
|
List<Tuple<SlotReference, ItemStack>> equipped =
|
||||||
// for (Tuple<SlotReference, ItemStack> slot : equipped) {
|
oTrinketComponent.get().getEquipped(Elytra::isElytra);
|
||||||
// ItemStack slotStack = slot.getB();
|
|
||||||
// if (slotStack == chestStack) {
|
if (!equipped.isEmpty()) return equipped.get(0).getB();
|
||||||
// TrinketsApi.onTrinketBroken(slotStack, slot.getA(), entity);
|
}
|
||||||
// }
|
return null;
|
||||||
// }
|
};
|
||||||
// }
|
|
||||||
// };
|
BCLElytraUtils.onBreak = (entity, chestStack) -> {
|
||||||
//
|
Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
|
||||||
// EntityElytraEvents.CUSTOM.register(Elytra::useElytraTrinket);
|
if (oTrinketComponent.isPresent()) {
|
||||||
// }
|
List<Tuple<SlotReference, ItemStack>> equipped =
|
||||||
//
|
oTrinketComponent.get().getEquipped(Elytra::isElytra);
|
||||||
// private static boolean useElytraTrinket(LivingEntity entity, boolean tickElytra) {
|
|
||||||
// Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
|
for (Tuple<SlotReference, ItemStack> slot : equipped) {
|
||||||
// if (oTrinketComponent.isPresent()) {
|
ItemStack slotStack = slot.getB();
|
||||||
// List<Tuple<SlotReference, ItemStack>> equipped =
|
if (slotStack == chestStack) {
|
||||||
// oTrinketComponent.get().getEquipped(Elytra::isElytra);
|
TrinketsApi.onTrinketBroken(slotStack, slot.getA(), entity);
|
||||||
//
|
}
|
||||||
// for (Tuple<SlotReference, ItemStack> slot : equipped) {
|
}
|
||||||
// ItemStack stack = slot.getB();
|
}
|
||||||
// Item item = stack.getItem();
|
};
|
||||||
//
|
|
||||||
// if (item instanceof ElytraItem) {
|
EntityElytraEvents.CUSTOM.register(Elytra::useElytraTrinket);
|
||||||
// if (ElytraItem.isFlyEnabled(stack)) {
|
}
|
||||||
// BCLElytraItem.vanillaElytraTick(entity, stack);
|
|
||||||
// return true;
|
private static boolean useElytraTrinket(LivingEntity entity, boolean tickElytra) {
|
||||||
// }
|
Optional<TrinketComponent> oTrinketComponent = TrinketsApi.getTrinketComponent(entity);
|
||||||
// } else if (item instanceof FabricElytraItem fabricElytraItem) {
|
if (oTrinketComponent.isPresent()) {
|
||||||
// if (fabricElytraItem.useCustomElytra(entity, stack, tickElytra)) {
|
List<Tuple<SlotReference, ItemStack>> equipped =
|
||||||
// return true;
|
oTrinketComponent.get().getEquipped(Elytra::isElytra);
|
||||||
// }
|
|
||||||
// }
|
for (Tuple<SlotReference, ItemStack> slot : equipped) {
|
||||||
// }
|
ItemStack stack = slot.getB();
|
||||||
// }
|
Item item = stack.getItem();
|
||||||
// return false;
|
|
||||||
// }
|
if (item instanceof ElytraItem) {
|
||||||
//}
|
if (ElytraItem.isFlyEnabled(stack)) {
|
||||||
|
BCLElytraItem.vanillaElytraTick(entity, stack);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if (item instanceof FabricElytraItem fabricElytraItem) {
|
||||||
|
if (fabricElytraItem.useCustomElytra(entity, stack, tickElytra)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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));
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue