Revert "#2775 Adding Trinket support for BatpackItem. Thanks to SimonFlapse"
This reverts commit e28c9176e5
.
This commit is contained in:
parent
852c867a0d
commit
9683023658
6 changed files with 18 additions and 115 deletions
|
@ -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
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
21
build.gradle
21
build.gradle
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
"entities": [
|
|
||||||
"player"
|
|
||||||
],
|
|
||||||
"slots": [
|
|
||||||
"chest/back"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"techreborn:lithium_ion_batpack",
|
|
||||||
"techreborn:lapotronic_orbpack"
|
|
||||||
]
|
|
||||||
}
|
|
Loading…
Reference in a new issue