Clean up turtle inventory reading

This commit is contained in:
Jonathan Coates 2024-03-21 21:21:31 +00:00
parent 0abd107348
commit afe16cc593
No known key found for this signature in database
GPG Key ID: B9E431FF07C98D06
2 changed files with 8 additions and 24 deletions

View File

@ -24,10 +24,9 @@
import net.minecraft.core.Direction;
import net.minecraft.core.NonNullList;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.Tag;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.ContainerHelper;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
@ -136,17 +135,8 @@ public void loadServer(CompoundTag nbt) {
super.loadServer(nbt);
// Read inventory
var nbttaglist = nbt.getList("Items", Tag.TAG_COMPOUND);
inventory.clear();
inventorySnapshot.clear();
for (var i = 0; i < nbttaglist.size(); i++) {
var tag = nbttaglist.getCompound(i);
var slot = tag.getByte("Slot") & 0xff;
if (slot < getContainerSize()) {
inventory.set(slot, ItemStack.of(tag));
inventorySnapshot.set(slot, inventory.get(slot).copy());
}
}
ContainerHelper.loadAllItems(nbt, inventory);
for (var i = 0; i < inventory.size(); i++) inventorySnapshot.set(i, inventory.get(i).copy());
// Read state
brain.readFromNBT(nbt);
@ -155,16 +145,7 @@ public void loadServer(CompoundTag nbt) {
@Override
public void saveAdditional(CompoundTag nbt) {
// Write inventory
var nbttaglist = new ListTag();
for (var i = 0; i < INVENTORY_SIZE; i++) {
if (!inventory.get(i).isEmpty()) {
var tag = new CompoundTag();
tag.putByte("Slot", (byte) i);
inventory.get(i).save(tag);
nbttaglist.add(tag);
}
}
nbt.put("Items", nbttaglist);
ContainerHelper.saveAllItems(nbt, inventory);
// Write brain
nbt = brain.writeToNBT(nbt);

View File

@ -249,7 +249,10 @@ modPublishing {
// Make sure configureReobfTaskForReobfJarJar runs after compilation
// see - https://github.com/SpongePowered/MixinGradle/pull/51
tasks.configureEach {
if (name == "configureReobfTaskForReobfJarJar") mustRunAfter(tasks.jarJar)
when (name) {
"configureReobfTaskForReobfJar" -> mustRunAfter(tasks.jar)
"configureReobfTaskForReobfJarJar" -> mustRunAfter(tasks.jarJar)
}
}
// Don't publish the slim jar