Revert "#2775 Adding Trinket support for BatpackItem. Thanks to SimonFlapse"

This reverts commit e28c9176e5.
This commit is contained in:
modmuss50 2022-04-05 14:12:57 +01:00
parent 852c867a0d
commit 9683023658
6 changed files with 18 additions and 115 deletions

View file

@ -280,40 +280,18 @@ public class ItemUtils {
} }
for (int i = 0; i < player.getInventory().size(); i++) { for (int i = 0; i < player.getInventory().size(); i++) {
transferPower(player, i, sourceStorage, maxOutput, filter); ItemStack invStack = player.getInventory().getStack(i);
if (invStack.isEmpty() || !filter.test(invStack)) {
continue;
}
EnergyStorageUtil.move(
sourceStorage,
ContainerItemContext.ofPlayerSlot(player, playerInv.getSlots().get(i)).find(EnergyStorage.ITEM),
maxOutput,
null
);
} }
} }
/**
* Output energy from EnergyStorage to other EnergyStorage at slot index.
* <br> <br>
* It is recommended to use {@link ItemUtils#distributePowerToInventory(PlayerEntity, ItemStack, long, Predicate)}
* <br> <br>
* Only outputs energy if the item in the provided slot can accept power
*
* @param player {@link PlayerEntity} Player having powered item
* @param slot {@code int} Slot of the targeted item
* @param sourceStorage {@link EnergyStorage} EnergyStorage to output from
* @param maxOutput {@code int} Maximum output rate of powered item
* @param filter {@link Predicate} Filter for items to output to
* @return The actual amount of energy transferred, can be zero (0) if the targeted item does not support power input
*/
public static long transferPower(PlayerEntity player, int slot, EnergyStorage sourceStorage, long maxOutput, Predicate<ItemStack> filter) {
PlayerInventoryStorage playerInv = PlayerInventoryStorage.of(player);
ItemStack invStack = player.getInventory().getStack(slot);
if (invStack.isEmpty() || !filter.test(invStack)) {
return 0;
}
EnergyStorage receiverStorage = ContainerItemContext.ofPlayerSlot(player, playerInv.getSlots().get(slot)).find(EnergyStorage.ITEM);
return EnergyStorageUtil.move(
sourceStorage,
receiverStorage,
maxOutput,
null
);
}
} }

View file

@ -45,16 +45,6 @@ repositories {
content { content {
// Trinkets dependency // Trinkets dependency
includeGroup "io.github.onyxstudios.Cardinal-Components-API" includeGroup "io.github.onyxstudios.Cardinal-Components-API"
includeGroup "dev.onyxstudios.cardinal-components-api"
}
}
// Needed because of an error in the POM file in the Trinkets implementation
// See https://github.com/emilyploszaj/trinkets/issues/159
maven {
name = "TerraformersMC"
url = "https://maven.terraformersmc.com/"
content {
includeGroup("com.terraformersmc")
} }
} }
maven { maven {
@ -194,7 +184,7 @@ dependencies {
include project(":RebornCore") include project(":RebornCore")
optionalDependency "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" optionalDependency "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}"
optionalDependency "com.github.emilyploszaj:trinkets:${project.trinkets_version}" disabledOptionalDependency "com.github.emilyploszaj:trinkets:${project.trinkets_version}"
disabledOptionalDependency "net.oskarstrom:DashLoader:${project.dashloader_version}" disabledOptionalDependency "net.oskarstrom:DashLoader:${project.dashloader_version}"
// Use groovy for datagen/gametest, if you are copying this you prob dont want it. // Use groovy for datagen/gametest, if you are copying this you prob dont want it.
@ -314,10 +304,8 @@ task renameCrowdin(type: Copy, dependsOn: ['crowdin', 'cleanCrowdin']){
} }
} }
import groovy.json.JsonOutput
import groovy.json.JsonSlurper import groovy.json.JsonSlurper
import groovy.util.XmlSlurper import groovy.json.JsonOutput
task fixTranslations(dependsOn: ['renameCrowdin']) { task fixTranslations(dependsOn: ['renameCrowdin']) {
description "Remove all translations that do not have an entry, ensures that minecraft falls back to EN_US over writing out an empty string" description "Remove all translations that do not have an entry, ensures that minecraft falls back to EN_US over writing out an empty string"
@ -333,8 +321,7 @@ task fixTranslations(dependsOn: ['renameCrowdin']) {
} }
} }
import groovy.util.XmlSlurper
import org.kohsuke.github.GHReleaseBuilder
curseforge { curseforge {
if (ENV.CURSEFORGE_API_KEY) { if (ENV.CURSEFORGE_API_KEY) {
@ -373,7 +360,7 @@ def getBranch() {
return "unknown" return "unknown"
} }
import org.kohsuke.github.GHReleaseBuilder
import org.kohsuke.github.GitHub import org.kohsuke.github.GitHub
task github(dependsOn: remapJar) { task github(dependsOn: remapJar) {

View file

@ -14,5 +14,5 @@ org.gradle.jvmargs=-Xmx2G
# Dependencies # Dependencies
energy_version=2.2.0 energy_version=2.2.0
rei_version=8.0.438 rei_version=8.0.438
trinkets_version=3.3.0 trinkets_version=3.0.2
dashloader_version=2.0 dashloader_version=2.0

View file

@ -24,30 +24,22 @@
package techreborn.items.armor; package techreborn.items.armor;
import dev.emi.trinkets.api.SlotReference;
import dev.emi.trinkets.api.Trinket;
import dev.emi.trinkets.api.TrinketsApi;
import net.fabricmc.fabric.api.transfer.v1.context.ContainerItemContext;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.EquipmentSlot;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ArmorItem; import net.minecraft.item.ArmorItem;
import net.minecraft.item.ArmorMaterial; import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.collection.DefaultedList;
import net.minecraft.world.World; import net.minecraft.world.World;
import reborncore.common.powerSystem.RcEnergyItem; import reborncore.common.powerSystem.RcEnergyItem;
import reborncore.common.powerSystem.RcEnergyTier; import reborncore.common.powerSystem.RcEnergyTier;
import reborncore.common.util.ItemUtils; import reborncore.common.util.ItemUtils;
import team.reborn.energy.api.EnergyStorage;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.utils.InitUtils; import techreborn.utils.InitUtils;
public class BatpackItem extends ArmorItem implements RcEnergyItem, Trinket { public class BatpackItem extends ArmorItem implements RcEnergyItem {
public final int maxCharge; public final int maxCharge;
public final RcEnergyTier tier; public final RcEnergyTier tier;
@ -56,32 +48,6 @@ public class BatpackItem extends ArmorItem implements RcEnergyItem, Trinket {
super(material, EquipmentSlot.CHEST, new Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1)); super(material, EquipmentSlot.CHEST, new Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
this.maxCharge = maxCharge; this.maxCharge = maxCharge;
this.tier = tier; this.tier = tier;
registerTrinket();
}
//Trinket
@Override
public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) {
if (entity instanceof ServerPlayerEntity) {
EnergyStorage sourceStorage = ContainerItemContext.withInitial(stack).find(EnergyStorage.ITEM);
ServerPlayerEntity player = (ServerPlayerEntity) entity;
for (int i = 0; i < player.getInventory().size(); i++) {
long amountBefore = sourceStorage.getAmount();
long accepted = ItemUtils.transferPower(player, i, sourceStorage, tier.getMaxOutput(), (itemStack) -> true );
long expectedAfter = amountBefore - accepted;
if (amountBefore != expectedAfter) {
((BatpackItem) stack.getItem()).setStoredEnergy(stack, expectedAfter);
}
}
}
} }
// Item // Item
@ -90,12 +56,6 @@ public class BatpackItem extends ArmorItem implements RcEnergyItem, Trinket {
if (worldIn.isClient) { if (worldIn.isClient) {
return; return;
} }
// vanilla default for chest inventory slot
if (itemSlot != 2) {
return;
}
if (entityIn instanceof PlayerEntity) { if (entityIn instanceof PlayerEntity) {
ItemUtils.distributePowerToInventory((PlayerEntity) entityIn, stack, tier.getMaxOutput()); ItemUtils.distributePowerToInventory((PlayerEntity) entityIn, stack, tier.getMaxOutput());
} }
@ -144,11 +104,4 @@ public class BatpackItem extends ArmorItem implements RcEnergyItem, Trinket {
public int getItemBarStep(ItemStack stack) { public int getItemBarStep(ItemStack stack) {
return ItemUtils.getPowerForDurabilityBar(stack); return ItemUtils.getPowerForDurabilityBar(stack);
} }
private void registerTrinket() {
// Ensures that trinkets are only registered if the mod is installed
if (FabricLoader.getInstance().isModLoaded("trinkets")) {
TrinketsApi.registerTrinket(this, this);
}
}
} }

View file

@ -1,8 +0,0 @@
{
"entities": [
"player"
],
"slots": [
"chest/back"
]
}

View file

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"techreborn:lithium_ion_batpack",
"techreborn:lapotronic_orbpack"
]
}