Cleanup and constant shuffling.

This commit is contained in:
Florian Nücke
2020-12-25 00:44:07 +01:00
parent 9c3bbcde05
commit 52df43811f
5 changed files with 17 additions and 31 deletions

View File

@@ -6,6 +6,11 @@ public final class Constants {
///////////////////////////////////////////////////////////////////
public static final String BLOCK_ENTITY_TAG_NAME_IN_ITEM = "BlockEntityTag";
public static final String BLOCK_ENTITY_INVENTORY_TAG_NAME = "items";
///////////////////////////////////////////////////////////////////
public static final String COMPUTER_BLOCK_NAME = "computer";
public static final String BUS_CABLE_BLOCK_NAME = "bus_cable";
public static final String REDSTONE_INTERFACE_BLOCK_NAME = "redstone_interface";

View File

@@ -1,6 +1,5 @@
package li.cil.oc2.common.block;
import li.cil.oc2.api.API;
import li.cil.oc2.client.gui.TerminalScreen;
import li.cil.oc2.common.block.entity.ComputerTileEntity;
import li.cil.oc2.common.container.ComputerContainer;
@@ -22,7 +21,6 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.text.ITextComponent;
@@ -33,8 +31,6 @@ import net.minecraftforge.fml.network.NetworkHooks;
import javax.annotation.Nullable;
public final class ComputerBlock extends HorizontalBlock {
public static final ResourceLocation CONTENTS = new ResourceLocation(API.MOD_ID, "contents");
public ComputerBlock() {
super(Properties
.create(Material.IRON)

View File

@@ -66,7 +66,6 @@ public final class ComputerTileEntity extends AbstractTileEntity implements ITic
private static final String VFS_NBT_TAG_NAME = "vfs";
private static final String RUNNER_NBT_TAG_NAME = "runner";
private static final String RUN_STATE_NBT_TAG_NAME = "runState";
public static final String ITEMS_NBT_TAG_NAME = "items";
private static final int DEVICE_LOAD_RETRY_INTERVAL = 10 * 20; // In ticks.
private static final int VFS_INTERRUPT = 0x4;
@@ -318,7 +317,7 @@ public final class ComputerTileEntity extends AbstractTileEntity implements ITic
NBTUtils.putEnum(compound, RUN_STATE_NBT_TAG_NAME, runState);
}
compound.put(ITEMS_NBT_TAG_NAME, itemHandler.serializeNBT());
compound.put(Constants.BLOCK_ENTITY_INVENTORY_TAG_NAME, itemHandler.serializeNBT());
return compound;
}
@@ -356,11 +355,11 @@ public final class ComputerTileEntity extends AbstractTileEntity implements ITic
}
}
if (compound.contains(ITEMS_NBT_TAG_NAME, NBTTagIds.TAG_COMPOUND)) {
if (compound.contains(Constants.BLOCK_ENTITY_INVENTORY_TAG_NAME, NBTTagIds.TAG_COMPOUND)) {
for (int i = 0; i < itemHandler.getSlots(); i++) {
itemHandler.setStackInSlot(i, ItemStack.EMPTY);
}
itemHandler.deserializeNBT(compound.getCompound(ITEMS_NBT_TAG_NAME));
itemHandler.deserializeNBT(compound.getCompound(Constants.BLOCK_ENTITY_INVENTORY_TAG_NAME));
}
}

View File

@@ -2,8 +2,6 @@ package li.cil.oc2.data;
import com.mojang.datafixers.util.Pair;
import li.cil.oc2.api.API;
import li.cil.oc2.common.block.ComputerBlock;
import li.cil.oc2.common.block.entity.ComputerTileEntity;
import li.cil.oc2.common.init.Blocks;
import net.minecraft.block.Block;
import net.minecraft.data.DataGenerator;
@@ -11,7 +9,6 @@ import net.minecraft.data.LootTableProvider;
import net.minecraft.data.loot.BlockLootTables;
import net.minecraft.loot.*;
import net.minecraft.loot.functions.CopyNbt;
import net.minecraft.loot.functions.SetContents;
import net.minecraft.util.ResourceLocation;
import java.util.Collections;
@@ -24,10 +21,10 @@ import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import static java.util.Objects.requireNonNull;
import static li.cil.oc2.Constants.BLOCK_ENTITY_INVENTORY_TAG_NAME;
import static li.cil.oc2.Constants.BLOCK_ENTITY_TAG_NAME_IN_ITEM;
public final class LootTables extends LootTableProvider {
private static final String BLOCK_ENTITY_TAG_NAME_IN_ITEM = "BlockEntityTag";
public LootTables(final DataGenerator generator) {
super(generator);
}
@@ -42,11 +39,7 @@ public final class LootTables extends LootTableProvider {
return Collections.singletonList(Pair.of(ModBlockLootTables::new, LootParameterSets.BLOCK));
}
private static String concatNbtPath(final String... paths) {
return String.join(".", paths);
}
private static final class ModBlockLootTables extends BlockLootTables {
public static final class ModBlockLootTables extends BlockLootTables {
@Override
protected void addTables() {
registerDropSelfLootTable(Blocks.BUS_CABLE_BLOCK.get());
@@ -69,14 +62,16 @@ public final class LootTables extends LootTableProvider {
.rolls(ConstantRange.of(1))
.addEntry(ItemLootEntry.builder(block)
.acceptFunction(CopyNbt.builder(CopyNbt.Source.BLOCK_ENTITY)
.addOperation(ComputerTileEntity.ITEMS_NBT_TAG_NAME,
concatNbtPath(BLOCK_ENTITY_TAG_NAME_IN_ITEM, ComputerTileEntity.ITEMS_NBT_TAG_NAME),
.addOperation(BLOCK_ENTITY_INVENTORY_TAG_NAME,
concat(BLOCK_ENTITY_TAG_NAME_IN_ITEM, BLOCK_ENTITY_INVENTORY_TAG_NAME),
CopyNbt.Action.REPLACE)
)
.acceptFunction(SetContents.builderIn()
.addLootEntry(DynamicLootEntry.func_216162_a(ComputerBlock.CONTENTS)))
)
));
}
private static String concat(final String... paths) {
return String.join(".", paths);
}
}
}

View File

@@ -17,15 +17,6 @@
"op": "replace"
}
]
},
{
"function": "minecraft:set_contents",
"entries": [
{
"type": "minecraft:dynamic",
"name": "oc2:contents"
}
]
}
],
"name": "oc2:computer"