Screw those tools

- Added special tools
- Remove special tools (until forge has proper harvest events)
- Added loot tables for all blocks
This commit is contained in:
simibubi 2019-09-09 18:18:32 +02:00
parent b7decf0d0f
commit 49f8613678
104 changed files with 2079 additions and 34 deletions

View file

@ -130,7 +130,7 @@ public enum AllBlocks {
DIORITE_BRICKS(new Block(Properties.from(Blocks.DIORITE))), DIORITE_BRICKS(new Block(Properties.from(Blocks.DIORITE))),
GRANITE_BRICKS(new Block(Properties.from(Blocks.GRANITE))), GRANITE_BRICKS(new Block(Properties.from(Blocks.GRANITE))),
GABBRO(new Block(Properties.from(Blocks.ANDESITE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), GABBRO(new Block(Properties.from(Blocks.GRANITE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
POLISHED_GABBRO(new Block(Properties.from(GABBRO.block))), POLISHED_GABBRO(new Block(Properties.from(GABBRO.block))),
GABBRO_BRICKS(new Block(Properties.from(GABBRO.block)), ComesWith.STAIRS, ComesWith.WALL), GABBRO_BRICKS(new Block(Properties.from(GABBRO.block)), ComesWith.STAIRS, ComesWith.WALL),
PAVED_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block)), ComesWith.SLAB), PAVED_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block)), ComesWith.SLAB),
@ -138,12 +138,12 @@ public enum AllBlocks {
SLIGHTLY_MOSSY_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block))), SLIGHTLY_MOSSY_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block))),
MOSSY_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block))), MOSSY_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block))),
LIMESTONE(new Block(Properties.from(Blocks.GRANITE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), LIMESTONE(new Block(Properties.from(Blocks.SANDSTONE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
LIMESTONE_BRICKS(new Block(Properties.from(LIMESTONE.block)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), LIMESTONE_BRICKS(new Block(Properties.from(LIMESTONE.block)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
POLISHED_LIMESTONE(new Block(Properties.from(LIMESTONE.block)), ComesWith.SLAB), POLISHED_LIMESTONE(new Block(Properties.from(LIMESTONE.block)), ComesWith.SLAB),
LIMESTONE_PILLAR(new RotatedPillarBlock(Properties.from(LIMESTONE.block))), LIMESTONE_PILLAR(new RotatedPillarBlock(Properties.from(LIMESTONE.block))),
WEATHERED_LIMESTONE(new Block(Properties.from(Blocks.SANDSTONE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), WEATHERED_LIMESTONE(new Block(Properties.from(Blocks.ANDESITE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
POLISHED_WEATHERED_LIMESTONE(new Block(Properties.from(WEATHERED_LIMESTONE.block)), ComesWith.SLAB), POLISHED_WEATHERED_LIMESTONE(new Block(Properties.from(WEATHERED_LIMESTONE.block)), ComesWith.SLAB),
WEATHERED_LIMESTONE_BRICKS(new Block(Properties.from(WEATHERED_LIMESTONE.block)), ComesWith.STAIRS, ComesWith.SLAB, WEATHERED_LIMESTONE_BRICKS(new Block(Properties.from(WEATHERED_LIMESTONE.block)), ComesWith.STAIRS, ComesWith.SLAB,
ComesWith.WALL), ComesWith.WALL),

View file

@ -46,21 +46,21 @@ public enum AllItems {
ROSE_QUARTZ(new Item(standardProperties())), ROSE_QUARTZ(new Item(standardProperties())),
REFINED_ROSE_QUARTZ(new Item(standardProperties())), REFINED_ROSE_QUARTZ(new Item(standardProperties())),
CHROMATIC_COMPOUND_CUBE(new ChromaticCompoundCubeItem(standardProperties().rarity(Rarity.UNCOMMON))), CHROMATIC_COMPOUND_CUBE(new ChromaticCompoundCubeItem(standardProperties().rarity(Rarity.UNCOMMON))),
REFINED_RADIANCE_CUBE(new Item(standardProperties())), REFINED_RADIANCE_CUBE(new Item(standardProperties().rarity(Rarity.RARE))),
BLAZING_PICKAXE(new Item(standardProperties())), // BLAZING_PICKAXE(new BlazingToolItem(1, -2.8F, standardProperties(), PICKAXE)),
BLAZING_SHOVEL(new Item(standardProperties())), // BLAZING_SHOVEL(new BlazingToolItem(1.5F, -3.0F, standardProperties(), SHOVEL)),
BLAZING_AXE(new Item(standardProperties())), // BLAZING_AXE(new BlazingToolItem(5.0F, -3.0F, standardProperties(), AXE)),
BLAZING_SWORD(new Item(standardProperties())), // BLAZING_SWORD(new BlazingToolItem(3, -2.4F, standardProperties(), SWORD)),
//
SHADOW_STEEL_PICKAXE(new Item(standardProperties())), // ROSE_QUARTZ_PICKAXE(new RoseQuartzToolItem(1, -2.8F, standardProperties(), PICKAXE)),
SHADOW_STEEL_MATTOCK(new Item(standardProperties())), // ROSE_QUARTZ_SHOVEL(new RoseQuartzToolItem(1.5F, -3.0F, standardProperties(), SHOVEL)),
SHADOW_STEEL_SWORD(new Item(standardProperties())), // ROSE_QUARTZ_AXE(new RoseQuartzToolItem(5.0F, -3.0F, standardProperties(), AXE)),
// ROSE_QUARTZ_SWORD(new RoseQuartzToolItem(3, -2.4F, standardProperties(), SWORD)),
ROSE_QUARTZ_PICKAXE(new Item(standardProperties())), //
ROSE_QUARTZ_SHOVEL(new Item(standardProperties())), // SHADOW_STEEL_PICKAXE(new ShadowSteelToolItem(2.5F, -2.0F, standardProperties(), PICKAXE)),
ROSE_QUARTZ_AXE(new Item(standardProperties())), // SHADOW_STEEL_MATTOCK(new ShadowSteelToolItem(2.5F, -1.5F, standardProperties(), SHOVEL, AXE, HOE)),
ROSE_QUARTZ_SWORD(new Item(standardProperties())), // SHADOW_STEEL_SWORD(new ShadowSteelToolItem(3, -2.0F, standardProperties(), SWORD)),
TREE_FERTILIZER(new TreeFertilizerItem(standardProperties())), TREE_FERTILIZER(new TreeFertilizerItem(standardProperties())),

View file

@ -0,0 +1,116 @@
package com.simibubi.create.foundation.item;
import static com.simibubi.create.foundation.item.AllToolTypes.AXE;
import static com.simibubi.create.foundation.item.AllToolTypes.HOE;
import static com.simibubi.create.foundation.item.AllToolTypes.PICKAXE;
import static com.simibubi.create.foundation.item.AllToolTypes.SHOVEL;
import static com.simibubi.create.foundation.item.AllToolTypes.SWORD;
import java.util.Collections;
import java.util.List;
import com.simibubi.create.foundation.utility.ITooltip;
import com.simibubi.create.foundation.utility.TooltipHolder;
import net.minecraft.block.BlockState;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.IItemTier;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUseContext;
import net.minecraft.item.Items;
import net.minecraft.item.ToolItem;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.world.IWorld;
import net.minecraft.world.World;
import net.minecraftforge.common.ToolType;
import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
@EventBusSubscriber
public abstract class AbstractToolItem extends ToolItem implements ITooltip {
protected TooltipHolder info;
protected AllToolTypes[] toolTypes;
public AbstractToolItem(float attackDamageIn, float attackSpeedIn, IItemTier tier, Properties builder,
AllToolTypes... types) {
super(attackDamageIn, attackSpeedIn, tier, Collections.emptySet(), setToolTypes(builder, tier, types));
info = new TooltipHolder(this);
toolTypes = types;
}
private static Properties setToolTypes(Properties builder, IItemTier tier, AllToolTypes... types) {
for (AllToolTypes type : types) {
if (type == PICKAXE)
builder.addToolType(ToolType.PICKAXE, tier.getHarvestLevel());
if (type == SHOVEL)
builder.addToolType(ToolType.SHOVEL, tier.getHarvestLevel());
if (type == AXE)
builder.addToolType(ToolType.AXE, tier.getHarvestLevel());
}
return builder;
}
protected boolean hasType(AllToolTypes typeIn) {
for (AllToolTypes type : toolTypes)
if (type == typeIn)
return true;
return false;
}
@Override
public void addInformation(ItemStack stack, World worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
info.addInformation(tooltip);
super.addInformation(stack, worldIn, tooltip, flagIn);
}
@Override
public ActionResultType onItemUse(ItemUseContext context) {
if (hasType(HOE) && !context.isPlacerSneaking())
return Items.WOODEN_HOE.onItemUse(context);
if (hasType(SHOVEL))
return Items.WOODEN_SHOVEL.onItemUse(context);
return super.onItemUse(context);
}
@Override
public boolean canHarvestBlock(ItemStack stack, BlockState state) {
return super.canHarvestBlock(stack, state)
|| hasType(SWORD) && Items.WOODEN_SWORD.canHarvestBlock(stack, state);
}
@Override
public boolean canPlayerBreakBlockWhileHolding(BlockState state, World worldIn, BlockPos pos, PlayerEntity player) {
return hasType(SWORD) && !player.isCreative();
}
@Override
public float getDestroySpeed(ItemStack stack, BlockState state) {
if (hasType(SWORD))
return Items.WOODEN_SWORD.getDestroySpeed(stack, state);
return super.getDestroySpeed(stack, state);
}
@SubscribeEvent
public static void onHarvestDrops(HarvestDropsEvent event) {
PlayerEntity harvester = event.getHarvester();
if (harvester == null)
return;
ItemStack tool = harvester.getHeldItemMainhand();
if (tool.isEmpty() || !(tool.getItem() instanceof AbstractToolItem))
return;
if (event.getDrops() != null)
((AbstractToolItem) tool.getItem()).modifyDrops(event.getDrops(), event.getWorld(), event.getPos(), tool,
event.getState());
}
public void modifyDrops(final List<ItemStack> drops, IWorld world, BlockPos pos, ItemStack tool, BlockState state) {
}
}

View file

@ -0,0 +1,7 @@
package com.simibubi.create.foundation.item;
public enum AllToolTypes {
SWORD, SHOVEL, PICKAXE, AXE, HOE, SHEARS
}

View file

@ -0,0 +1,23 @@
package com.simibubi.create.foundation.utility;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.item.ItemStack;
public class ItemHelper {
public static List<ItemStack> multipliedOutput(ItemStack in, ItemStack out) {
List<ItemStack> stacks = new ArrayList<>();
ItemStack result = out.copy();
result.setCount(in.getCount() * out.getCount());
while (result.getCount() > result.getMaxStackSize()) {
stacks.add(result.split(result.getMaxStackSize()));
}
stacks.add(result);
return stacks;
}
}

View file

@ -6,7 +6,7 @@ import com.simibubi.create.foundation.utility.ItemDescription;
import com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock; import com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.material.Material; import net.minecraft.block.Blocks;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.Axis;
@ -27,7 +27,7 @@ public class MotorBlock extends HorizontalKineticBlock
private static final Vec3d valuePos = new Vec3d(15 / 16f, 5 / 16f, 5 / 16f); private static final Vec3d valuePos = new Vec3d(15 / 16f, 5 / 16f, 5 / 16f);
public MotorBlock() { public MotorBlock() {
super(Properties.create(Material.IRON)); super(Properties.from(Blocks.IRON_BLOCK));
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.math.AxisAlignedBB;
public class WaterWheelTileEntity extends KineticTileEntity { public class WaterWheelTileEntity extends KineticTileEntity {
@ -31,6 +32,11 @@ public class WaterWheelTileEntity extends KineticTileEntity {
setFlow(d, compound.getCompound("Flows").getInt(d.getName())); setFlow(d, compound.getCompound("Flows").getInt(d.getName()));
} }
} }
@Override
public AxisAlignedBB getRenderBoundingBox() {
return new AxisAlignedBB(pos).grow(1);
}
@Override @Override
public CompoundNBT write(CompoundNBT compound) { public CompoundNBT write(CompoundNBT compound) {

View file

@ -4,6 +4,7 @@ import com.simibubi.create.AllTileEntities;
import com.simibubi.create.modules.contraptions.base.KineticTileEntity; import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.math.AxisAlignedBB;
public class CrushingWheelTileEntity extends KineticTileEntity { public class CrushingWheelTileEntity extends KineticTileEntity {
@ -18,5 +19,10 @@ public class CrushingWheelTileEntity extends KineticTileEntity {
((CrushingWheelBlock) getBlockState().getBlock()).updateControllers(getBlockState(), getWorld(), getPos(), ((CrushingWheelBlock) getBlockState().getBlock()).updateControllers(getBlockState(), getWorld(), getPos(),
d); d);
} }
@Override
public AxisAlignedBB getRenderBoundingBox() {
return new AxisAlignedBB(pos).grow(1);
}
} }

View file

@ -7,7 +7,7 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.material.Material; import net.minecraft.block.Blocks;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
@ -29,7 +29,7 @@ public class TurntableBlock extends KineticBlock {
Block.makeCuboidShape(5.0D, 0.0D, 5.0D, 11.0D, 6.0D, 11.0D)); Block.makeCuboidShape(5.0D, 0.0D, 5.0D, 11.0D, 6.0D, 11.0D));
public TurntableBlock() { public TurntableBlock() {
super(Properties.create(Material.ROCK)); super(Properties.from(Blocks.STRIPPED_SPRUCE_LOG));
} }
@Override @Override

View file

@ -3,10 +3,17 @@ package com.simibubi.create.modules.contraptions.relays;
import com.simibubi.create.AllTileEntities; import com.simibubi.create.AllTileEntities;
import com.simibubi.create.modules.contraptions.base.KineticTileEntity; import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
import net.minecraft.util.math.AxisAlignedBB;
public class ShaftTileEntity extends KineticTileEntity { public class ShaftTileEntity extends KineticTileEntity {
public ShaftTileEntity() { public ShaftTileEntity() {
super(AllTileEntities.SHAFT.type); super(AllTileEntities.SHAFT.type);
} }
@Override
public AxisAlignedBB getRenderBoundingBox() {
return new AxisAlignedBB(pos).grow(1);
}
} }

View file

@ -0,0 +1,67 @@
package com.simibubi.create.modules.curiosities.tools;
import java.util.function.Supplier;
import com.simibubi.create.AllItems;
import net.minecraft.item.IItemTier;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.LazyLoadBase;
public enum AllToolTiers implements IItemTier {
BLAZING(3, 750, 10.0F, 2.5F, 16, () -> {
return Ingredient.fromItems(AllItems.BLAZE_BRASS_CUBE.item);
}),
ROSE_QUARTZ(3, 1644, 7.0F, 2.0F, 24, () -> {
return Ingredient.fromItems(AllItems.REFINED_ROSE_QUARTZ.item);
}),
SHADOW_STEEL(4, 2303, 16.0F, 3.5F, 10, () -> {
return Ingredient.fromItems(AllItems.SHADOW_STEEL_CUBE.item);
}),
;
private final int harvestLevel;
private final int maxUses;
private final float efficiency;
private final float attackDamage;
private final int enchantability;
private final LazyLoadBase<Ingredient> repairMaterial;
private AllToolTiers(int harvestLevelIn, int maxUsesIn, float efficiencyIn, float attackDamageIn,
int enchantabilityIn, Supplier<Ingredient> repairMaterialIn) {
this.harvestLevel = harvestLevelIn;
this.maxUses = maxUsesIn;
this.efficiency = efficiencyIn;
this.attackDamage = attackDamageIn;
this.enchantability = enchantabilityIn;
this.repairMaterial = new LazyLoadBase<>(repairMaterialIn);
}
public int getMaxUses() {
return this.maxUses;
}
public float getEfficiency() {
return this.efficiency;
}
public float getAttackDamage() {
return this.attackDamage;
}
public int getHarvestLevel() {
return this.harvestLevel;
}
public int getEnchantability() {
return this.enchantability;
}
public Ingredient getRepairMaterial() {
return this.repairMaterial.getValue();
}
}

View file

@ -0,0 +1,107 @@
package com.simibubi.create.modules.curiosities.tools;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import com.simibubi.create.foundation.item.AbstractToolItem;
import com.simibubi.create.foundation.item.AllToolTypes;
import com.simibubi.create.foundation.utility.ItemDescription;
import com.simibubi.create.foundation.utility.ItemDescription.Palette;
import com.simibubi.create.foundation.utility.ItemHelper;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.block.BlockState;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipe;
import net.minecraft.item.crafting.IRecipeType;
import net.minecraft.item.crafting.RecipeManager;
import net.minecraft.particles.ParticleTypes;
import net.minecraft.tileentity.FurnaceTileEntity;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.IWorld;
import net.minecraft.world.World;
import net.minecraft.world.dimension.DimensionType;
public class BlazingToolItem extends AbstractToolItem {
static FurnaceTileEntity helperFurnace = new FurnaceTileEntity();
public BlazingToolItem(float attackDamageIn, float attackSpeedIn, Properties builder, AllToolTypes... types) {
super(attackDamageIn, attackSpeedIn, AllToolTiers.BLAZING, builder, types);
}
@Override
public boolean onBlockDestroyed(ItemStack stack, World worldIn, BlockState state, BlockPos pos,
LivingEntity entityLiving) {
return shouldTakeDamage(worldIn, stack) ? super.onBlockDestroyed(stack, worldIn, state, pos, entityLiving)
: true;
}
@Override
public int getBurnTime(ItemStack itemStack) {
return itemStack.getMaxDamage() - itemStack.getDamage() + 1;
}
@Override
public boolean hitEntity(ItemStack stack, LivingEntity target, LivingEntity attacker) {
target.setFire(2);
return shouldTakeDamage(attacker.world, stack) ? super.hitEntity(stack, target, attacker) : true;
}
protected boolean shouldTakeDamage(World world, ItemStack stack) {
return world.getDimension().getType() != DimensionType.THE_NETHER;
}
@Override
public void modifyDrops(List<ItemStack> drops, IWorld world, BlockPos pos, ItemStack tool, BlockState state) {
super.modifyDrops(drops, world, pos, tool, state);
World worldIn = world.getWorld();
helperFurnace.setWorld(worldIn);
RecipeManager recipeManager = worldIn.getRecipeManager();
List<ItemStack> smeltedStacks = new ArrayList<>();
Iterator<ItemStack> dropper = drops.iterator();
while (dropper.hasNext()) {
ItemStack stack = dropper.next();
helperFurnace.setInventorySlotContents(0, stack);
Optional<FurnaceRecipe> smeltingRecipe = recipeManager.getRecipe(IRecipeType.SMELTING, helperFurnace,
worldIn);
if (!smeltingRecipe.isPresent())
continue;
dropper.remove();
ItemStack out = smeltingRecipe.get().getRecipeOutput().copy();
smeltedStacks.addAll(ItemHelper.multipliedOutput(stack, out));
}
if (world.isRemote() && !smeltedStacks.isEmpty()) {
for (int i = 0; i < 10; i++) {
Vec3d flamePos = VecHelper.offsetRandomly(VecHelper.getCenterOf(pos), world.getRandom(), .45f);
Vec3d smokePos = VecHelper.offsetRandomly(VecHelper.getCenterOf(pos), world.getRandom(), .45f);
world.addParticle(ParticleTypes.FLAME, flamePos.getX(), flamePos.getY(), flamePos.getZ(), 0, .1f, 0);
world.addParticle(ParticleTypes.SMOKE, smokePos.getX(), smokePos.getY(), smokePos.getZ(), 0, .1f, 0);
}
world.playSound(null, pos, SoundEvents.ENTITY_GENERIC_EXTINGUISH_FIRE, SoundCategory.BLOCKS, .5f, .1f);
}
drops.addAll(smeltedStacks);
}
@Override
public ItemDescription getDescription() {
Palette color = Palette.Purple;
return new ItemDescription(color).withSummary("A tool forged from fiery Blaze Brass.")
.withBehaviour("When in Nether", "Using the tool will not affect durability.")
.withBehaviour("Outside of Nether, When [Forge#5828] Fixed",
TextFormatting.STRIKETHROUGH + "Tool smelts drops of broken blocks")
.createTabs();
}
}

View file

@ -0,0 +1,22 @@
package com.simibubi.create.modules.curiosities.tools;
import com.simibubi.create.foundation.item.AbstractToolItem;
import com.simibubi.create.foundation.item.AllToolTypes;
import com.simibubi.create.foundation.utility.ItemDescription;
import com.simibubi.create.foundation.utility.ItemDescription.Palette;
public class RoseQuartzToolItem extends AbstractToolItem {
public RoseQuartzToolItem(float attackDamageIn, float attackSpeedIn, Properties builder, AllToolTypes... types) {
super(attackDamageIn, attackSpeedIn, AllToolTiers.ROSE_QUARTZ, builder, types);
}
@Override
public ItemDescription getDescription() {
Palette color = Palette.Purple;
return new ItemDescription(color).withSummary(
"A Tool of finest craftmansship with sturdy materials and detailed decoration. The extended handle allows, at a slight cost of speed, for a "
+ h("greater reach distance", color) + ".");
}
}

View file

@ -0,0 +1,38 @@
package com.simibubi.create.modules.curiosities.tools;
import java.util.List;
import com.simibubi.create.foundation.item.AbstractToolItem;
import com.simibubi.create.foundation.item.AllToolTypes;
import com.simibubi.create.foundation.utility.ItemDescription;
import com.simibubi.create.foundation.utility.ItemDescription.Palette;
import net.minecraft.block.BlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.IWorld;
public class ShadowSteelToolItem extends AbstractToolItem {
public ShadowSteelToolItem(float attackDamageIn, float attackSpeedIn, Properties builder,
AllToolTypes... types) {
super(attackDamageIn, attackSpeedIn, AllToolTiers.SHADOW_STEEL, builder, types);
}
@Override
public ItemDescription getDescription() {
Palette color = Palette.Purple;
return new ItemDescription(color)
.withSummary("The fast moving shadow material allows for quick riddance of blocks and entities.")
.withBehaviour("When [Forge#5828] Fixed",
TextFormatting.STRIKETHROUGH + "Broken blocks do not drop any items.")
.createTabs();
}
@Override
public void modifyDrops(List<ItemStack> drops, IWorld world, BlockPos pos, ItemStack tool, BlockState state) {
drops.clear();
}
}

View file

@ -1,7 +1,10 @@
package com.simibubi.create.modules.logistics; package com.simibubi.create.modules.logistics;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import com.simibubi.create.foundation.utility.ItemHelper;
import net.minecraft.entity.item.ItemEntity; import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Items; import net.minecraft.item.Items;
@ -108,8 +111,12 @@ public class InWorldProcessing {
public void applyRecipeOn(ItemEntity entity, IRecipe<?> recipe) { public void applyRecipeOn(ItemEntity entity, IRecipe<?> recipe) {
ItemStack out = recipe.getRecipeOutput().copy(); ItemStack out = recipe.getRecipeOutput().copy();
out.setCount(entity.getItem().getCount()); List<ItemStack> stacks = ItemHelper.multipliedOutput(entity.getItem(), out);
entity.setItem(out); if (stacks.isEmpty())
return;
entity.setItem(stacks.remove(0));
for (ItemStack additional : stacks)
entity.world.addEntity(new ItemEntity(entity.world, entity.posX, entity.posY, entity.posZ, additional));
} }
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/blazing_axe" "layer0": "create:item/blazing_axe"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/blazing_pickaxe" "layer0": "create:item/blazing_pickaxe"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/blazing_shovel" "layer0": "create:item/blazing_shovel"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/blazing_sword" "layer0": "create:item/blazing_sword"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/rose_quartz_axe" "layer0": "create:item/rose_quartz_axe"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/rose_quartz_pickaxe" "layer0": "create:item/rose_quartz_pickaxe"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/rose_quartz_shovel" "layer0": "create:item/rose_quartz_shovel"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/rose_quartz_sword" "layer0": "create:item/rose_quartz_sword"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/shadow_steel_mattock" "layer0": "create:item/shadow_steel_mattock"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/shadow_steel_pickaxe" "layer0": "create:item/shadow_steel_pickaxe"
} }

View file

@ -1,5 +1,5 @@
{ {
"parent": "item/generated", "parent": "item/handheld",
"textures": { "textures": {
"layer0": "create:item/shadow_steel_sword" "layer0": "create:item/shadow_steel_sword"
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:dolomite_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:dolomite_slab"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:gabbro_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:gabbro_slab"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:indented_gabbro_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:indented_gabbro_slab"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:limestone_bricks_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:limestone_bricks_slab"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:limestone_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:limestone_slab"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:paved_gabbro_bricks_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:paved_gabbro_bricks_slab"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:polished_limestone_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:polished_limestone_slab"
}
]
}
]
}

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:polished_weathered_limestone_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:polished_weathered_limestone_slab"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:stockswitch"
}
],
"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"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,32 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:set_count",
"conditions": [
{
"condition": "minecraft:block_state_property",
"block": "create:weathered_limestone_bricks_slab",
"properties": {
"type": "double"
}
}
],
"count": 2
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "create:weathered_limestone_bricks_slab"
}
]
}
]
}

View file

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

View file

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

Some files were not shown because too many files have changed in this diff Show more