mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-27 07:27:15 +01:00
fix backtank nbt not saving
ForgeCaps don't save yet either though
This commit is contained in:
parent
75d337ba8c
commit
f20dbd5cae
7 changed files with 51 additions and 7 deletions
|
@ -3329,7 +3329,7 @@ c2b075008849e152f20e8da946e89c9722325df6 data/create/loot_tables/blocks/content_
|
|||
69b4b25d7d271458177fbbaeba2c797daccc38a2 data/create/loot_tables/blocks/contraption_controls.json
|
||||
28856dc862efc6bcc421d035d26386740458f868 data/create/loot_tables/blocks/controller_rail.json
|
||||
2c2785e39e1891dff2c50cba93e814b56d935154 data/create/loot_tables/blocks/controls.json
|
||||
3abf04f6132955275ad490668cd28f481afb4ec2 data/create/loot_tables/blocks/copper_backtank.json
|
||||
830949a5dc64982392db2c1f651d2a9d0ff659a8 data/create/loot_tables/blocks/copper_backtank.json
|
||||
6697e619d5c6dcb81aad4f5c88ba319d13665b35 data/create/loot_tables/blocks/copper_bars.json
|
||||
8010db6b2427536c74312c85425b3ba83abc363c data/create/loot_tables/blocks/copper_casing.json
|
||||
ea5fb942c8dfb792daac538e09d286ac120aa199 data/create/loot_tables/blocks/copper_door.json
|
||||
|
@ -3590,7 +3590,7 @@ afdff197c9d1a6940e988c00435135f9705fd0e5 data/create/loot_tables/blocks/metal_gi
|
|||
b83a90fbe83906b171fc0de6bdc2d9aa3a8c542e data/create/loot_tables/blocks/millstone.json
|
||||
5c1df8443043b3fe3b665dba348e2ff188bcbe31 data/create/loot_tables/blocks/minecart_anchor.json
|
||||
1e73d28fdd2e54910074aeadbe5617425a8ae656 data/create/loot_tables/blocks/mysterious_cuckoo_clock.json
|
||||
a5fa8fdc10efe534e5c7d8bdb687f226b39f63ef data/create/loot_tables/blocks/netherite_backtank.json
|
||||
9be92bab82bc1e83533f1d4679b09bd0513b07eb data/create/loot_tables/blocks/netherite_backtank.json
|
||||
2e21a06c0d671e543bffecb0b67d97b51fa83ddc data/create/loot_tables/blocks/nixie_tube.json
|
||||
f6b4095a518a01081f3663d7268d67063bdb44ee data/create/loot_tables/blocks/nozzle.json
|
||||
d378be8f13fc7ed625813eae3a50b68e8706a297 data/create/loot_tables/blocks/oak_window.json
|
||||
|
@ -5012,7 +5012,7 @@ e6aa8895186358e9d069f5a99909132be49f3bf1 data/create/recipes/diorite_from_stone_
|
|||
a90268d38f976327ff5e1b87ff1d72ca2d1ebad6 data/create/recipes/dripstone_block_from_stone_types_dripstone_stonecutting.json
|
||||
27d9bf05a610447e90314e658dbbcd191f378fc9 data/create/recipes/dripstone_pillar_from_stone_types_dripstone_stonecutting.json
|
||||
d81ceba2946286d374801e698a4ca2116395cbad data/create/recipes/emptying/builders_tea.json
|
||||
318ab703224ff1d6f7200675e1e0a4c138b28456 data/create/recipes/emptying/compat/alexsmobs/lava_bottle.json
|
||||
d62f4682fe6cc61df5a1c0231a2004a4ee78a329 data/create/recipes/emptying/compat/alexsmobs/lava_bottle.json
|
||||
c26d003e921720308c05ad7b9f3cb57de94a10a8 data/create/recipes/emptying/compat/farmersdelight/milk_bottle.json
|
||||
60c0edfb5b759e4f13427b631861f503f8552923 data/create/recipes/emptying/compat/neapolitan/milk_bottle.json
|
||||
20b7c7c62fa2e33199e08188dd8836844a6d9cfd data/create/recipes/emptying/honey_bottle.json
|
||||
|
|
|
@ -8,6 +8,17 @@
|
|||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:copy_nbt",
|
||||
"source": "block_entity",
|
||||
"ops": [
|
||||
{
|
||||
"source": "FullNBT",
|
||||
"target": "{}",
|
||||
"op": "merge"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"function": "minecraft:copy_name",
|
||||
"source": "block_entity"
|
||||
|
|
|
@ -8,6 +8,17 @@
|
|||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:copy_nbt",
|
||||
"source": "block_entity",
|
||||
"ops": [
|
||||
{
|
||||
"source": "FullNBT",
|
||||
"target": "{}",
|
||||
"op": "merge"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"function": "minecraft:copy_name",
|
||||
"source": "block_entity"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
],
|
||||
"conditions": [
|
||||
{
|
||||
"modid": "atmospheric",
|
||||
"modid": "alexsmobs",
|
||||
"type": "forge:mod_loaded"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -83,7 +83,7 @@ public class BacktankBlock extends HorizontalKineticBlock
|
|||
@Override
|
||||
public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState,
|
||||
LevelAccessor world, BlockPos pos, BlockPos neighbourPos) {
|
||||
if (state.getValue(BlockStateProperties.WATERLOGGED))
|
||||
if (state.getValue(BlockStateProperties.WATERLOGGED))
|
||||
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world));
|
||||
return state;
|
||||
}
|
||||
|
@ -121,6 +121,7 @@ public class BacktankBlock extends HorizontalKineticBlock
|
|||
be.setEnchantmentTag(stack.getEnchantmentTags());
|
||||
if (stack.hasCustomHoverName())
|
||||
be.setCustomName(stack.getHoverName());
|
||||
be.setFullNbt(stack.getOrCreateTag());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -157,9 +158,10 @@ public class BacktankBlock extends HorizontalKineticBlock
|
|||
ItemStack stack = new ItemStack(item);
|
||||
Optional<BacktankBlockEntity> blockEntityOptional = getBlockEntityOptional(blockGetter, pos);
|
||||
|
||||
CompoundTag tag = blockEntityOptional.map(BacktankBlockEntity::getFullNbt).orElse(stack.getOrCreateTag());
|
||||
|
||||
int air = blockEntityOptional.map(BacktankBlockEntity::getAirLevel)
|
||||
.orElse(0);
|
||||
CompoundTag tag = stack.getOrCreateTag();
|
||||
tag.putInt("Air", air);
|
||||
|
||||
ListTag enchants = blockEntityOptional.map(BacktankBlockEntity::getEnchantmentTag)
|
||||
|
@ -174,6 +176,7 @@ public class BacktankBlock extends HorizontalKineticBlock
|
|||
.orElse(null);
|
||||
if (customName != null)
|
||||
stack.setHoverName(customName);
|
||||
stack.setTag(tag);
|
||||
return stack;
|
||||
}
|
||||
|
||||
|
@ -187,7 +190,7 @@ public class BacktankBlock extends HorizontalKineticBlock
|
|||
public Class<BacktankBlockEntity> getBlockEntityClass() {
|
||||
return BacktankBlockEntity.class;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends BacktankBlockEntity> getBlockEntityType() {
|
||||
return AllBlockEntityTypes.BACKTANK.get();
|
||||
|
|
|
@ -37,10 +37,13 @@ public class BacktankBlockEntity extends KineticBlockEntity implements Nameable
|
|||
private int capacityEnchantLevel;
|
||||
private ListTag enchantmentTag;
|
||||
|
||||
private CompoundTag fullNbt;
|
||||
|
||||
public BacktankBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
defaultName = getDefaultName(state);
|
||||
enchantmentTag = new ListTag();
|
||||
fullNbt = new CompoundTag();
|
||||
}
|
||||
|
||||
public static Component getDefaultName(BlockState state) {
|
||||
|
@ -118,6 +121,7 @@ public class BacktankBlockEntity extends KineticBlockEntity implements Nameable
|
|||
if (this.customName != null)
|
||||
compound.putString("CustomName", Component.Serializer.toJson(this.customName));
|
||||
compound.put("Enchantments", enchantmentTag);
|
||||
compound.put("FullNBT", fullNbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -128,6 +132,7 @@ public class BacktankBlockEntity extends KineticBlockEntity implements Nameable
|
|||
airLevel = compound.getInt("Air");
|
||||
airLevelTimer = compound.getInt("Timer");
|
||||
enchantmentTag = compound.getList("Enchantments", Tag.TAG_COMPOUND);
|
||||
this.fullNbt = compound.getCompound("FullNBT");
|
||||
if (compound.contains("CustomName", 8))
|
||||
this.customName = Component.Serializer.fromJson(compound.getString("CustomName"));
|
||||
if (prev != 0 && prev != airLevel && airLevel == BacktankUtil.maxAir(capacityEnchantLevel) && clientPacket)
|
||||
|
@ -182,4 +187,14 @@ public class BacktankBlockEntity extends KineticBlockEntity implements Nameable
|
|||
this.capacityEnchantLevel = capacityEnchantLevel;
|
||||
}
|
||||
|
||||
public CompoundTag getFullNbt()
|
||||
{
|
||||
return fullNbt;
|
||||
}
|
||||
|
||||
public void setFullNbt(CompoundTag fullNbt)
|
||||
{
|
||||
this.fullNbt = fullNbt;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -73,6 +73,8 @@ import net.minecraft.world.level.storage.loot.LootTable.Builder;
|
|||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.functions.CopyNameFunction;
|
||||
import net.minecraft.world.level.storage.loot.functions.CopyNbtFunction;
|
||||
import net.minecraft.world.level.storage.loot.functions.LootItemFunction;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetNbtFunction;
|
||||
import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition;
|
||||
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
|
||||
import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider;
|
||||
|
@ -435,6 +437,8 @@ public class BuilderTransformers {
|
|||
.when(survivesExplosion)
|
||||
.setRolls(ConstantValue.exactly(1))
|
||||
.add(LootItem.lootTableItem(drop.get())
|
||||
.apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY)
|
||||
.copy("FullNBT", "{}", CopyNbtFunction.MergeStrategy.MERGE))
|
||||
.apply(CopyNameFunction.copyName(CopyNameFunction.NameSource.BLOCK_ENTITY))
|
||||
.apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY)
|
||||
.copy("Air", "Air"))
|
||||
|
|
Loading…
Reference in a new issue