Goodbye, tools
- Removed shadow steel, rose quartz and blazing toolsets - Removed some other unused assets - Fixed limesand not registering an item
@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "create:block/limesand"
|
||||
}
|
@ -6,7 +6,7 @@
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "create:belt_funnel"
|
||||
"name": "minecraft:air"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
|
@ -6,7 +6,7 @@
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:air"
|
||||
"name": "create:limesand"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
|
@ -6,7 +6,7 @@
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:air"
|
||||
"name": "create:linked_extractor"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
|
@ -6,7 +6,7 @@
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:air"
|
||||
"name": "create:linked_transposer"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
|
@ -1,10 +1,5 @@
|
||||
package com.simibubi.create;
|
||||
|
||||
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 java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
@ -24,14 +19,9 @@ import com.simibubi.create.modules.curiosities.ChromaticCompoundCubeItem;
|
||||
import com.simibubi.create.modules.curiosities.RefinedRadianceItem;
|
||||
import com.simibubi.create.modules.curiosities.ShadowSteelItem;
|
||||
import com.simibubi.create.modules.curiosities.TreeFertilizerItem;
|
||||
import com.simibubi.create.modules.curiosities.deforester.DeforesterItem;
|
||||
import com.simibubi.create.modules.curiosities.symmetry.SymmetryWandItem;
|
||||
import com.simibubi.create.modules.curiosities.tools.AllToolTiers;
|
||||
import com.simibubi.create.modules.curiosities.tools.BlazingSwordItem;
|
||||
import com.simibubi.create.modules.curiosities.tools.BlazingToolItem;
|
||||
import com.simibubi.create.modules.curiosities.tools.RoseQuartzToolItem;
|
||||
import com.simibubi.create.modules.curiosities.tools.DeforesterItem;
|
||||
import com.simibubi.create.modules.curiosities.tools.SandPaperItem;
|
||||
import com.simibubi.create.modules.curiosities.tools.ShadowSteelToolItem;
|
||||
import com.simibubi.create.modules.curiosities.zapper.blockzapper.BlockzapperItem;
|
||||
import com.simibubi.create.modules.curiosities.zapper.terrainzapper.TerrainzapperItem;
|
||||
import com.simibubi.create.modules.logistics.item.filter.FilterItem;
|
||||
@ -46,7 +36,6 @@ import net.minecraft.item.Item;
|
||||
import net.minecraft.item.Item.Properties;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Rarity;
|
||||
import net.minecraft.item.SwordItem;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
@ -119,21 +108,6 @@ public enum AllItems {
|
||||
TERRAIN_ZAPPER(TerrainzapperItem::new),
|
||||
DEFORESTER(DeforesterItem::new),
|
||||
SYMMETRY_WAND(SymmetryWandItem::new),
|
||||
ZINC_HANDLE,
|
||||
|
||||
BLAZING_PICKAXE(p -> new BlazingToolItem(1, -2.8F, p, PICKAXE)),
|
||||
BLAZING_SHOVEL(p -> new BlazingToolItem(1.5F, -3.0F, p, SHOVEL)),
|
||||
BLAZING_AXE(p -> new BlazingToolItem(5.0F, -3.0F, p, AXE)),
|
||||
BLAZING_SWORD(p -> new BlazingSwordItem(AllToolTiers.BLAZING, 3, -2.4F, p)),
|
||||
|
||||
ROSE_QUARTZ_PICKAXE(p -> new RoseQuartzToolItem(1, -2.8F, p, PICKAXE)),
|
||||
ROSE_QUARTZ_SHOVEL(p -> new RoseQuartzToolItem(1.5F, -3.0F, p, SHOVEL)),
|
||||
ROSE_QUARTZ_AXE(p -> new RoseQuartzToolItem(5.0F, -3.0F, p, AXE)),
|
||||
ROSE_QUARTZ_SWORD(p -> new SwordItem(AllToolTiers.ROSE_QUARTZ, 3, -2.4F, p)),
|
||||
|
||||
SHADOW_STEEL_PICKAXE(p -> new ShadowSteelToolItem(2.5F, -2.0F, p, PICKAXE)),
|
||||
SHADOW_STEEL_MATTOCK(p -> new ShadowSteelToolItem(2.5F, -1.5F, p, SHOVEL, AXE, HOE)),
|
||||
SHADOW_STEEL_SWORD(p -> new SwordItem(AllToolTiers.SHADOW_STEEL, 3, -2.0F, p)),
|
||||
|
||||
_5_(Sections.SCHEMATICS),
|
||||
|
||||
|
@ -49,35 +49,6 @@ public enum ScreenResources {
|
||||
SEQUENCER_END("sequencer.png", 14, 83, 131, 18),
|
||||
SEQUENCER_EMPTY("sequencer.png", 14, 101, 131, 18),
|
||||
|
||||
// Logistical Index
|
||||
INDEX_TOP("index.png", 41, 0, 174, 22),
|
||||
INDEX_TOP_TRIM("index.png", 41, 22, 174, 6),
|
||||
INDEX_MIDDLE("index.png", 41, 28, 183, 178),
|
||||
INDEX_BOTTOM_TRIM("index.png", 41, 206, 174, 6),
|
||||
INDEX_BOTTOM("index.png", 41, 212, 181, 44),
|
||||
INDEX_SCROLLER_TOP("index.png", 224, 31, 10, 6),
|
||||
INDEX_SCROLLER_MIDDLE("index.png", 224, 37, 10, 6),
|
||||
INDEX_SCROLLER_BOTTOM("index.png", 224, 43, 10, 6),
|
||||
INDEX_TAB("index.png", 0, 55, 22, 22),
|
||||
INDEX_TAB_ACTIVE("index.png", 0, 77, 22, 22),
|
||||
INDEX_SEARCH("index.png", 0, 99, 28, 19),
|
||||
INDEX_SEARCH_OVERLAY("widgets.png", 0, 81, 176, 20),
|
||||
|
||||
LOGISTICAL_CONTROLLER_TRIM("controller.png", 178, 6),
|
||||
LOGISTICAL_CONTROLLER("controller.png", 0, 6, 185, 71),
|
||||
|
||||
ITEM_COUNT_SCROLLAREA("controller.png", 62, 83, 22, 10),
|
||||
BIG_SLOT("controller.png", 0, 83, 26, 26),
|
||||
SHIPPING_SLOT("controller.png", 26, 83, 18, 21),
|
||||
RECEIVING_SLOT("controller.png", 44, 83, 18, 21),
|
||||
SLOT_FRAME("index.png", 0, 118, 18, 18),
|
||||
SLOT_INNER("index.png", 18, 118, 18, 18),
|
||||
DISABLED_SLOT_FRAME("index.png", 0, 136, 18, 18),
|
||||
DISABLED_SLOT_INNER("index.png", 18, 136, 18, 18),
|
||||
CRAFTY_SLOT_FRAME("index.png", 0, 154, 18, 18),
|
||||
CRAFTY_SLOT_INNER("index.png", 18, 154, 18, 18),
|
||||
SELECTED_SLOT_INNER("index.png", 18, 172, 18, 18),
|
||||
|
||||
// JEI
|
||||
JEI_SLOT("jei/widgets.png", 18, 18),
|
||||
JEI_CHANCE_SLOT("jei/widgets.png", 20, 156, 18, 18),
|
||||
|
@ -5,24 +5,11 @@ import java.util.function.Supplier;
|
||||
import com.simibubi.create.AllItems;
|
||||
|
||||
import net.minecraft.item.IItemTier;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
import net.minecraft.util.LazyValue;
|
||||
|
||||
public enum AllToolTiers implements IItemTier {
|
||||
|
||||
BLAZING(3, 450, 10.0F, 2.5F, 16, () -> {
|
||||
return Ingredient.fromItems(Items.BLAZE_ROD);
|
||||
}),
|
||||
|
||||
ROSE_QUARTZ(3, 1644, 7.0F, 2.0F, 24, () -> {
|
||||
return Ingredient.fromItems(AllItems.POLISHED_ROSE_QUARTZ.get());
|
||||
}),
|
||||
|
||||
SHADOW_STEEL(4, 2303, 28.0F, 3.5F, 10, () -> {
|
||||
return Ingredient.fromItems(AllItems.SHADOW_STEEL.get());
|
||||
}),
|
||||
|
||||
RADIANT(4, 1024, 16.0F, 3.5F, 10, () -> {
|
||||
return Ingredient.fromItems(AllItems.REFINED_RADIANCE.get());
|
||||
}),
|
||||
|
@ -1,26 +0,0 @@
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.item.IItemTier;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.SwordItem;
|
||||
|
||||
public class BlazingSwordItem extends SwordItem {
|
||||
|
||||
public BlazingSwordItem(IItemTier tier, int attackDamageIn, float attackSpeedIn, Properties builder) {
|
||||
super(tier, attackDamageIn, attackSpeedIn, builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hitEntity(ItemStack stack, LivingEntity target, LivingEntity attacker) {
|
||||
target.setFire(2);
|
||||
return BlazingToolItem.shouldTakeDamage(attacker.world, stack) ? super.hitEntity(stack, target, attacker)
|
||||
: true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBurnTime(ItemStack itemStack) {
|
||||
return itemStack.getMaxDamage() - itemStack.getDamage() + 1;
|
||||
}
|
||||
|
||||
}
|
@ -1,115 +0,0 @@
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
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.item.ItemHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.enchantment.Enchantments;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.item.BlockItem;
|
||||
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.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.dimension.DimensionType;
|
||||
|
||||
public class BlazingToolItem extends AbstractToolItem {
|
||||
|
||||
// FIXME this does not need to be a TE
|
||||
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;
|
||||
}
|
||||
|
||||
static boolean shouldTakeDamage(World world, ItemStack stack) {
|
||||
return world.getDimension().getType() != DimensionType.THE_NETHER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean modifiesDrops() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void modifyDrops(Collection<ItemStack> drops, IWorld world, BlockPos pos, ItemStack tool, BlockState state) {
|
||||
super.modifyDrops(drops, world, pos, tool, state);
|
||||
World worldIn = world.getWorld();
|
||||
int enchantmentLevel = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, tool);
|
||||
if (state == null)
|
||||
enchantmentLevel = 0;
|
||||
List<ItemStack> smeltedStacks = smeltDrops(drops, worldIn, enchantmentLevel);
|
||||
drops.addAll(smeltedStacks);
|
||||
}
|
||||
|
||||
public static List<ItemStack> smeltDrops(Collection<ItemStack> drops, World worldIn, int enchantmentLevel) {
|
||||
helperFurnace.setLocation(worldIn, BlockPos.ZERO);
|
||||
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();
|
||||
|
||||
float modifier = 1;
|
||||
if (stack.getItem() instanceof BlockItem && !(out.getItem() instanceof BlockItem))
|
||||
modifier += worldIn.getRandom().nextFloat() * enchantmentLevel;
|
||||
|
||||
out.setCount((int) (out.getCount() * modifier + .4f));
|
||||
smeltedStacks.addAll(ItemHelper.multipliedOutput(stack, out));
|
||||
}
|
||||
return smeltedStacks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawnParticles(IWorld world, BlockPos pos, ItemStack tool, BlockState state) {
|
||||
if (!canHarvestBlock(tool, state))
|
||||
return;
|
||||
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, .01f, 0);
|
||||
world.addParticle(ParticleTypes.SMOKE, smokePos.getX(), smokePos.getY(), smokePos.getZ(), 0, .1f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.simibubi.create.modules.curiosities.deforester;
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.foundation.block.render.CustomRenderedItemModel;
|
||||
@ -7,7 +7,6 @@ import com.simibubi.create.foundation.utility.BlockHelper;
|
||||
import com.simibubi.create.foundation.utility.TreeCutter;
|
||||
import com.simibubi.create.foundation.utility.TreeCutter.Tree;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.modules.curiosities.tools.AllToolTiers;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.renderer.model.IBakedModel;
|
@ -1,4 +1,4 @@
|
||||
package com.simibubi.create.modules.curiosities.deforester;
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
@ -1,4 +1,4 @@
|
||||
package com.simibubi.create.modules.curiosities.deforester;
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import com.simibubi.create.foundation.block.render.CustomRenderedItemModel;
|
||||
|
@ -1,27 +0,0 @@
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.simibubi.create.foundation.item.AbstractToolItem;
|
||||
import com.simibubi.create.foundation.item.AllToolTypes;
|
||||
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
|
||||
public class RoseQuartzToolItem extends AbstractToolItem {
|
||||
|
||||
static Multimap<String, AttributeModifier> rangeModifier;
|
||||
static final UUID attributeId = UUID.fromString("7f7dbdb2-0d0d-458a-aa40-ac7633691f66");
|
||||
|
||||
public RoseQuartzToolItem(float attackDamageIn, float attackSpeedIn, Properties builder, AllToolTypes... types) {
|
||||
super(attackDamageIn, attackSpeedIn, AllToolTiers.ROSE_QUARTZ, builder, types);
|
||||
if (rangeModifier == null) {
|
||||
rangeModifier = HashMultimap.create();
|
||||
rangeModifier.put(PlayerEntity.REACH_DISTANCE.getName(),
|
||||
new AttributeModifier(attributeId, "Range modifier", 3, AttributeModifier.Operation.ADDITION));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.simibubi.create.foundation.item.AbstractToolItem;
|
||||
import com.simibubi.create.foundation.item.AllToolTypes;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.particles.ParticleTypes;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
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 boolean modifiesDrops() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void modifyDrops(Collection<ItemStack> drops, IWorld world, BlockPos pos, ItemStack tool, BlockState state) {
|
||||
drops.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void spawnParticles(IWorld world, BlockPos pos, ItemStack tool, BlockState state) {
|
||||
if (!canHarvestBlock(tool, state))
|
||||
return;
|
||||
Vec3d smokePos = VecHelper.offsetRandomly(VecHelper.getCenterOf(pos), world.getRandom(), .15f);
|
||||
world.addParticle(ParticleTypes.SMOKE, smokePos.getX(), smokePos.getY(), smokePos.getZ(), 0, .01f, 0);
|
||||
}
|
||||
|
||||
}
|
@ -1,176 +0,0 @@
|
||||
package com.simibubi.create.modules.curiosities.tools;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.simibubi.create.AllPackets;
|
||||
import com.simibubi.create.foundation.item.AbstractToolItem;
|
||||
import com.simibubi.create.foundation.item.AbstractToolItem.HarvestPacket;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.enchantment.Enchantments;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.ItemEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.IItemTier;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.TieredItem;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.util.EntityDamageSource;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
import net.minecraft.world.storage.loot.LootContext.Builder;
|
||||
import net.minecraft.world.storage.loot.LootParameters;
|
||||
import net.minecraftforge.event.entity.living.LivingDropsEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingExperienceDropEvent;
|
||||
import net.minecraftforge.event.world.BlockEvent;
|
||||
import net.minecraftforge.eventbus.api.Event.Result;
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||
import net.minecraftforge.fml.network.PacketDistributor;
|
||||
|
||||
@EventBusSubscriber
|
||||
public class ToolEvents {
|
||||
|
||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||
public static void toolsCanModifyBlockDrops(BlockEvent.BreakEvent event) {
|
||||
if (event.isCanceled())
|
||||
return;
|
||||
PlayerEntity player = event.getPlayer();
|
||||
ItemStack held = player.getHeldItemMainhand();
|
||||
if (player.isCreative())
|
||||
return;
|
||||
if (!(held.getItem() instanceof AbstractToolItem))
|
||||
return;
|
||||
AbstractToolItem tool = (AbstractToolItem) held.getItem();
|
||||
if (!tool.modifiesDrops())
|
||||
return;
|
||||
BlockState state = event.getState();
|
||||
if (!tool.canHarvestBlock(held, state) && !state.getMaterial().isToolNotRequired())
|
||||
return;
|
||||
|
||||
IWorld world = event.getWorld();
|
||||
BlockPos pos = event.getPos();
|
||||
boolean onServer = !world.isRemote();
|
||||
|
||||
if (!onServer) {
|
||||
tool.spawnParticles(world, pos, held, state);
|
||||
return;
|
||||
}
|
||||
|
||||
World actualWorld = world.getWorld();
|
||||
if (!(actualWorld instanceof ServerWorld))
|
||||
return;
|
||||
|
||||
List<ItemStack> drops = state.getDrops(new Builder((ServerWorld) actualWorld)
|
||||
.withRandom(actualWorld.getRandom()).withParameter(LootParameters.POSITION, pos)
|
||||
.withParameter(LootParameters.TOOL, held).withParameter(LootParameters.THIS_ENTITY, player)
|
||||
.withNullableParameter(LootParameters.BLOCK_ENTITY, world.getTileEntity(pos)));
|
||||
|
||||
tool.modifyDrops(drops, world, pos, held, state);
|
||||
tool.onBlockDestroyed(held, actualWorld, state, pos, player);
|
||||
world.setBlockState(pos, Blocks.AIR.getDefaultState(), 3);
|
||||
for (ItemStack dropped : drops)
|
||||
Block.spawnAsEntity(actualWorld, pos, dropped);
|
||||
|
||||
AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY.with(() -> player),
|
||||
new HarvestPacket(state, held, pos, false));
|
||||
AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player),
|
||||
new HarvestPacket(state, held, pos, true));
|
||||
event.setResult(Result.DENY);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void holdingRoseQuartzToolIncreasesRange(LivingUpdateEvent event) {
|
||||
if (!(event.getEntity() instanceof PlayerEntity))
|
||||
return;
|
||||
if (event.isCanceled())
|
||||
return;
|
||||
|
||||
PlayerEntity player = (PlayerEntity) event.getEntityLiving();
|
||||
ItemStack heldItemMainhand = player.getHeldItemMainhand();
|
||||
String marker = "create_roseQuartzRange";
|
||||
CompoundNBT persistentData = player.getPersistentData();
|
||||
Item item = heldItemMainhand.getItem();
|
||||
boolean holdingRoseQuartz =
|
||||
item instanceof TieredItem && ((TieredItem) item).getTier() == AllToolTiers.ROSE_QUARTZ;
|
||||
|
||||
if (!holdingRoseQuartz) {
|
||||
if (persistentData.contains(marker)) {
|
||||
player.getAttributes().removeAttributeModifiers(RoseQuartzToolItem.rangeModifier);
|
||||
persistentData.remove(marker);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!persistentData.contains(marker)) {
|
||||
player.getAttributes().applyAttributeModifiers(RoseQuartzToolItem.rangeModifier);
|
||||
persistentData.putBoolean(marker, true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void toolsMayModifyEntityLoot(LivingDropsEvent event) {
|
||||
if (!(event.getSource() instanceof EntityDamageSource))
|
||||
return;
|
||||
|
||||
EntityDamageSource source = (EntityDamageSource) event.getSource();
|
||||
Entity target = event.getEntity();
|
||||
Entity trueSource = source.getTrueSource();
|
||||
World world = target.getEntityWorld();
|
||||
|
||||
if (trueSource != null && trueSource instanceof PlayerEntity) {
|
||||
PlayerEntity player = (PlayerEntity) trueSource;
|
||||
ItemStack heldItemMainhand = player.getHeldItemMainhand();
|
||||
Item item = heldItemMainhand.getItem();
|
||||
IItemTier tier = item instanceof TieredItem ? ((TieredItem) item).getTier() : null;
|
||||
|
||||
if (tier == AllToolTiers.SHADOW_STEEL)
|
||||
event.setCanceled(true);
|
||||
|
||||
if (tier == AllToolTiers.BLAZING) {
|
||||
List<ItemStack> drops = event.getDrops().stream().map(entity -> {
|
||||
ItemStack stack = entity.getItem();
|
||||
entity.remove();
|
||||
return stack;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
drops = BlazingToolItem.smeltDrops(drops, world, 0);
|
||||
|
||||
event.getDrops().clear();
|
||||
drops.stream().map(stack -> {
|
||||
ItemEntity entity = new ItemEntity(world, target.getX(), target.getY(), target.getZ(), stack);
|
||||
world.addEntity(entity);
|
||||
return entity;
|
||||
}).forEach(event.getDrops()::add);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void shadowSteelToolsDropMoreXPonKill(LivingExperienceDropEvent event) {
|
||||
PlayerEntity attackingPlayer = event.getAttackingPlayer();
|
||||
if (attackingPlayer == null)
|
||||
return;
|
||||
ItemStack heldItemMainhand = attackingPlayer.getHeldItemMainhand();
|
||||
Item item = heldItemMainhand.getItem();
|
||||
IItemTier tier = item instanceof TieredItem ? ((TieredItem) item).getTier() : null;
|
||||
|
||||
if (tier == AllToolTiers.SHADOW_STEEL) {
|
||||
int level = EnchantmentHelper.getEnchantmentLevel(Enchantments.LOOTING, heldItemMainhand);
|
||||
float modifier = 1 + event.getEntity().world.getRandom().nextFloat() * level;
|
||||
event.setDroppedExperience((int) (event.getDroppedExperience() * modifier + .4f));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -90,6 +90,7 @@ public class AllPaletteBlocks {
|
||||
public static final BlockEntry<SandBlock> LIMESAND = REGISTRATE.block("limesand", p -> new SandBlock(0xD7D7C7, p))
|
||||
.initialProperties(() -> Blocks.SAND)
|
||||
.blockstate(palettesCubeAll())
|
||||
.simpleItem()
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<Block> LIMESTONE =
|
||||
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"forge_marker": 1,
|
||||
"variants": {
|
||||
"active": {
|
||||
"true": {},
|
||||
"false": {}
|
||||
},
|
||||
"part": {
|
||||
"none": { "model": "create:block/logistical_casing" },
|
||||
"start": { "model": "create:block/logistical_casing_start" },
|
||||
"middle": { "model": "create:block/logistical_casing_middle" },
|
||||
"end": { "model": "create:block/logistical_casing_end" }
|
||||
},
|
||||
"axis": {
|
||||
"y": {},
|
||||
"x": { "x": 90, "y": 90 },
|
||||
"z": { "x": 270 }
|
||||
}
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=north": { "model": "create:block/logistical_controller", "y": 180 },
|
||||
"facing=south": { "model": "create:block/logistical_controller" },
|
||||
"facing=west": { "model": "create:block/logistical_controller", "y": 90 },
|
||||
"facing=up": { "model": "create:block/logistical_controller", "x": 90 },
|
||||
"facing=down": { "model": "create:block/logistical_controller", "x": 270 },
|
||||
"facing=east": { "model": "create:block/logistical_controller", "y": 270 }
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"forge_marker": 1,
|
||||
"variants": {
|
||||
"type": {
|
||||
"storage": { "model": "create:block/logistical_controller_icon_storage" },
|
||||
"calculation": { "model": "create:block/logistical_controller_icon_calculation" },
|
||||
"supply": { "model": "create:block/logistical_controller_icon_supply" },
|
||||
"transactions": { "model": "create:block/logistical_controller_icon_transactions" },
|
||||
"request": { "model": "create:block/logistical_controller_icon_request" }
|
||||
},
|
||||
"facing": {
|
||||
"north": { "y": 180 },
|
||||
"south": { },
|
||||
"west": { "y": 90 },
|
||||
"up": { "x": 90 },
|
||||
"down": { "x": 270 },
|
||||
"east": { "y": 270 }
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=north": { "model": "create:block/logistical_index", "y": 180 },
|
||||
"facing=south": { "model": "create:block/logistical_index" },
|
||||
"facing=east": { "model": "create:block/logistical_index", "y": 270 },
|
||||
"facing=west": { "model": "create:block/logistical_index", "y": 90 }
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=north": { "model": "create:block/logisticians_table", "y": 180 },
|
||||
"facing=south": { "model": "create:block/logisticians_table" },
|
||||
"facing=east": { "model": "create:block/logisticians_table", "y": 270 },
|
||||
"facing=west": { "model": "create:block/logisticians_table", "y": 90 }
|
||||
}
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/logisticians_table_indicator" }
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=north": { "model": "create:block/package_funnel", "y": 180 },
|
||||
"facing=south": { "model": "create:block/package_funnel" },
|
||||
"facing=west": { "model": "create:block/package_funnel", "y": 90 },
|
||||
"facing=up": { "model": "create:block/package_funnel_vertical", "x": 90 },
|
||||
"facing=down": { "model": "create:block/package_funnel_vertical", "x": 270 },
|
||||
"facing=east": { "model": "create:block/package_funnel", "y": 270 }
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "create:item/blazing_axe"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "create:item/blazing_pickaxe"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "create:item/blazing_shovel"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "create:item/blazing_sword"
|
||||
}
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"particle": "create:entity/cardboard_box/particle",
|
||||
"cardboard_box_1410": "create:entity/cardboard_box/box_1410"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Box",
|
||||
"from": [ 1, 0, 1 ],
|
||||
"to": [ 15, 10, 15 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#cardboard_box_1410", "uv": [ 8, 8, 15, 13 ] },
|
||||
"east": { "texture": "#cardboard_box_1410", "uv": [ 1, 3, 8, 8 ] },
|
||||
"south": { "texture": "#cardboard_box_1410", "uv": [ 8, 8, 15, 13 ] },
|
||||
"west": { "texture": "#cardboard_box_1410", "uv": [ 1, 3, 8, 8 ] },
|
||||
"up": { "texture": "#cardboard_box_1410", "uv": [ 8, 1, 15, 8 ] },
|
||||
"down": { "texture": "#cardboard_box_1410", "uv": [ 1, 8, 8, 15 ] }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"particle": "create:entity/cardboard_box/particle",
|
||||
"cardboard_box_1416": "create:entity/cardboard_box/box_1416"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Box",
|
||||
"from": [ 1, 0, 1 ],
|
||||
"to": [ 15, 16, 15 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#cardboard_box_1416", "uv": [ 8, 8, 15, 16 ] },
|
||||
"east": { "texture": "#cardboard_box_1416", "uv": [ 1, 0, 8, 8 ] },
|
||||
"south": { "texture": "#cardboard_box_1416", "uv": [ 8, 8, 15, 16 ] },
|
||||
"west": { "texture": "#cardboard_box_1416", "uv": [ 1, 0, 8, 8 ] },
|
||||
"up": { "texture": "#cardboard_box_1416", "uv": [ 8, 1, 15, 8 ] },
|
||||
"down": { "texture": "#cardboard_box_1416", "uv": [ 1, 8, 8, 15 ] }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"particle": "create:entity/cardboard_box/particle",
|
||||
"cardboard_box_1612": "create:entity/cardboard_box/box_1612"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Box",
|
||||
"from": [ 0, 0, 0 ],
|
||||
"to": [ 16, 12, 16 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#cardboard_box_1612", "uv": [ 8, 8, 16, 14 ] },
|
||||
"east": { "texture": "#cardboard_box_1612", "uv": [ 0, 2, 8, 8 ] },
|
||||
"south": { "texture": "#cardboard_box_1612", "uv": [ 8, 8, 16, 14 ] },
|
||||
"west": { "texture": "#cardboard_box_1612", "uv": [ 0, 2, 8, 8 ] },
|
||||
"up": { "texture": "#cardboard_box_1612", "uv": [ 8, 0, 16, 8 ] },
|
||||
"down": { "texture": "#cardboard_box_1612", "uv": [ 0, 8, 8, 16 ] }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"particle": "create:entity/cardboard_box/particle",
|
||||
"cardboard_box_1616": "create:entity/cardboard_box/box_1616"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Box",
|
||||
"from": [ 0, 0, 0 ],
|
||||
"to": [ 16, 16, 16 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#cardboard_box_1616", "uv": [ 8, 8, 16, 16 ] },
|
||||
"east": { "texture": "#cardboard_box_1616", "uv": [ 0, 0, 8, 8 ] },
|
||||
"south": { "texture": "#cardboard_box_1616", "uv": [ 8, 8, 16, 16 ] },
|
||||
"west": { "texture": "#cardboard_box_1616", "uv": [ 0, 0, 8, 8 ] },
|
||||
"up": { "texture": "#cardboard_box_1616", "uv": [ 8, 0, 16, 8 ] },
|
||||
"down": { "texture": "#cardboard_box_1616", "uv": [ 0, 8, 8, 16 ] }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"parent": "create:block/logistical_casing"
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"particle": "create:block/logistical_controller",
|
||||
"logistical_controller": "create:block/logistical_controller",
|
||||
"logistical_icons_1": "create:block/logistical_icons_1"
|
||||
},
|
||||
"display": {
|
||||
"gui": {
|
||||
"rotation": [ 30, 45, 0 ],
|
||||
"translation": [ 2.6, -1, 0 ],
|
||||
"scale": [ 0.625, 0.625, 0.625 ]
|
||||
},
|
||||
"ground": {
|
||||
"rotation": [ 0, 0, 0 ],
|
||||
"translation": [ 0, 3, 2 ],
|
||||
"scale": [ 0.25, 0.25, 0.25 ]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [ 0, 180, 0 ],
|
||||
"translation": [ 0, 0, -7 ],
|
||||
"scale": [ 0.625, 0.625, 0.625 ]
|
||||
}
|
||||
}
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "create:item/logistical_controller",
|
||||
"elements": [
|
||||
{
|
||||
"name": "Body",
|
||||
"from": [ 2, 2, -1 ],
|
||||
"to": [ 14, 14, 3 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ] },
|
||||
"south": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ], "rotation": 180 },
|
||||
"up": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ], "rotation": 180 },
|
||||
"down": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Indicator",
|
||||
"from": [ 1.99, 3, 0 ],
|
||||
"to": [ 14.01, 13, 2 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "tintindex": 0 },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "rotation": 180, "tintindex": 0 }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Icon",
|
||||
"from": [ 5, 5, 2.5 ],
|
||||
"to": [ 11, 11, 3.5 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"south": { "texture": "#logistical_icons_1", "uv": [ 9, 2, 14, 7 ], "tintindex": 1 }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "create:item/logistical_controller",
|
||||
"elements": [
|
||||
{
|
||||
"name": "Body",
|
||||
"from": [ 2, 2, -1 ],
|
||||
"to": [ 14, 14, 3 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ] },
|
||||
"south": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ], "rotation": 180 },
|
||||
"up": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ], "rotation": 180 },
|
||||
"down": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Indicator",
|
||||
"from": [ 1.99, 3, 0 ],
|
||||
"to": [ 14.01, 13, 2 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "tintindex": 0 },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "rotation": 180, "tintindex": 0 }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Icon",
|
||||
"from": [ 5, 5, 2.5 ],
|
||||
"to": [ 11, 11, 3.5 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"south": { "texture": "#logistical_icons_1", "uv": [ 9, 9, 14, 14 ], "tintindex": 1 }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "create:item/logistical_controller",
|
||||
"elements": [
|
||||
{
|
||||
"name": "Body",
|
||||
"from": [ 2, 2, -1 ],
|
||||
"to": [ 14, 14, 3 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ] },
|
||||
"south": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ], "rotation": 180 },
|
||||
"up": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ], "rotation": 180 },
|
||||
"down": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Indicator",
|
||||
"from": [ 1.99, 3, 0 ],
|
||||
"to": [ 14.01, 13, 2 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "tintindex": 0 },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "rotation": 180, "tintindex": 0 }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Icon",
|
||||
"from": [ 5, 5, 2.5 ],
|
||||
"to": [ 11, 11, 3.5 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"south": { "texture": "#logistical_icons_1", "uv": [ 2, 2, 7, 7 ], "tintindex": 1 }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "create:item/logistical_controller",
|
||||
"elements": [
|
||||
{
|
||||
"name": "Body",
|
||||
"from": [ 2, 2, -1 ],
|
||||
"to": [ 14, 14, 3 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ] },
|
||||
"south": { "texture": "#logistical_controller", "uv": [ 0, 0, 12, 12 ] },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 12, 0, 16, 12 ], "rotation": 180 },
|
||||
"up": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ], "rotation": 180 },
|
||||
"down": { "texture": "#logistical_controller", "uv": [ 0, 12, 12, 16 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Indicator",
|
||||
"from": [ 1.99, 3, 0 ],
|
||||
"to": [ 14.01, 13, 2 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"east": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "tintindex": 0 },
|
||||
"west": { "texture": "#logistical_controller", "uv": [ 13, 1, 15, 11 ], "rotation": 180, "tintindex": 0 }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Icon",
|
||||
"from": [ 5, 5, 2.5 ],
|
||||
"to": [ 11, 11, 3.5 ],
|
||||
"shade": false,
|
||||
"faces": {
|
||||
"south": { "texture": "#logistical_icons_1", "uv": [ 2, 9, 7, 14 ], "tintindex": 1 }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "create:item/logistical_controller_storage",
|
||||
"textures": {
|
||||
"logistical_icons_1": "create:block/logistical_icons_2"
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "create:item/logistical_dial",
|
||||
"layer1": "create:item/logistical_dial_overlay"
|
||||
}
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"parent": "create:item/filter",
|
||||
"textures": {
|
||||
"0": "create:item/logistical_filter",
|
||||
"particle": "create:item/logistical_filter"
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"parent": "create:block/logistical_index",
|
||||
"display": {
|
||||
"gui": {
|
||||
"rotation": [ 30, 45, 0 ],
|
||||
"translation": [ 2.6, -1, 0 ],
|
||||
"scale": [ 0.625, 0.625, 0.625 ]
|
||||
},
|
||||
"ground": {
|
||||
"rotation": [ 0, 0, 0 ],
|
||||
"translation": [ 0, 3, 2 ],
|
||||
"scale": [ 0.25, 0.25, 0.25 ]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [ 0, 180, 0 ],
|
||||
"translation": [ 0, 0, -7 ],
|
||||
"scale": [ 0.625, 0.625, 0.625 ]
|
||||
}
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"parent": "create:block/logisticians_table"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"parent": "create:block/package_funnel"
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "create:item/rose_quartz_tool",
|
||||
"textures": {
|
||||
"layer0": "create:item/rose_quartz_axe"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "create:item/rose_quartz_tool",
|
||||
"textures": {
|
||||
"layer0": "create:item/rose_quartz_pickaxe"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "create:item/rose_quartz_tool",
|
||||
"textures": {
|
||||
"layer0": "create:item/rose_quartz_shovel"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "create:item/rose_quartz_tool",
|
||||
"textures": {
|
||||
"layer0": "create:item/rose_quartz_sword"
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"display": {
|
||||
"firstperson_righthand": {
|
||||
"rotation": [ 0, -90, 25 ],
|
||||
"translation": [ 1.13, 4.2, 1.13 ],
|
||||
"scale": [ 0.68, 0.68, 0.68 ]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [ 0, 90, -25 ],
|
||||
"translation": [ 1.13, 4.2, 1.13 ],
|
||||
"scale": [ 0.68, 0.68, 0.68 ]
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "create:item/shadow_steel_mattock"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "create:item/shadow_steel_pickaxe"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/handheld",
|
||||
"textures": {
|
||||
"layer0": "create:item/shadow_steel_sword"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "create:item/tool_handle"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 952 B After Width: | Height: | Size: 952 B |
Before Width: | Height: | Size: 615 B |
Before Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 308 B |
Before Width: | Height: | Size: 517 B |
Before Width: | Height: | Size: 376 B |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 406 B |
Before Width: | Height: | Size: 1.2 KiB |
@ -1,5 +0,0 @@
|
||||
{
|
||||
"villager": {
|
||||
"hat": "full"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 325 B |
Before Width: | Height: | Size: 373 B |
Before Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 349 B |
Before Width: | Height: | Size: 498 B |
Before Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 494 B |
Before Width: | Height: | Size: 503 B |
Before Width: | Height: | Size: 418 B |
Before Width: | Height: | Size: 395 B |
Before Width: | Height: | Size: 417 B |
Before Width: | Height: | Size: 321 B |
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"PPP",
|
||||
"PS ",
|
||||
" S "
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:zinc_handle"
|
||||
},
|
||||
"P": {
|
||||
"item": "create:shadow_steel"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:shadow_steel_mattock",
|
||||
"count": 1
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"PPP",
|
||||
" S ",
|
||||
" S "
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:zinc_handle"
|
||||
},
|
||||
"P": {
|
||||
"item": "create:shadow_steel"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:shadow_steel_pickaxe",
|
||||
"count": 1
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"P",
|
||||
"P",
|
||||
"S"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:zinc_handle"
|
||||
},
|
||||
"P": {
|
||||
"item": "create:shadow_steel"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:shadow_steel_sword",
|
||||
"count": 1
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"LLL",
|
||||
"LWL",
|
||||
"LLL"
|
||||
],
|
||||
"key": {
|
||||
"L": {
|
||||
"tag": "forge:glass"
|
||||
},
|
||||
"W": {
|
||||
"item": "minecraft:acacia_planks"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:acacia_glass",
|
||||
"count": 8
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"SSS",
|
||||
"SSS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:acacia_glass"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:acacia_glass_pane",
|
||||
"count": 16
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"LLL",
|
||||
"LWL",
|
||||
"LLL"
|
||||
],
|
||||
"key": {
|
||||
"L": {
|
||||
"tag": "forge:glass"
|
||||
},
|
||||
"W": {
|
||||
"item": "minecraft:birch_planks"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:birch_glass",
|
||||
"count": 8
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"SSS",
|
||||
"SSS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:birch_glass"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:birch_glass_pane",
|
||||
"count": 16
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"LLL",
|
||||
"LWL",
|
||||
"LLL"
|
||||
],
|
||||
"key": {
|
||||
"L": {
|
||||
"tag": "forge:glass"
|
||||
},
|
||||
"W": {
|
||||
"item": "minecraft:dark_oak_planks"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:dark_oak_glass",
|
||||
"count": 8
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"SSS",
|
||||
"SSS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:dark_oak_glass"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:dark_oak_glass_pane",
|
||||
"count": 16
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"SSS",
|
||||
"SSS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:framed_glass"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:framed_glass_pane",
|
||||
"count": 16
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"SSS",
|
||||
"SSS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:horizontal_framed_glass"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:horizontal_framed_glass_pane",
|
||||
"count": 16
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"LLL",
|
||||
"LWL",
|
||||
"LLL"
|
||||
],
|
||||
"key": {
|
||||
"L": {
|
||||
"tag": "forge:glass"
|
||||
},
|
||||
"W": {
|
||||
"item": "create:andesite_alloy"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:iron_glass",
|
||||
"count": 8
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"SSS",
|
||||
"SSS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "create:iron_glass"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:iron_glass_pane",
|
||||
"count": 16
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"type": "crafting_shaped",
|
||||
"pattern": [
|
||||
"LLL",
|
||||
"LWL",
|
||||
"LLL"
|
||||
],
|
||||
"key": {
|
||||
"L": {
|
||||
"tag": "forge:glass"
|
||||
},
|
||||
"W": {
|
||||
"item": "minecraft:jungle_planks"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:jungle_glass",
|
||||
"count": 8
|
||||
}
|
||||
}
|