A less messy mess Part I

- Reworked Particle Registry to fix sidedness issues
- Removed some unused models, blocks and textures
- Added missing loot tables
- Fixed all models falsely inheriting from block/cube
- Updated Forge
- Restored server functionality
This commit is contained in:
simibubi 2020-01-20 13:41:41 +01:00
parent f48f5fe101
commit e902d269f4
86 changed files with 448 additions and 389 deletions

View file

@ -20,7 +20,7 @@ archivesBaseName = 'create'
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'
minecraft {
mappings channel: 'snapshot', version: '20191221-1.14.3'
mappings channel: 'snapshot', version: '20200119-1.14.3'
runs {
client {
@ -71,7 +71,7 @@ repositories {
}
dependencies {
minecraft 'net.minecraftforge:forge:1.14.4-28.1.107'
minecraft 'net.minecraftforge:forge:1.14.4-28.1.115'
// compile against the JEI API but do not include it at runtime
compileOnly fg.deobf("mezz.jei:jei-1.14.4:6.0.0.26:api")

View file

@ -10,7 +10,7 @@ import com.simibubi.create.foundation.block.RenderUtilityDirectionalBlock;
import com.simibubi.create.foundation.block.connected.CTSpriteShifter;
import com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.world.CopperOreBlock;
import com.simibubi.create.foundation.world.OxidizingBlock;
import com.simibubi.create.modules.IModule;
import com.simibubi.create.modules.contraptions.components.actors.DrillBlock;
import com.simibubi.create.modules.contraptions.components.actors.DrillBlock.DrillHeadBlock;
@ -94,6 +94,7 @@ import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ToolType;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.registries.IForgeRegistry;
@ -118,7 +119,6 @@ public enum AllBlocks {
GEARBOX(new GearboxBlock()),
BELT(new BeltBlock()),
BELT_PULLEY(new RenderUtilityAxisBlock()),
BELT_ANIMATION(new RenderUtilityBlock()),
MOTOR(new MotorBlock()),
WATER_WHEEL(new WaterWheelBlock()),
ENCASED_FAN(new EncasedFanBlock()),
@ -237,8 +237,8 @@ public enum AllBlocks {
VOLCANIC_ROCK(new VolcanicRockBlock()),
__MATERIALS__(),
COPPER_ORE(new CopperOreBlock()),
ZINC_ORE(new Block(Properties.from(Blocks.GOLD_ORE))),
COPPER_ORE(new OxidizingBlock(Properties.from(Blocks.IRON_ORE), 1)),
ZINC_ORE(new Block(Properties.from(Blocks.GOLD_ORE).harvestLevel(2).harvestTool(ToolType.PICKAXE))),
;

View file

@ -3,32 +3,33 @@ package com.simibubi.create;
import java.util.function.Supplier;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.modules.contraptions.particle.AirFlowParticle;
import com.simibubi.create.modules.contraptions.particle.RotationIndicatorParticle;
import com.simibubi.create.modules.contraptions.particle.AirFlowParticleData;
import com.simibubi.create.modules.contraptions.particle.ICustomParticle;
import com.simibubi.create.modules.contraptions.particle.RotationIndicatorParticleData;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.ParticleManager;
import net.minecraft.client.particle.ParticleManager.IParticleMetaFactory;
import net.minecraft.particles.IParticleData;
import net.minecraft.particles.ParticleType;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.event.ParticleFactoryRegisterEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.registries.IForgeRegistry;
public enum AllParticles {
ROTATION_INDICATOR(RotationIndicatorParticle.Type::new, RotationIndicatorParticle.Factory::new),
AIR_FLOW(AirFlowParticle.Type::new, AirFlowParticle.Factory::new),
ROTATION_INDICATOR(RotationIndicatorParticleData::new),
AIR_FLOW(AirFlowParticleData::new),
;
private ParticleEntry<?> entry;
private <D extends IParticleData> AllParticles(Supplier<? extends ParticleType<D>> typeFactory,
IParticleMetaFactory<D> particleFactory) {
private <D extends IParticleData> AllParticles(Supplier<? extends ICustomParticle<D>> typeFactory) {
String asId = Lang.asId(this.name().toLowerCase());
entry = new ParticleEntry<D>(new ResourceLocation(Create.ID, asId), typeFactory, particleFactory);
entry = new ParticleEntry<D>(new ResourceLocation(Create.ID, asId), typeFactory);
}
public static void register(RegistryEvent.Register<ParticleType<?>> event) {
@ -36,9 +37,10 @@ public enum AllParticles {
particle.entry.register(event.getRegistry());
}
@OnlyIn(Dist.CLIENT)
public static void registerFactories(ParticleFactoryRegisterEvent event) {
ParticleManager particles = Minecraft.getInstance().particles;
for (AllParticles particle : values())
for (AllParticles particle : values())
particle.entry.registerFactory(particles);
}
@ -51,16 +53,13 @@ public enum AllParticles {
}
private class ParticleEntry<D extends IParticleData> {
Supplier<? extends ParticleType<D>> typeFactory;
IParticleMetaFactory<D> particleFactory;
Supplier<? extends ICustomParticle<D>> typeFactory;
ParticleType<D> type;
ResourceLocation id;
public ParticleEntry(ResourceLocation id, Supplier<? extends ParticleType<D>> typeFactory,
IParticleMetaFactory<D> particleFactory) {
public ParticleEntry(ResourceLocation id, Supplier<? extends ICustomParticle<D>> typeFactory) {
this.id = id;
this.typeFactory = typeFactory;
this.particleFactory = particleFactory;
}
ParticleType<?> getType() {
@ -75,14 +74,15 @@ public enum AllParticles {
void makeType() {
if (type == null) {
type = typeFactory.get();
type = typeFactory.get().createType();
type.setRegistryName(id);
}
}
@OnlyIn(Dist.CLIENT)
void registerFactory(ParticleManager particles) {
makeType();
particles.registerFactory(type, particleFactory);
particles.registerFactory(type, typeFactory.get().getFactory());
}
}

View file

@ -105,6 +105,8 @@ public class CreateClient {
public static void onTextureStitch(TextureStitchEvent.Pre event) {
if (!event.getMap().getBasePath().equals("textures"))
return;
event.addSprite(new ResourceLocation(Create.ID, "block/belt_animated"));
for (AllBlocks allBlocks : AllBlocks.values()) {
Block block = allBlocks.get();
if (!(block instanceof IHaveConnectedTextures))
@ -112,7 +114,6 @@ public class CreateClient {
for (SpriteShiftEntry spriteShiftEntry : ((IHaveConnectedTextures) block).getBehaviour().getAllCTShifts())
event.addSprite(spriteShiftEntry.getTargetResourceLocation());
}
}
@OnlyIn(Dist.CLIENT)

View file

@ -12,7 +12,6 @@ import net.minecraft.client.particle.IParticleRenderType;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.particle.SimpleAnimatedParticle;
import net.minecraft.particles.BlockParticleData;
import net.minecraft.particles.ParticleType;
import net.minecraft.particles.ParticleTypes;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
@ -151,12 +150,6 @@ public class AirFlowParticle extends SimpleAnimatedParticle {
setSprite(field_217584_C.get(index, 8));
}
public static class Type extends ParticleType<AirFlowParticleData> {
public Type() {
super(false, AirFlowParticleData.DESERIALIZER);
}
}
public static class Factory implements IParticleFactory<AirFlowParticleData> {
private final IAnimatedSprite spriteSet;

View file

@ -6,12 +6,15 @@ import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.simibubi.create.AllParticles;
import net.minecraft.client.particle.ParticleManager.IParticleMetaFactory;
import net.minecraft.network.PacketBuffer;
import net.minecraft.particles.IParticleData;
import net.minecraft.particles.ParticleType;
import net.minecraft.util.math.Vec3i;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class AirFlowParticleData implements IParticleData {
public class AirFlowParticleData implements IParticleData, ICustomParticle<AirFlowParticleData> {
public static final IParticleData.IDeserializer<AirFlowParticleData> DESERIALIZER = new IParticleData.IDeserializer<AirFlowParticleData>() {
public AirFlowParticleData deserialize(ParticleType<AirFlowParticleData> particleTypeIn, StringReader reader)
@ -43,6 +46,10 @@ public class AirFlowParticleData implements IParticleData {
this.posY = posY;
this.posZ = posZ;
}
public AirFlowParticleData() {
this(0, 0, 0);
}
@Override
public ParticleType<?> getType() {
@ -61,4 +68,15 @@ public class AirFlowParticleData implements IParticleData {
return String.format(Locale.ROOT, "%s %d %d %d", AllParticles.ROTATION_INDICATOR.parameter(), posX, posY, posZ);
}
@Override
public IDeserializer<AirFlowParticleData> getDeserializer() {
return DESERIALIZER;
}
@Override
@OnlyIn(Dist.CLIENT)
public IParticleMetaFactory<AirFlowParticleData> getFactory() {
return AirFlowParticle.Factory::new;
}
}

View file

@ -0,0 +1,21 @@
package com.simibubi.create.modules.contraptions.particle;
import net.minecraft.client.particle.ParticleManager.IParticleMetaFactory;
import net.minecraft.particles.IParticleData;
import net.minecraft.particles.IParticleData.IDeserializer;
import net.minecraft.particles.ParticleType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public interface ICustomParticle<T extends IParticleData> {
public IDeserializer<T> getDeserializer();
public default ParticleType<T> createType() {
return new ParticleType<T>(false, getDeserializer());
}
@OnlyIn(Dist.CLIENT)
public IParticleMetaFactory<T> getFactory();
}

View file

@ -13,7 +13,6 @@ import net.minecraft.client.particle.Particle;
import net.minecraft.client.particle.SimpleAnimatedParticle;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.particles.ParticleType;
import net.minecraft.util.Direction.Axis;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
@ -77,12 +76,6 @@ public class RotationIndicatorParticle extends SimpleAnimatedParticle {
posZ = position.z;
}
public static class Type extends ParticleType<RotationIndicatorParticleData> {
public Type() {
super(false, RotationIndicatorParticleData.DESERIALIZER);
}
}
public static class Factory implements IParticleFactory<RotationIndicatorParticleData> {
private final IAnimatedSprite spriteSet;

View file

@ -6,12 +6,15 @@ import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.simibubi.create.AllParticles;
import net.minecraft.client.particle.ParticleManager.IParticleMetaFactory;
import net.minecraft.network.PacketBuffer;
import net.minecraft.particles.IParticleData;
import net.minecraft.particles.ParticleType;
import net.minecraft.util.Direction.Axis;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class RotationIndicatorParticleData implements IParticleData {
public class RotationIndicatorParticleData implements IParticleData, ICustomParticle<RotationIndicatorParticleData> {
public static final IParticleData.IDeserializer<RotationIndicatorParticleData> DESERIALIZER = new IParticleData.IDeserializer<RotationIndicatorParticleData>() {
public RotationIndicatorParticleData deserialize(ParticleType<RotationIndicatorParticleData> particleTypeIn,
@ -55,6 +58,10 @@ public class RotationIndicatorParticleData implements IParticleData {
this.axis = axis;
}
public RotationIndicatorParticleData() {
this(0, 0, 0, 0, 0, '0');
}
@Override
public ParticleType<?> getType() {
return AllParticles.ROTATION_INDICATOR.get();
@ -71,6 +78,7 @@ public class RotationIndicatorParticleData implements IParticleData {
buffer.writeFloat(radius1);
buffer.writeFloat(radius2);
buffer.writeInt(lifeSpan);
buffer.writeChar(axis);
}
@Override
@ -79,4 +87,15 @@ public class RotationIndicatorParticleData implements IParticleData {
color, speed, radius1, radius2, lifeSpan, axis);
}
@Override
public IDeserializer<RotationIndicatorParticleData> getDeserializer() {
return DESERIALIZER;
}
@Override
@OnlyIn(Dist.CLIENT)
public IParticleMetaFactory<RotationIndicatorParticleData> getFactory() {
return RotationIndicatorParticle.Factory::new;
}
}

View file

@ -14,6 +14,7 @@ import net.minecraft.state.BooleanProperty;
import net.minecraft.state.StateContainer.Builder;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Direction.Axis;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
@ -112,6 +113,11 @@ public class ExtractorBlock extends BeltAttachableLogisticalBlock {
protected boolean isVertical() {
return true;
}
@Override
public ResourceLocation getLootTable() {
return AllBlocks.EXTRACTOR.get().getLootTable();
}
}
}

View file

@ -10,6 +10,7 @@ import com.simibubi.create.modules.logistics.block.belts.AttachedLogisticalBlock
import net.minecraft.block.BlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Direction.Axis;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.IBlockReader;
@ -75,6 +76,11 @@ public class LinkedExtractorBlock extends ExtractorBlock {
protected boolean isVertical() {
return true;
}
@Override
public ResourceLocation getLootTable() {
return AllBlocks.LINKED_EXTRACTOR.get().getLootTable();
}
}
}

View file

@ -5,6 +5,7 @@ import com.simibubi.create.AllBlocks;
import net.minecraft.block.BlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.IBlockReader;
public class LinkedTransposerBlock extends TransposerBlock {
@ -34,6 +35,11 @@ public class LinkedTransposerBlock extends TransposerBlock {
protected boolean isVertical() {
return true;
}
@Override
public ResourceLocation getLootTable() {
return AllBlocks.LINKED_TRANSPOSER.get().getLootTable();
}
}
}

View file

@ -12,6 +12,7 @@ import net.minecraft.state.StateContainer.Builder;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
@ -101,6 +102,11 @@ public class TransposerBlock extends BeltAttachableLogisticalBlock {
protected boolean isVertical() {
return true;
}
@Override
public ResourceLocation getLootTable() {
return AllBlocks.TRANSPOSER.get().getLootTable();
}
}
}

View file

@ -1,9 +0,0 @@
{
"forgemarker": 1,
"defaults": {
"model": "create:block/belt/belt_textures"
},
"variants": {
"": { "model": "create:block/belt/belt_textures" }
}
}

View file

@ -1,12 +0,0 @@
{
"forgemarker": 1,
"defaults": {
"model": "create:block/shop_shelf"
},
"variants": {
"facing=north": { "model": "create:block/shop_shelf", "y": 180 },
"facing=south": { "model": "create:block/shop_shelf" },
"facing=east": { "model": "create:block/shop_shelf", "y": 270 },
"facing=west": { "model": "create:block/shop_shelf", "y": 90 }
}
}

View file

@ -1,41 +1,22 @@
{
"forge_marker": 1,
"defaults": {
"model": "block/cube_bottom_top",
"textures": {
"side": "create:block/translation_chassis_side"
},
"transform": "forge:default-block"
},
"variants": {
"axis": {
"x": { "x": 90, "y": 90 },
"y": { },
"z": { "x": 90, "y": 180 }
},
"sticky_top": {
"false": {
"textures": {
"top": "create:block/translation_chassis_top"
}
},
"true": {
"textures": {
"top": "create:block/translation_chassis_top_sticky"
}
}
},
"sticky_bottom": {
"false": {
"textures": {
"bottom": "create:block/translation_chassis_top"
}
},
"true": {
"textures": {
"bottom": "create:block/translation_chassis_top_sticky"
}
}
}
}
"forge_marker": 1,
"variants": {
"sticky_top=false,sticky_bottom=false,axis=x": { "model": "create:block/translation_chassis/regular", "x": 90, "y": 90 },
"sticky_top=false,sticky_bottom=false,axis=y": { "model": "create:block/translation_chassis/regular" },
"sticky_top=false,sticky_bottom=false,axis=z": { "model": "create:block/translation_chassis/regular", "x": 90, "y": 180 },
"sticky_top=false,sticky_bottom=true,axis=x": { "model": "create:block/translation_chassis/regular_bottom_sticky", "x": 90, "y": 90 },
"sticky_top=false,sticky_bottom=true,axis=y": { "model": "create:block/translation_chassis/regular_bottom_sticky" },
"sticky_top=false,sticky_bottom=true,axis=z": { "model": "create:block/translation_chassis/regular_bottom_sticky", "x": 90, "y": 180 },
"sticky_top=true,sticky_bottom=false,axis=x": { "model": "create:block/translation_chassis/regular_top_sticky", "x": 90, "y": 90 },
"sticky_top=true,sticky_bottom=false,axis=y": { "model": "create:block/translation_chassis/regular_top_sticky" },
"sticky_top=true,sticky_bottom=false,axis=z": { "model": "create:block/translation_chassis/regular_top_sticky", "x": 90, "y": 180 },
"sticky_top=true,sticky_bottom=true,axis=x": { "model": "create:block/translation_chassis/regular_both_sticky", "x": 90, "y": 90 },
"sticky_top=true,sticky_bottom=true,axis=y": { "model": "create:block/translation_chassis/regular_both_sticky" },
"sticky_top=true,sticky_bottom=true,axis=z": { "model": "create:block/translation_chassis/regular_both_sticky", "x": 90, "y": 180 }
}
}

View file

@ -1,41 +1,22 @@
{
"forge_marker": 1,
"defaults": {
"model": "block/cube_bottom_top",
"textures": {
"side": "create:block/translation_chassis_side_alt"
},
"transform": "forge:default-block"
},
"variants": {
"axis": {
"x": { "x": 90, "y": 90 },
"y": { },
"z": { "x": 90, "y": 180 }
},
"sticky_top": {
"false": {
"textures": {
"top": "create:block/translation_chassis_top"
}
},
"true": {
"textures": {
"top": "create:block/translation_chassis_top_sticky"
}
}
},
"sticky_bottom": {
"false": {
"textures": {
"bottom": "create:block/translation_chassis_top"
}
},
"true": {
"textures": {
"bottom": "create:block/translation_chassis_top_sticky"
}
}
}
}
"forge_marker": 1,
"variants": {
"sticky_top=false,sticky_bottom=false,axis=x": { "model": "create:block/translation_chassis/alt", "x": 90, "y": 90 },
"sticky_top=false,sticky_bottom=false,axis=y": { "model": "create:block/translation_chassis/alt" },
"sticky_top=false,sticky_bottom=false,axis=z": { "model": "create:block/translation_chassis/alt", "x": 90, "y": 180 },
"sticky_top=false,sticky_bottom=true,axis=x": { "model": "create:block/translation_chassis/alt_bottom_sticky", "x": 90, "y": 90 },
"sticky_top=false,sticky_bottom=true,axis=y": { "model": "create:block/translation_chassis/alt_bottom_sticky" },
"sticky_top=false,sticky_bottom=true,axis=z": { "model": "create:block/translation_chassis/alt_bottom_sticky", "x": 90, "y": 180 },
"sticky_top=true,sticky_bottom=false,axis=x": { "model": "create:block/translation_chassis/alt_top_sticky", "x": 90, "y": 90 },
"sticky_top=true,sticky_bottom=false,axis=y": { "model": "create:block/translation_chassis/alt_top_sticky" },
"sticky_top=true,sticky_bottom=false,axis=z": { "model": "create:block/translation_chassis/alt_top_sticky", "x": 90, "y": 180 },
"sticky_top=true,sticky_bottom=true,axis=x": { "model": "create:block/translation_chassis/alt_both_sticky", "x": 90, "y": 90 },
"sticky_top=true,sticky_bottom=true,axis=y": { "model": "create:block/translation_chassis/alt_both_sticky" },
"sticky_top=true,sticky_bottom=true,axis=z": { "model": "create:block/translation_chassis/alt_both_sticky", "x": 90, "y": 180 }
}
}

View file

@ -1,22 +0,0 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"textures": {
"0": "create:block/belt"
},
"elements": [
{
"name": "Belt",
"from": [ 1.0, 0.0, 0.0 ],
"to": [ 15.0, 2.0, 16.0 ],
"faces": {
"north": { "texture": "#0", "uv": [ 1.0, 0.0, 15.0, 2.0 ], "rotation": 180 },
"east": { "texture": "#0", "uv": [ 14.0, 0.0, 16.0, 16.0 ], "rotation": 90 },
"south": { "texture": "#0", "uv": [ 1.0, 14.0, 15.0, 16.0 ]},
"west": { "texture": "#0", "uv": [ 0.0, 0.0, 2.0, 16.0 ], "rotation": 270 },
"up": { "texture": "#0", "uv": [ 1.0, 0.0, 15.0, 16.0 ] },
"down": { "texture": "#0", "uv": [ 1.0, 0.0, 15.0, 16.0 ], "rotation": 180 }
}
}
]
}

View file

@ -1,16 +0,0 @@
{
"parent": "block/cube",
"textures": {
"0": "create:block/belt_animated"
},
"elements": [
{
"name": "Cheese",
"from": [ 0.0, 0.0, 0.0 ],
"to": [ 1.0, 1.0, 1.0 ],
"faces": {
"north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }
}
}
]
}

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/belt",
"0": "create:block/belt"

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "block/dark_oak_log",
"0": "create:block/axis",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "block/stripped_spruce_log",
"0": "create:block/axis",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "block/stripped_spruce_log",
"1": "block/stripped_spruce_log",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/contact_side",
"0": "create:block/brass_casing",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/creative_crate_side",
"1": "create:block/creative_crate_top",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/encased_belt",
"2": "create:block/encased_belt_end",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"1": "create:block/encased_belt",
"2": "create:block/encased_belt_end",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/encased_belt",
"1": "create:block/encased_belt_middle",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/encased_belt",
"1": "create:block/encased_belt_middle",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/encased_belt",
"1": "create:block/gearbox",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/gearbox_top",
"1": "create:block/gearbox",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/axis",
"1": "create:block/axis_top",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/axis",
"1": "create:block/axis_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/gearbox_top",
"1": "create:block/gearbox",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/gearshift_off",
"1": "create:block/gearbox",

View file

@ -1,5 +1,5 @@
{
"parent": "block/cube",
"parent": "block/block",
"display": {
"gui": {
"rotation": [ 30, 225, 0 ],

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/gearbox_top",
"0": "create:block/gearbox_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/gearbox_top",
"0": "create:block/gearbox_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/gearbox_top",
"0": "create:block/gearbox_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/gearbox_top",
"0": "create:block/gearbox_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/gearbox_top",
"0": "create:block/gearbox_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "block/piston_top",
"0": "block/piston_side",

View file

@ -1,70 +0,0 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"textures": {
"0": "blocks/gearbox_top",
"1": "blocks/piston_bottom",
"2": "blocks/gearbox",
"3": "blocks/piston_side",
"4": "blocks/piston_top",
"5": "blocks/piston_inner"
},
"elements": [
{
"name": "Bottom",
"from": [ 0.0, 0.0, 0.0 ],
"to": [ 16.0, 2.0, 16.0 ],
"faces": {
"north": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
"east": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
"south": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
"west": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
"up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
"down": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }
}
},
{
"name": "Inner",
"from": [ 1.0, 2.0, 2.0 ],
"to": [ 15.0, 12.0, 14.0 ],
"faces": {
"east": { "texture": "#2", "uv": [ 2.0, 4.0, 14.0, 14.0 ] },
"west": { "texture": "#2", "uv": [ 2.0, 4.0, 14.0, 14.0 ] }
}
},
{
"name": "Side",
"from": [ 0.0, 2.0, 0.0 ],
"to": [ 16.0, 12.0, 2.0 ],
"faces": {
"north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 9.0 ] },
"east": { "texture": "#0", "uv": [ 14.0, 0.0, 16.0, 10.0 ] },
"south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 10.0 ] },
"west": { "texture": "#0", "uv": [ 0.0, 0.0, 2.0, 10.0 ] }
}
},
{
"name": "Side2",
"from": [ 0.0, 2.0, 14.0 ],
"to": [ 16.0, 12.0, 16.0 ],
"faces": {
"north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 10.0 ] },
"east": { "texture": "#0", "uv": [ 0.0, 0.0, 2.0, 10.0 ] },
"south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 10.0 ] },
"west": { "texture": "#0", "uv": [ 14.0, 0.0, 16.0, 10.0 ] }
}
},
{
"name": "Top",
"from": [ 0.0, 12.0, 0.0 ],
"to": [ 16.0, 16.0, 16.0 ],
"faces": {
"north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 4.0 ] },
"east": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 4.0 ] },
"south": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 4.0 ] },
"west": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 4.0 ] },
"up": { "texture": "#4", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
"down": { "texture": "#5", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }
}
}
]
}

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "block/piston_top",
"0": "block/piston_side",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"2": "block/spruce_log_top",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"6": "create:block/mixer_head",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"6": "create:block/mixer_head",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "block/iron_block",
"0": "block/chiseled_stone_bricks",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "create:block/schematic_table_side",
"1": "create:block/schematic_table_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/axis",
"0": "create:block/axis",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "create:block/axis",
"0": "create:block/axis",

View file

@ -1,91 +0,0 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"textures": {
"particle": "block/stripped_spruce_log",
"0": "block/stripped_spruce_log_top",
"1": "block/stripped_spruce_log",
"2": "block/dark_oak_planks",
"3": "block/spruce_planks",
"4": "block/andesite"
},
"elements": [
{
"name": "Body",
"from": [ 0.0, 0.0, 0.0 ],
"to": [ 16.0, 14.0, 14.0 ],
"faces": {
"north": { "texture": "#0", "uv": [ 0.0, 1.0, 16.0, 15.0 ] },
"east": { "texture": "#1", "uv": [ 1.0, 1.0, 15.0, 15.0 ] },
"south": { "texture": "#0", "uv": [ 0.0, 1.0, 16.0, 15.0 ] },
"west": { "texture": "#1", "uv": [ 1.0, 1.0, 15.0, 15.0 ] },
"down": { "texture": "#0", "uv": [ 0.0, 1.0, 16.0, 15.0 ] }
}
},
{
"name": "Top",
"from": [ 0.0, 14.0, 0.0 ],
"to": [ 16.0, 16.0, 15.0 ],
"faces": {
"north": { "texture": "#2", "uv": [ 0.0, 6.0, 16.0, 8.0 ] },
"east": { "texture": "#2", "uv": [ 1.0, 6.0, 16.0, 8.0 ] },
"south": { "texture": "#2", "uv": [ 0.0, 6.0, 16.0, 8.0 ] },
"west": { "texture": "#2", "uv": [ 1.0, 6.0, 16.0, 8.0 ] },
"up": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 15.0 ] },
"down": { "texture": "#2", "uv": [ 0.0, 1.0, 16.0, 16.0 ], "rotation": 180 }
}
},
{
"name": "Drawer Body",
"from": [ 1.0, 8.0, 8.0 ],
"to": [ 15.0, 13.0, 15.0 ],
"faces": {
"north": { "texture": "#3", "uv": [ 1.0, 3.0, 15.0, 8.0 ] },
"east": { "texture": "#3", "uv": [ 7.0, 3.0, 14.0, 8.0 ] },
"south": { "texture": "#3", "uv": [ 1.0, 7.0, 15.0, 12.0 ] },
"west": { "texture": "#3", "uv": [ 1.0, 3.0, 8.0, 8.0 ] },
"up": { "texture": "#3", "uv": [ 1.0, 5.0, 15.0, 12.0 ] },
"down": { "texture": "#3", "uv": [ 1.0, 3.0, 15.0, 10.0 ] }
}
},
{
"name": "Drawer Knob",
"from": [ 6.0, 11.0, 14.5 ],
"to": [ 10.0, 12.0, 15.5 ],
"faces": {
"north": { "texture": "#4", "uv": [ 6.0, 6.0, 10.0, 7.0 ] },
"east": { "texture": "#4", "uv": [ 0.0, 0.0, 1.0, 1.0 ] },
"south": { "texture": "#4", "uv": [ 6.0, 7.0, 10.0, 8.0 ] },
"west": { "texture": "#4", "uv": [ 0.0, 0.0, 1.0, 1.0 ] },
"up": { "texture": "#4", "uv": [ 4.0, 3.0, 8.0, 4.0 ] },
"down": { "texture": "#4", "uv": [ 6.0, 2.0, 10.0, 3.0 ] }
}
},
{
"name": "Another Drawer Body",
"from": [ 1.0, 2.0, 8.0 ],
"to": [ 15.0, 7.0, 15.0 ],
"faces": {
"north": { "texture": "#3", "uv": [ 1.0, 0.0, 15.0, 5.0 ] },
"east": { "texture": "#3", "uv": [ 7.0, 3.0, 14.0, 8.0 ] },
"south": { "texture": "#3", "uv": [ 1.0, 7.0, 15.0, 12.0 ] },
"west": { "texture": "#3", "uv": [ 1.0, 3.0, 8.0, 8.0 ] },
"up": { "texture": "#3", "uv": [ 1.0, 1.0, 15.0, 8.0 ] },
"down": { "texture": "#3", "uv": [ 1.0, 3.0, 15.0, 10.0 ] }
}
},
{
"name": "Another Drawer Knob",
"from": [ 6.0, 5.0, 14.5 ],
"to": [ 10.0, 6.0, 15.5 ],
"faces": {
"north": { "texture": "#4", "uv": [ 6.0, 6.0, 10.0, 7.0 ] },
"east": { "texture": "#4", "uv": [ 0.0, 0.0, 1.0, 1.0 ] },
"south": { "texture": "#4", "uv": [ 6.0, 7.0, 10.0, 8.0 ] },
"west": { "texture": "#4", "uv": [ 0.0, 0.0, 1.0, 1.0 ] },
"up": { "texture": "#4", "uv": [ 4.0, 3.0, 8.0, 4.0 ] },
"down": { "texture": "#4", "uv": [ 6.0, 2.0, 10.0, 3.0 ] }
}
}
]
}

View file

@ -0,0 +1,8 @@
{
"parent": "block/cube_bottom_top",
"textures": {
"bottom": "create:block/translation_chassis_top",
"top": "create:block/translation_chassis_top",
"side": "create:block/translation_chassis_side_alt"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "block/cube_bottom_top",
"textures": {
"bottom": "create:block/translation_chassis_top_sticky",
"top": "create:block/translation_chassis_top_sticky",
"side": "create:block/translation_chassis_side_alt"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "block/cube_bottom_top",
"textures": {
"bottom": "create:block/translation_chassis_top_sticky",
"top": "create:block/translation_chassis_top",
"side": "create:block/translation_chassis_side_alt"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "block/cube_bottom_top",
"textures": {
"top": "create:block/translation_chassis_top_sticky",
"bottom": "create:block/translation_chassis_top",
"side": "create:block/translation_chassis_side_alt"
}
}

View file

@ -1,5 +1,5 @@
{
"parent": "create:block/translation_chassis",
"parent": "block/cube_bottom_top",
"textures": {
"bottom": "create:block/translation_chassis_top_sticky",
"top": "create:block/translation_chassis_top_sticky",

View file

@ -1,5 +1,5 @@
{
"parent": "create:block/translation_chassis",
"parent": "block/cube_bottom_top",
"textures": {
"bottom": "create:block/translation_chassis_top_sticky",
"top": "create:block/translation_chassis_top",

View file

@ -1,5 +1,5 @@
{
"parent": "create:block/translation_chassis",
"parent": "block/cube_bottom_top",
"textures": {
"top": "create:block/translation_chassis_top_sticky",
"bottom": "create:block/translation_chassis_top",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"particle": "block/stripped_spruce_log",
"0": "create:block/axis",

View file

@ -1,6 +1,6 @@
{
"credit": "Made with Blockbench",
"parent": "block/cube",
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"1": "block/stripped_spruce_log",

View file

@ -1,6 +1,6 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"parent": "block/cube",
"parent": "block/block",
"textures": {
"0": "block/stonecutter_side",
"1": "block/stonecutter_bottom",

View file

@ -1,3 +1,3 @@
{
"parent": "create:block/translation_chassis"
"parent": "create:block/translation_chassis/regular"
}

View file

@ -1,6 +1,3 @@
{
"parent": "create:block/translation_chassis",
"textures": {
"side": "create:block/translation_chassis_side_alt"
}
"parent": "create:block/translation_chassis/alt"
}

View file

@ -6,7 +6,7 @@
"entries": [
{
"type": "minecraft:item",
"name": "create:linked_extractor"
"name": "create:belt_tunnel"
}
],
"conditions": [

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:cart_assembler"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:copper_ore"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,29 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:framed_glass"
}
],
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:linked_transposer"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:logistical_casing"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:mechanical_crafter"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -6,7 +6,7 @@
"entries": [
{
"type": "minecraft:item",
"name": "create:extractor"
"name": "create:saw"
}
],
"conditions": [

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:speed_gauge"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:stress_gauge"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:translation_chassis_secondary"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:transposer"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:zinc_ore"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}