more Grinding bench stuff

This commit is contained in:
Mohammad-Ali Minaie
2018-10-28 10:55:46 -04:00
parent 25ba3af7c6
commit 5d52195bda
18 changed files with 1086 additions and 65 deletions

View File

@@ -9,6 +9,9 @@
## Current Feature
- [ ] weapon upgrades
- [ ] Grinding Bench
- [ ] Grinding Wheel Crafting Slack, Clay, Sand
- [ ] Damascus Workblade Recipe
- [ ] Untick Bloomery and Forge
- [ ] Craft Tweaker Support
- [ ] Recipe Handler for Block Breaker

View File

@@ -58,22 +58,22 @@ public class CommonEvents implements WeaponNBT {
if(inputStackItem != null) {
if (inputStack.hasTagCompound()) {
if (getModifiers(inputStack) < WeaponNBT.materialModifiers.get(((WeaponPart) outputStack.getItem()).getMaterial()) ) {
if (WeaponNBT.getModifiers(inputStack) < WeaponNBT.materialModifiers.get(((WeaponPart) outputStack.getItem()).getMaterial()) ) {
if (RecipeHelper.isOreName(modStack, "dustSilver")) {
setSmiteLevel(outputStack, getSmiteLevel(inputStack) + 1);
setModifiers(outputStack, getModifiers(inputStack) + 1);
WeaponNBT.setSmiteLevel(outputStack, WeaponNBT.getSmiteLevel(inputStack) + 1);
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
}
if (RecipeHelper.isOreName(modStack, "foodPoison")) {
setBaneLevel(outputStack, getBaneLevel(inputStack) + 1);
setModifiers(outputStack, getModifiers(inputStack) + 1);
WeaponNBT.setBaneLevel(outputStack, WeaponNBT.getBaneLevel(inputStack) + 1);
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
}
if (RecipeHelper.isOreName(modStack, "dustBlaze")) {
setFireLevel(outputStack, getFireLevel(inputStack) + 1);
setModifiers(outputStack, getModifiers(inputStack) + 1);
WeaponNBT.setFireLevel(outputStack, WeaponNBT.getFireLevel(inputStack) + 1);
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
}
if (RecipeHelper.isOreName(modStack, "gemLapis")) {
setFortuneLevel(outputStack, getFortuneLevel(inputStack) + 1);
setModifiers(outputStack, getModifiers(inputStack) + 1);
WeaponNBT.setFortuneLevel(outputStack, WeaponNBT.getFortuneLevel(inputStack) + 1);
WeaponNBT.setModifiers(outputStack, WeaponNBT.getModifiers(inputStack) + 1);
}
}
}

View File

@@ -0,0 +1,138 @@
package nmd.primal.forgecraft.blocks;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.core.api.PrimalAPI;
import nmd.primal.forgecraft.ModInfo;
/**
* Created by kitsu on 12/3/2016.
*/
public abstract class CustomContainerFacingActive extends BlockContainer {
public static final PropertyDirection FACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL);
protected CustomContainerFacingActive(Material material, String registryName)
{
super(material);
this.setRegistryName(registryName);
this.setUnlocalizedName(registryName);
this.setHardness(3.0f);
this.setResistance(4.0f);
setCreativeTab(ModInfo.TAB_FORGECRAFT);
}
@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
//if(!worldIn.isRemote) {
worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing()).withProperty(PrimalAPI.States.ACTIVE, false), 2);
//}
}
@Override
public int getMetaFromState(IBlockState state) {
int i = 0;
if(!state.getValue(PrimalAPI.States.ACTIVE)) {
if (state.getValue(FACING) == EnumFacing.EAST) {
i = 0;
return i;
}
if (state.getValue(FACING) == EnumFacing.WEST) {
i = 1;
return i;
}
if (state.getValue(FACING) == EnumFacing.SOUTH) {
i = 2;
return i;
}
if (state.getValue(FACING) == EnumFacing.NORTH) {
i = 3;
return i;
}
}
if(state.getValue(PrimalAPI.States.ACTIVE)) {
if (state.getValue(FACING) == EnumFacing.EAST) {
i = 4;
return i;
}
if (state.getValue(FACING) == EnumFacing.WEST) {
i = 5;
return i;
}
if (state.getValue(FACING) == EnumFacing.SOUTH) {
i = 6;
return i;
}
if (state.getValue(FACING) == EnumFacing.NORTH) {
i = 7;
return i;
}
}
return i;
}
@Override
public IBlockState getStateFromMeta(int meta)
{
IBlockState iblockstate = this.getDefaultState();
if (meta == 0){
iblockstate = iblockstate.withProperty(FACING, EnumFacing.EAST);
}
if (meta == 1) {
iblockstate = iblockstate.withProperty(FACING, EnumFacing.WEST);
}
if (meta == 2) {
iblockstate = iblockstate.withProperty(FACING, EnumFacing.SOUTH);
}
if (meta == 3) {
iblockstate = iblockstate.withProperty(FACING, EnumFacing.NORTH);
}
return iblockstate;
}
@Override
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[] {FACING, PrimalAPI.States.ACTIVE});
}
@Override
public boolean isFullCube(IBlockState state)
{
return false;
}
@Override
public boolean isOpaqueCube(IBlockState state)
{
return false;
}
@Override
@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
{
return true;
}
@Override
public EnumBlockRenderType getRenderType(IBlockState state)
{
return EnumBlockRenderType.MODEL;
}
}

View File

@@ -0,0 +1,153 @@
package nmd.primal.forgecraft.blocks.machine;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import nmd.primal.core.api.PrimalAPI;
import nmd.primal.core.common.helper.PlayerHelper;
import nmd.primal.forgecraft.blocks.CustomContainerFacingActive;
import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.parts.WeaponPart;
import nmd.primal.forgecraft.items.weapons.CustomSword;
import nmd.primal.forgecraft.items.weapons.SlayerSword;
import nmd.primal.forgecraft.tiles.TileSharpBench;
import nmd.primal.forgecraft.util.WeaponNBT;
import javax.annotation.Nullable;
public class SharpBench extends CustomContainerFacingActive {
protected static final AxisAlignedBB boundBoxNorth = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 10 / 16D, 8 / 16D);
protected static final AxisAlignedBB boundBoxSouth = new AxisAlignedBB(0.0D, 0.0D, 8 / 16D, 1.0D, 10 / 16D, 1.0D);
protected static final AxisAlignedBB boundBoxEast = new AxisAlignedBB(8 / 16D, 0.0D, 0.0D, 1.0D, 10 / 16D, 1.0D);
protected static final AxisAlignedBB boundBoxWest = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 8 / 16D, 10 / 16D, 1.0D);
public SharpBench(Material material, String registryName) {
super(material, registryName);
this.setHardness(4.0f);
}
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
if (!world.isRemote) {
if(player.getActiveHand().equals(EnumHand.MAIN_HAND)) {
TileSharpBench tile = (TileSharpBench) world.getTileEntity(pos);
if(player.getHeldItemMainhand().isEmpty()) {
if(tile.getSlotStack(0).getItem().equals(ModItems.grindingwheel)) {
world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, true), 2);
if (tile.getCharge() < 15) {
tile.setCharge(tile.getCharge() + 1);
return true;
}
}
}
if(player.getHeldItemMainhand().getItem().equals(ModItems.grindingwheel)) {
tile.setSlotStack(0, player.getHeldItemMainhand().copy());
player.getHeldItemMainhand().shrink(1);
return true;
}
if(player.getHeldItemMainhand().isEmpty()) {
if(player.isSneaking()){
if(tile.getSlotStack(0).getItem().equals(ModItems.grindingwheel)){
PlayerHelper.spawnItemOnGround(world, pos, tile.getSlotStack(0));
tile.clearSlot(0);
}
}
}
}
}
return false;
}
@Override
public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity ent)
{
if(ent instanceof EntityPlayer){
EntityPlayer player = (EntityPlayer) ent;
TileSharpBench tile = (TileSharpBench) world.getTileEntity(pos);
if(state.getValue(PrimalAPI.States.ACTIVE) && tile.getSlotStack(0).getItem().equals(ModItems.grindingwheel)){
ItemStack playerStack = player.inventory.getCurrentItem();
if(playerStack.getItem() instanceof CustomSword ||
playerStack.getItem() instanceof SlayerSword){
if(playerStack.getItemDamage() > 0){
if (!world.isRemote) {
if (PrimalAPI.getRandom().nextInt(1, 4) == 1) {
playerStack.setItemDamage(playerStack.getItemDamage() - 1);
tile.getSlotStack(0).setItemDamage(tile.getSlotStack(0).getItemDamage() + 1);
WeaponNBT.removeAndSetEnchantsForStack(playerStack);
}
}
if (world.isRemote) {
//TODO make sparks
}
}
}
}
}
}
@Nullable
@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new TileSharpBench();
}
@Override
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
{
state = state.getActualState(source, pos);
EnumFacing enumfacing = (EnumFacing)state.getValue(FACING);
switch (enumfacing)
{
case EAST:
default:
return boundBoxEast;
case SOUTH:
return boundBoxSouth;
case WEST:
return boundBoxWest;
case NORTH:
return boundBoxNorth;
}
}
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state)
{
if (!world.isRemote && world.getGameRules().getBoolean("doTileDrops"))
{
TileSharpBench tile = (TileSharpBench) world.getTileEntity(pos);
if (tile !=null)
{
for (ItemStack stack : tile.getSlotList())
{
if (stack != null) {
float offset = 0.7F;
double offsetX = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D;
double offsetY = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D;
double offsetZ = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D;
EntityItem item = new EntityItem(world, pos.getX() + offsetX, pos.getY() + offsetY, pos.getZ() + offsetZ, stack);
item.setDefaultPickupDelay();
world.spawnEntity(item);
}
}
}
}
super.breakBlock(world, pos, state);
}
}

View File

@@ -2,6 +2,7 @@ package nmd.primal.forgecraft.blocks.machine;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
@@ -37,7 +38,7 @@ public class Workbench extends CustomContainerFacing {
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
if (!world.isRemote) {
if (hand.equals(hand.MAIN_HAND) ) {
if(player.getActiveHand().equals(EnumHand.MAIN_HAND)) {
TileWorkbench tile = (TileWorkbench) world.getTileEntity(pos);
ItemStack playerStack = player.inventory.getCurrentItem();
@@ -270,6 +271,31 @@ public class Workbench extends CustomContainerFacing {
}
}
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state)
{
if (!world.isRemote && world.getGameRules().getBoolean("doTileDrops"))
{
TileWorkbench tile = (TileWorkbench) world.getTileEntity(pos);
if (tile !=null)
{
for (ItemStack stack : tile.getSlotList())
{
if (stack != null) {
float offset = 0.7F;
double offsetX = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D;
double offsetY = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D;
double offsetZ = world.rand.nextFloat() * offset + (1.0F - offset) * 0.5D;
EntityItem item = new EntityItem(world, pos.getX() + offsetX, pos.getY() + offsetY, pos.getZ() + offsetZ, stack);
item.setDefaultPickupDelay();
world.spawnEntity(item);
}
}
}
}
super.breakBlock(world, pos, state);
}
@Nullable
@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {

View File

@@ -48,6 +48,7 @@ public class ModBlocks {
public static Block ironanvil;
public static Block workbench;
public static Block sharpbench;
public static Block yewstave;
@@ -79,6 +80,7 @@ public class ModBlocks {
//ironanvil = new AnvilIron(Material.ANVIL, "ironanvil", 6.0f, true);
workbench = new Workbench(Material.WOOD, "toolbench");
sharpbench = new SharpBench(Material.WOOD, "sharpbench");
yewstave = new YewStave(Material.WOOD, "yewstave", 3.0F);
@@ -112,6 +114,7 @@ public class ModBlocks {
//registerBlockWithItem(ironanvil);
registerBlockWithItem(workbench);
registerBlockWithItem(sharpbench);
registerBlockWithItem(yewstave);
}
@@ -144,6 +147,7 @@ public class ModBlocks {
registerRender(stoneanvil);
//registerRender(ironanvil);
registerRender(workbench);
registerRender(sharpbench);
registerRender(yewstave);

View File

@@ -35,7 +35,7 @@ public class ModItems {
public static Item softcrucible;
//public static Item stonetongs;
public static Item castingmud;
public static Item grindingwheel;
public static Item bronzeingotball;
@@ -191,7 +191,7 @@ public class ModItems {
longbow = new Longbow("longbow");
//matchlockmusket = new Musket("matchlock_musket");
wootzworkblade = new Workblade("wootzworkblade", PrimalAPI.ToolMaterials.TOOL_WOOTZ_STEEL, -1.0F).setFireProof(true);
grindingwheel = new BaseItem("grindingwheel").setMaxDamage(9000).setMaxStackSize(1).setNoRepair();
/**********
TOOL PARTS
@@ -348,6 +348,7 @@ public class ModItems {
ForgeRegistries.ITEMS.register(softcrucible);
ForgeRegistries.ITEMS.register(wootzworkblade);
ForgeRegistries.ITEMS.register(forgehammer);
ForgeRegistries.ITEMS.register(grindingwheel);
ForgeRegistries.ITEMS.register(bronzeingotball);
ForgeRegistries.ITEMS.register(bronzechunk);
@@ -502,6 +503,7 @@ public class ModItems {
registerRender(softcrucible);
registerRender(forgehammer);
registerRender(wootzworkblade);
registerRender(grindingwheel);
registerRender(bronzeingotball);
registerRender(bronzechunk);

View File

@@ -18,6 +18,7 @@ public class ModTiles {
registerTileEntity(TileCastingForm.class, "castingform");
registerTileEntity(TileNBTCrucible.class, "nbtcrucible");
registerTileEntity(TileWorkbench.class, "workbench");
registerTileEntity(TileSharpBench.class, "sharpbench");
}
private static void registerTileEntity(Class<? extends TileEntity> tile_class, String baseName) {

View File

@@ -48,22 +48,22 @@ public class WeaponPart extends Item implements WeaponNBT {
public float apply(ItemStack item, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) {
if (item.hasTagCompound()) {
Float returnFloat = 0.0F;
if(getSmiteLevel(item)>0){
if(WeaponNBT.getSmiteLevel(item)>0){
returnFloat += 0.1F;
}
if(getBaneLevel(item)>0){
if(WeaponNBT.getBaneLevel(item)>0){
returnFloat += (0.01F);
}
if(getFireLevel(item)>0){
if(WeaponNBT.getFireLevel(item)>0){
returnFloat += (0.001F);
}
if(getFortuneLevel(item)>0){
if(WeaponNBT.getFortuneLevel(item)>0){
returnFloat += (0.0001F);
}
if(getLeechLevel(item)>0){
if(WeaponNBT.getLeechLevel(item)>0){
returnFloat += (0.00001F);
}
if(getHot(item)){
if(WeaponNBT.getHot(item)){
returnFloat += 1.0F;
}
return returnFloat;
@@ -106,24 +106,24 @@ public class WeaponPart extends Item implements WeaponNBT {
{
if(stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - getModifiers(stack)));
if (getSmiteLevel(stack) > 0) {
tooltip.add(ChatFormatting.GOLD + "Holy: " + getSmiteLevel(stack));
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - WeaponNBT.getModifiers(stack)));
if (WeaponNBT.getSmiteLevel(stack) > 0) {
tooltip.add(ChatFormatting.GOLD + "Holy: " + WeaponNBT.getSmiteLevel(stack));
}
if (getBaneLevel(stack) > 0) {
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + getBaneLevel(stack));
if (WeaponNBT.getBaneLevel(stack) > 0) {
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + WeaponNBT.getBaneLevel(stack));
}
if (getFireLevel(stack) > 0) {
tooltip.add(ChatFormatting.RED + "Flame: " + getFireLevel(stack));
if (WeaponNBT.getFireLevel(stack) > 0) {
tooltip.add(ChatFormatting.RED + "Flame: " + WeaponNBT.getFireLevel(stack));
}
if (getFortuneLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLUE + "Thieving: " + getFortuneLevel(stack));
if (WeaponNBT.getFortuneLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLUE + "Thieving: " + WeaponNBT.getFortuneLevel(stack));
}
if (getLeechLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + getLeechLevel(stack));
if (WeaponNBT.getLeechLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + WeaponNBT.getLeechLevel(stack));
}
if (getSharpnessLevel(stack) > 0) {
tooltip.add(ChatFormatting.WHITE + "Sharpness: " + getSharpnessLevel(stack));
if (WeaponNBT.getSharpnessLevel(stack) > 0) {
tooltip.add(ChatFormatting.WHITE + "Sharpness: " + WeaponNBT.getSharpnessLevel(stack));
}
}
}

View File

@@ -3,14 +3,21 @@ package nmd.primal.forgecraft.items.weapons;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.mojang.realmsclient.gui.ChatFormatting;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentDamage;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.nbt.NBTBase;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@@ -57,9 +64,62 @@ public class CustomSword extends ItemSword implements WeaponNBT {
return 0;
}
@Override
public void onUpdate(ItemStack stack, World world, Entity playerin, int itemSlot, boolean isSelected) {
if(!world.isRemote){
if(isSelected) {
//System.out.println( + stack.getMaxDamage() * 0.6 + " : " + stack.getItemDamage() + " : " + stack.getMaxDamage() * 0.5);
//System.out.println(stack.getItemDamage() + ">" + stack.getMaxDamage() * 0.5);
//System.out.println(stack.getItemDamage() + "<" + stack.getMaxDamage() * 0.6);
//System.out.println(WeaponNBT.getSharpnessLevel(stack));
if (stack.getItemDamage() < stack.getMaxDamage() * 0.5){
WeaponNBT.setSharpnessLevel(stack, 5);
//System.out.println("Sharpness = 5");
}
if (stack.getItemDamage() > stack.getMaxDamage() * 0.5 && stack.getItemDamage() < stack.getMaxDamage() * 0.6){
WeaponNBT.setSharpnessLevel(stack, 4);
//System.out.println("Sharpness = 4");
}
if (stack.getItemDamage() > stack.getMaxDamage() * 0.6 && stack.getItemDamage() < stack.getMaxDamage() * 0.7){
WeaponNBT.setSharpnessLevel(stack, 3);
//System.out.println("Sharpness = 3");
}
if (stack.getItemDamage() > stack.getMaxDamage() * 0.7 && stack.getItemDamage() < stack.getMaxDamage() * 0.8){
WeaponNBT.setSharpnessLevel(stack, 2);
//System.out.println("Sharpness = 2");
}
if (stack.getItemDamage() > stack.getMaxDamage() * 0.8 && stack.getItemDamage() < stack.getMaxDamage() * 0.9){
WeaponNBT.setSharpnessLevel(stack, 1);
//System.out.println("Sharpness = 1");
}
if (stack.getItemDamage() > stack.getMaxDamage() * 0.9 && stack.getItemDamage() < stack.getMaxDamage()){
WeaponNBT.setSharpnessLevel(stack, 0);
//System.out.println("Sharpness = 0");
}
//System.out.println(WeaponNBT.getSharpnessLevel(stack));
}
}
}
@Override
public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity)
{
if(!player.world.isRemote) {
WeaponNBT.removeAndSetEnchantsForStack(stack);
return false;
}
return false;
}
@Override
public boolean onBlockStartBreak(ItemStack stack, BlockPos pos, EntityPlayer player)
{
if(!player.world.isRemote) {
System.out.println(WeaponNBT.getSharpnessLevel(stack));
WeaponNBT.removeAndSetEnchantsForStack(stack);
return false;
}
return false;
}
@@ -72,6 +132,7 @@ public class CustomSword extends ItemSword implements WeaponNBT {
{
multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", this.attack, 0));
multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", this.speed, 0));
}
return multimap;
@@ -81,28 +142,28 @@ public class CustomSword extends ItemSword implements WeaponNBT {
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flagIn)
{
//tooltip.add(ChatFormatting.GRAY + "Damage: " + item.getItemDamage() );
tooltip.add(ChatFormatting.LIGHT_PURPLE + "Damage: " + stack.getItemDamage() );
if(stack.hasTagCompound())
{
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - getModifiers(stack)));
if (getSmiteLevel(stack) > 0) {
tooltip.add(ChatFormatting.GOLD + "Holy: " + getSmiteLevel(stack));
tooltip.add(ChatFormatting.GRAY + "Upgrades left: " + (WeaponNBT.materialModifiers.get(this.toolMaterial) - WeaponNBT.getModifiers(stack)));
if (WeaponNBT.getSmiteLevel(stack) > 0) {
tooltip.add(ChatFormatting.GOLD + "Holy: " + WeaponNBT.getSmiteLevel(stack));
}
if (getBaneLevel(stack) > 0) {
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + getBaneLevel(stack));
if (WeaponNBT.getBaneLevel(stack) > 0) {
tooltip.add(ChatFormatting.GREEN + "Spider Killing: " + WeaponNBT.getBaneLevel(stack));
}
if (getFireLevel(stack) > 0) {
tooltip.add(ChatFormatting.RED + "Flame: " + getFireLevel(stack));
if (WeaponNBT.getFireLevel(stack) > 0) {
tooltip.add(ChatFormatting.RED + "Flame: " + WeaponNBT.getFireLevel(stack));
}
if (getFortuneLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLUE + "Thieving: " + getFortuneLevel(stack));
if (WeaponNBT.getFortuneLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLUE + "Thieving: " + WeaponNBT.getFortuneLevel(stack));
}
if (getLeechLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + getLeechLevel(stack));
}
if (getSharpnessLevel(stack) > 0) {
tooltip.add(ChatFormatting.WHITE + "Sharpness: " + getSharpnessLevel(stack));
if (WeaponNBT.getLeechLevel(stack) > 0) {
tooltip.add(ChatFormatting.BLACK + "Life Steal: " + WeaponNBT.getLeechLevel(stack));
}
//if (WeaponNBT.getSharpnessLevel(stack) > 0) {
// tooltip.add(ChatFormatting.WHITE + "Sharpness: " + WeaponNBT.getSharpnessLevel(stack));
//}
}
}

View File

@@ -0,0 +1,79 @@
package nmd.primal.forgecraft.tiles;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ITickable;
import net.minecraft.world.World;
import nmd.primal.core.api.PrimalAPI;
import nmd.primal.core.common.helper.RecipeHelper;
import nmd.primal.core.common.items.tools.Gallagher;
import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.parts.ToolPart;
import nmd.primal.forgecraft.items.parts.WeaponGuard;
import nmd.primal.forgecraft.items.parts.WeaponPart;
import nmd.primal.forgecraft.items.tools.CustomAxe;
import nmd.primal.forgecraft.items.tools.CustomHoe;
import nmd.primal.forgecraft.items.tools.CustomPickaxe;
import nmd.primal.forgecraft.items.tools.CustomShovel;
public class TileSharpBench extends TileBaseSlot implements ITickable {
private int iteration = 0;
public int getCharge() {
return charge;
}
public void setCharge(int charge) {
this.charge = charge;
}
private int charge;
@Override
public void update () {
World world = this.getWorld();
if (!world.isRemote) {
IBlockState state = world.getBlockState(this.pos);
if(state.getValue(PrimalAPI.States.ACTIVE)){
this.iteration++;
if(iteration > 80){
if(charge > 0){
charge -= 1;
}
iteration = 0;
}
}
}
}
public boolean isItemValidForSlot(int index, ItemStack stack) {
if(index == 0){
if(stack.getItem()== ModItems.grindingwheel){
return true;
}
}
return false;
}
// ***************************************************************************** //
// NBT
// ***************************************************************************** //
@Override
public NBTTagCompound readNBT(NBTTagCompound nbt)
{
super.readNBT(nbt);
this.charge = nbt.getInteger("charge");
return nbt;
}
@Override
public NBTTagCompound writeNBT(NBTTagCompound nbt)
{
nbt.setInteger("charge", this.charge);
super.writeNBT(nbt);
return nbt;
}
}

View File

@@ -1,5 +1,7 @@
package nmd.primal.forgecraft.util;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
@@ -29,7 +31,7 @@ public interface WeaponNBT {
* @param stack The ItemStack to get Modifiers from
* @return int The number of modifiers applied
*/
default int getModifiers(ItemStack stack) {
static int getModifiers(ItemStack stack) {
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -45,11 +47,11 @@ public interface WeaponNBT {
* @param stack The stack to set modifiers to
* @param mods The number of modifiers added
*/
default void setModifiers(ItemStack stack, Integer mods){
static void setModifiers(ItemStack stack, Integer mods){
stack.getSubCompound("tags").setInteger("modifiers", mods);
}
default int getSmiteLevel(ItemStack stack){
static int getSmiteLevel(ItemStack stack){
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -59,11 +61,11 @@ public interface WeaponNBT {
}
return 0;
}
default void setSmiteLevel(ItemStack stack, int smite){
static void setSmiteLevel(ItemStack stack, int smite){
stack.getSubCompound("tags").setInteger("smite", smite);
}
default int getBaneLevel(ItemStack stack) {
static int getBaneLevel(ItemStack stack) {
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -73,11 +75,11 @@ public interface WeaponNBT {
}
return 0;
}
default void setBaneLevel(ItemStack stack, Integer level){
static void setBaneLevel(ItemStack stack, Integer level){
stack.getSubCompound("tags").setInteger("bane", level);
}
default int getFireLevel(ItemStack stack) {
static int getFireLevel(ItemStack stack) {
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -87,11 +89,11 @@ public interface WeaponNBT {
}
return 0;
}
default void setFireLevel(ItemStack stack, Integer level){
static void setFireLevel(ItemStack stack, Integer level){
stack.getSubCompound("tags").setInteger("fire", level);
}
default int getFortuneLevel(ItemStack stack) {
static int getFortuneLevel(ItemStack stack) {
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -101,11 +103,11 @@ public interface WeaponNBT {
}
return 0;
}
default void setFortuneLevel(ItemStack stack, Integer level){
static void setFortuneLevel(ItemStack stack, Integer level){
stack.getSubCompound("tags").setInteger("fortune", level);
}
default int getSweepingLevel(ItemStack stack) {
static int getSweepingLevel(ItemStack stack) {
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -115,11 +117,11 @@ public interface WeaponNBT {
}
return 0;
}
default void setSweepingLevel(ItemStack stack, Integer level){
static void setSweepingLevel(ItemStack stack, Integer level){
stack.getSubCompound("tags").setInteger("sweeping", level);
}
default int getSharpnessLevel(ItemStack stack) {
static int getSharpnessLevel(ItemStack stack) {
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -129,11 +131,11 @@ public interface WeaponNBT {
}
return 0;
}
default void setSharpnessLevel(ItemStack stack, Integer level){
static void setSharpnessLevel(ItemStack stack, Integer level){
stack.getSubCompound("tags").setInteger("sharp", level);
}
default int getLeechLevel(ItemStack stack) {
static int getLeechLevel(ItemStack stack) {
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -143,11 +145,11 @@ public interface WeaponNBT {
}
return 0;
}
default void setLeechLevel(ItemStack stack, Integer level){
static void setLeechLevel(ItemStack stack, Integer level){
stack.getSubCompound("tags").setInteger("leech", level);
}
default NBTTagCompound getTags(ItemStack stack){
static NBTTagCompound getTags(ItemStack stack){
if(!stack.isEmpty()) {
if (stack.hasTagCompound()) {
if (stack.getSubCompound("tags") != null) {
@@ -158,7 +160,7 @@ public interface WeaponNBT {
return null;
}
default boolean getHot(ItemStack stack){
static boolean getHot(ItemStack stack){
if(!stack.isEmpty()){
if(stack.hasTagCompound()){
@@ -171,7 +173,7 @@ public interface WeaponNBT {
return false;
}
default void setHot(ItemStack stack){
static void setHot(ItemStack stack){
}
@@ -189,6 +191,32 @@ public interface WeaponNBT {
stack.getSubCompound("tags").setBoolean("hot", false);
}
static void removeAndSetEnchantsForStack(ItemStack stack){
if(stack.hasTagCompound()) {
//if(stack.isItemEnchanted()) {
stack.getTagCompound().removeTag("ench");
if (getSmiteLevel(stack)>0) {
stack.addEnchantment(Enchantment.getEnchantmentByID(17), getSmiteLevel(stack));
}
if (getBaneLevel(stack)>0) {
stack.addEnchantment(Enchantment.getEnchantmentByID(18), getBaneLevel(stack));
}
if (getFireLevel(stack)>0) {
stack.addEnchantment(Enchantment.getEnchantmentByID(20), getFireLevel(stack));
}
if (getFortuneLevel(stack)>0) {
stack.addEnchantment(Enchantment.getEnchantmentByID(21), getFortuneLevel(stack));
}
if (getSweepingLevel(stack) > 0) {
stack.addEnchantment(Enchantment.getEnchantmentByID(22), getSweepingLevel(stack));
}
if (getSharpnessLevel(stack)>0) {
stack.addEnchantment(Enchantment.getEnchantmentByID(16), getSharpnessLevel(stack));
}
//}
}
}
Hashtable<Item.ToolMaterial, Integer> materialModifiers = new Hashtable<Item.ToolMaterial, Integer>(){{
put(PrimalAPI.ToolMaterials.TOOL_COPPER, 3);

View File

@@ -0,0 +1,12 @@
{
"variants": {
"active=false,facing=north": { "model": "forgecraft:grinder_model" },
"active=false,facing=east": { "model": "forgecraft:grinder_model", "y": 90 },
"active=false,facing=south": { "model": "forgecraft:grinder_model", "y": 180 },
"active=false,facing=west": { "model": "forgecraft:grinder_model", "y": 270 },
"active=true,facing=north": { "model": "forgecraft:grinder_model" },
"active=true,facing=east": { "model": "forgecraft:grinder_model", "y": 90 },
"active=true,facing=south": { "model": "forgecraft:grinder_model", "y": 180 },
"active=true,facing=west": { "model": "forgecraft:grinder_model", "y": 270 }
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

View File

@@ -0,0 +1,255 @@
{
"__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio",
"textures": {
"particle": "blocks/planks_oak",
"texture": "blocks/planks_oak",
"lever_handle": "blocks/planks_big_oak"
},
"elements": [
{
"__comment": "Box1",
"from": [ 4.5, 0, 1 ],
"to": [ 6.5, 9, 3 ],
"faces": {
"down": { "uv": [ 4.5, 13, 6.5, 15 ], "texture": "#texture" },
"up": { "uv": [ 4.5, 1, 6.5, 3 ], "texture": "#texture" },
"north": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
"south": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
"west": { "uv": [ 1, 7, 3, 16 ], "texture": "#texture" },
"east": { "uv": [ 13, 7, 15, 16 ], "texture": "#texture" }
}
},
{
"__comment": "Box1",
"from": [ 4.5, 0, 9 ],
"to": [ 6.5, 9, 11 ],
"faces": {
"down": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
"up": { "uv": [ 4.5, 9, 6.5, 11 ], "texture": "#texture" },
"north": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
"south": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
"west": { "uv": [ 9, 7, 11, 16 ], "texture": "#texture" },
"east": { "uv": [ 5, 7, 7, 16 ], "texture": "#texture" }
}
},
{
"__comment": "Box1",
"from": [ 9.5, 0, 9 ],
"to": [ 11.5, 9, 11 ],
"faces": {
"down": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
"up": { "uv": [ 9.5, 9, 11.5, 11 ], "texture": "#texture" },
"north": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
"south": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
"west": { "uv": [ 9, 7, 11, 16 ], "texture": "#texture" },
"east": { "uv": [ 5, 7, 7, 16 ], "texture": "#texture" }
}
},
{
"__comment": "Box1",
"from": [ 9.5, 0, 1 ],
"to": [ 11.5, 9, 3 ],
"faces": {
"down": { "uv": [ 9.5, 13, 11.5, 15 ], "texture": "#texture" },
"up": { "uv": [ 9.5, 1, 11.5, 3 ], "texture": "#texture" },
"north": { "uv": [ 4.5, 7, 6.5, 16 ], "texture": "#texture" },
"south": { "uv": [ 9.5, 7, 11.5, 16 ], "texture": "#texture" },
"west": { "uv": [ 1, 7, 3, 16 ], "texture": "#texture" },
"east": { "uv": [ 13, 7, 15, 16 ], "texture": "#texture" }
}
},
{
"__comment": "Box5",
"from": [ 4.5, 9, 1 ],
"to": [ 6.5, 11, 11 ],
"faces": {
"down": { "uv": [ 4.5, 5, 6.5, 15 ], "texture": "#texture" },
"up": { "uv": [ 4.5, 1, 6.5, 11 ], "texture": "#texture" },
"north": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
"south": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
"west": { "uv": [ 1, 5, 11, 7 ], "texture": "#texture" },
"east": { "uv": [ 5, 5, 15, 7 ], "texture": "#texture" }
}
},
{
"__comment": "Box5",
"from": [ 9.5, 9, 1 ],
"to": [ 11.5, 11, 11 ],
"faces": {
"down": { "uv": [ 9.5, 5, 11.5, 15 ], "texture": "#texture" },
"up": { "uv": [ 9.5, 1, 11.5, 11 ], "texture": "#texture" },
"north": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
"south": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
"west": { "uv": [ 1, 5, 11, 7 ], "texture": "#texture" },
"east": { "uv": [ 5, 5, 15, 7 ], "texture": "#texture" }
}
},
{
"__comment": "Box18",
"from": [ 5, 11, 4 ],
"to": [ 11, 12, 5 ],
"faces": {
"down": { "uv": [ 5, 11, 11, 12 ], "texture": "#lever_handle" },
"up": { "uv": [ 5, 4, 11, 5 ], "texture": "#lever_handle" },
"north": { "uv": [ 5, 4, 11, 5 ], "texture": "#lever_handle" },
"south": { "uv": [ 5, 4, 11, 5 ], "texture": "#lever_handle" },
"west": { "uv": [ 4, 4, 5, 5 ], "texture": "#lever_handle" },
"east": { "uv": [ 11, 4, 12, 5 ], "texture": "#lever_handle" }
}
},
{
"__comment": "Box23",
"from": [ 5.5, 11, 8.5 ],
"to": [ 10.5, 12, 9.5 ],
"faces": {
"down": { "uv": [ 5.5, 6.5, 10.5, 7.5 ], "texture": "#lever_handle" },
"up": { "uv": [ 5.5, 8.5, 10.5, 9.5 ], "texture": "#lever_handle" },
"north": { "uv": [ 5.5, 4, 10.5, 5 ], "texture": "#lever_handle" },
"south": { "uv": [ 5.5, 4, 10.5, 5 ], "texture": "#lever_handle" },
"west": { "uv": [ 8.5, 4, 9.5, 5 ], "texture": "#lever_handle" },
"east": { "uv": [ 6.5, 4, 7.5, 5 ], "texture": "#lever_handle" }
}
},
{
"__comment": "Box24",
"from": [ 5.5, 11, 9.5 ],
"to": [ 10.5, 11.5, 10.5 ],
"faces": {
"down": { "uv": [ 5.5, 5.5, 10.5, 6.5 ], "texture": "#lever_handle" },
"up": { "uv": [ 5.5, 9.5, 10.5, 10.5 ], "texture": "#lever_handle" },
"north": { "uv": [ 5.5, 4.5, 10.5, 5 ], "texture": "#lever_handle" },
"south": { "uv": [ 5.5, 4.5, 10.5, 5 ], "texture": "#lever_handle" },
"west": { "uv": [ 9.5, 4.5, 10.5, 5 ], "texture": "#lever_handle" },
"east": { "uv": [ 5.5, 4.5, 6.5, 5 ], "texture": "#lever_handle" }
}
},
{
"__comment": "Box25",
"from": [ 4.5, 11, 2 ],
"to": [ 6.5, 12, 4 ],
"faces": {
"down": { "uv": [ 4.5, 12, 6.5, 14 ], "texture": "#texture" },
"up": { "uv": [ 4.5, 2, 6.5, 4 ], "texture": "#texture" },
"north": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
"south": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
"west": { "uv": [ 2, 4, 4, 5 ], "texture": "#texture" },
"east": { "uv": [ 12, 4, 14, 5 ], "texture": "#texture" }
}
},
{
"__comment": "Box25",
"from": [ 4.5, 11, 5 ],
"to": [ 6.5, 12, 7 ],
"faces": {
"down": { "uv": [ 4.5, 9, 6.5, 11 ], "texture": "#texture" },
"up": { "uv": [ 4.5, 5, 6.5, 7 ], "texture": "#texture" },
"north": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
"south": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
"west": { "uv": [ 5, 4, 7, 5 ], "texture": "#texture" },
"east": { "uv": [ 9, 4, 11, 5 ], "texture": "#texture" }
}
},
{
"__comment": "Box27",
"from": [ 4.5, 12, 3 ],
"to": [ 6.5, 13, 6 ],
"faces": {
"down": { "uv": [ 4.5, 10, 6.5, 13 ], "texture": "#texture" },
"up": { "uv": [ 4.5, 3, 6.5, 6 ], "texture": "#texture" },
"north": { "uv": [ 9.5, 3, 11.5, 4 ], "texture": "#texture" },
"south": { "uv": [ 4.5, 3, 6.5, 4 ], "texture": "#texture" },
"west": { "uv": [ 3, 3, 6, 4 ], "texture": "#texture" },
"east": { "uv": [ 10, 3, 13, 4 ], "texture": "#texture" }
}
},
{
"__comment": "Box25",
"from": [ 9.5, 11, 2 ],
"to": [ 11.5, 12, 4 ],
"faces": {
"down": { "uv": [ 9.5, 12, 11.5, 14 ], "texture": "#texture" },
"up": { "uv": [ 9.5, 2, 11.5, 4 ], "texture": "#texture" },
"north": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
"south": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
"west": { "uv": [ 2, 4, 4, 5 ], "texture": "#texture" },
"east": { "uv": [ 12, 4, 14, 5 ], "texture": "#texture" }
}
},
{
"__comment": "Box25",
"from": [ 9.5, 11, 5 ],
"to": [ 11.5, 12, 7 ],
"faces": {
"down": { "uv": [ 9.5, 9, 11.5, 11 ], "texture": "#texture" },
"up": { "uv": [ 9.5, 5, 11.5, 7 ], "texture": "#texture" },
"north": { "uv": [ 4.5, 4, 6.5, 5 ], "texture": "#texture" },
"south": { "uv": [ 9.5, 4, 11.5, 5 ], "texture": "#texture" },
"west": { "uv": [ 5, 4, 7, 5 ], "texture": "#texture" },
"east": { "uv": [ 9, 4, 11, 5 ], "texture": "#texture" }
}
},
{
"__comment": "PlaneX34",
"from": [ 4.5, 11, 4 ],
"to": [ 4.501, 12, 5 ],
"faces": {
"west": { "uv": [ 4, 4, 5, 5 ], "texture": "#texture" },
"east": { "uv": [ 11, 4, 12, 5 ], "texture": "#texture" }
}
},
{
"__comment": "Box27",
"from": [ 9.5, 12, 3 ],
"to": [ 11.5, 13, 6 ],
"faces": {
"down": { "uv": [ 4.5, 10, 6.5, 13 ], "texture": "#texture" },
"up": { "uv": [ 4.5, 3, 6.5, 6 ], "texture": "#texture" },
"north": { "uv": [ 9.5, 3, 11.5, 4 ], "texture": "#texture" },
"south": { "uv": [ 4.5, 3, 6.5, 4 ], "texture": "#texture" },
"west": { "uv": [ 3, 3, 6, 4 ], "texture": "#texture" },
"east": { "uv": [ 10, 3, 13, 4 ], "texture": "#texture" }
}
},
{
"__comment": "PlaneX34",
"from": [ 11.5, 11, 4 ],
"to": [ 11.501, 12, 5 ],
"faces": {
"west": { "uv": [ 4, 4, 5, 5 ], "texture": "#texture" },
"east": { "uv": [ 11, 4, 12, 5 ], "texture": "#texture" }
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [ 75, 45, 0 ],
"translation": [ 0, 2.5, 0 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"thirdperson_lefthand": {
"rotation": [ 75, 45, 0 ],
"translation": [ 0, 2.5, 0 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"firstperson_righthand": {
"rotation": [ 0, 45, 0 ],
"scale": [ 0.4, 0.4, 0.4 ]
},
"firstperson_lefthand": {
"rotation": [ 0, 45, 0 ],
"scale": [ 0.4, 0.4, 0.4 ]
},
"gui": {
"rotation": [ 30, -45, 0 ],
"scale": [ 0.625, 0.625, 0.625 ]
},
"ground": {
"translation": [ 0, 3, 0 ],
"scale": [ 0.25, 0.25, 0.25 ]
},
"fixed": {
"rotation": [ 0, 90, 0 ],
"scale": [ 0.5, 0.5, 0.5 ]
}
}
}

View File

@@ -0,0 +1,250 @@
{
"__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio",
"textures": {
"particle": "blocks/snow",
"texture": "blocks/snow"
},
"elements": [
{
"__comment": "Box1",
"from": [ 7, 10.5, 6.5 ],
"to": [ 9, 11.5, 9.5 ],
"faces": {
"down": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 4.5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 4.5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6.5, 4.5, 9.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 6.5, 4.5, 9.5, 5.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box1",
"from": [ 7, 9.5, 5.5 ],
"to": [ 9, 10.5, 10.5 ],
"faces": {
"down": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5.5, 9, 6.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5.5, 9, 6.5 ], "texture": "#texture" },
"west": { "uv": [ 5.5, 5.5, 10.5, 6.5 ], "texture": "#texture" },
"east": { "uv": [ 5.5, 5.5, 10.5, 6.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box3",
"from": [ 7, 6.5, 4.5 ],
"to": [ 9, 7.5, 11.5 ],
"faces": {
"down": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 8.5, 9, 9.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 8.5, 9, 9.5 ], "texture": "#texture" },
"west": { "uv": [ 4.5, 8.5, 11.5, 9.5 ], "texture": "#texture" },
"east": { "uv": [ 4.5, 8.5, 11.5, 9.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box3",
"from": [ 7, 8.5, 4.5 ],
"to": [ 9, 9.5, 11.5 ],
"faces": {
"down": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 4.5, 9, 11.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 6.5, 9, 7.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 6.5, 9, 7.5 ], "texture": "#texture" },
"west": { "uv": [ 4.5, 6.5, 11.5, 7.5 ], "texture": "#texture" },
"east": { "uv": [ 4.5, 6.5, 11.5, 7.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box5",
"from": [ 7, 7.5, 4.5 ],
"to": [ 9, 8.5, 7.5 ],
"faces": {
"down": { "uv": [ 7, 8.5, 9, 11.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 4.5, 9, 7.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
"west": { "uv": [ 4.5, 7.5, 7.5, 8.5 ], "texture": "#texture" },
"east": { "uv": [ 8.5, 7.5, 11.5, 8.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box5",
"from": [ 7, 7.5, 8.5 ],
"to": [ 9, 8.5, 11.5 ],
"faces": {
"down": { "uv": [ 7, 4.5, 9, 7.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 8.5, 9, 11.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 7.5, 9, 8.5 ], "texture": "#texture" },
"west": { "uv": [ 8.5, 7.5, 11.5, 8.5 ], "texture": "#texture" },
"east": { "uv": [ 4.5, 7.5, 7.5, 8.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box1",
"from": [ 7, 5.5, 5.5 ],
"to": [ 9, 6.5, 10.5 ],
"faces": {
"down": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 5.5, 9, 10.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 9.5, 9, 10.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 9.5, 9, 10.5 ], "texture": "#texture" },
"west": { "uv": [ 5.5, 9.5, 10.5, 10.5 ], "texture": "#texture" },
"east": { "uv": [ 5.5, 9.5, 10.5, 10.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box1",
"from": [ 7, 4.5, 6.5 ],
"to": [ 9, 5.5, 9.5 ],
"faces": {
"down": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
"up": { "uv": [ 7, 6.5, 9, 9.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 10.5, 9, 11.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 10.5, 9, 11.5 ], "texture": "#texture" },
"west": { "uv": [ 6.5, 10.5, 9.5, 11.5 ], "texture": "#texture" },
"east": { "uv": [ 6.5, 10.5, 9.5, 11.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 9.5, 5 ],
"to": [ 9, 10, 5.5 ],
"faces": {
"down": { "uv": [ 7, 10.5, 9, 11 ], "texture": "#texture" },
"up": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"west": { "uv": [ 5, 6, 5.5, 6.5 ], "texture": "#texture" },
"east": { "uv": [ 10.5, 6, 11, 6.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 6, 5 ],
"to": [ 9, 6.5, 5.5 ],
"faces": {
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 5, 6 ],
"to": [ 9, 5.5, 6.5 ],
"faces": {
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 5, 9.5 ],
"to": [ 9, 5.5, 10 ],
"faces": {
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 6, 10.5 ],
"to": [ 9, 6.5, 11 ],
"faces": {
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 9.5, 10.5 ],
"to": [ 9, 10, 11 ],
"faces": {
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 10.5, 9.5 ],
"to": [ 9, 11, 10 ],
"faces": {
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
}
},
{
"__comment": "Box9",
"from": [ 7, 10.5, 6 ],
"to": [ 9, 11, 6.5 ],
"faces": {
"down": { "uv": [ 7, 9.5, 9, 10 ], "texture": "#texture" },
"up": { "uv": [ 7, 6, 9, 6.5 ], "texture": "#texture" },
"north": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"south": { "uv": [ 7, 5, 9, 5.5 ], "texture": "#texture" },
"west": { "uv": [ 6, 5, 6.5, 5.5 ], "texture": "#texture" },
"east": { "uv": [ 9.5, 5, 10, 5.5 ], "texture": "#texture" }
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [ 0, -90, 55 ],
"translation": [ 0, 4, 0.5 ],
"scale": [ 0.85, 0.85, 0.85 ]
},
"thirdperson_lefthand": {
"rotation": [ 0, -90, 55 ],
"translation": [ 0, 4, 0.5 ],
"scale": [ 0.85, 0.85, 0.85 ]
},
"firstperson_righthand": {
"rotation": [ 0, -90, 25 ],
"translation": [ 1.13, 3.2, 1.13 ],
"scale": [ 0.68, 0.68, 0.68 ]
},
"firstperson_lefthand": {
"rotation": [ 0, -90, 25 ],
"translation": [ 1.13, 3.2, 1.13 ],
"scale": [ 0.68, 0.68, 0.68 ]
},
"gui": {
"rotation": [ 30, 225, 0 ],
"scale": [ 0.625, 0.625, 0.625 ]
},
"ground": {
"translation": [ 0, 2, 0 ],
"scale": [ 0.5, 0.5, 0.5 ]
},
"fixed": {
"rotation": [ 0, 90, 0 ]
}
}
}

View File

@@ -0,0 +1,9 @@
{
"forge_marker":1,
"textures": {
"particle": "blocks/planks_oak",
"texture": "blocks/planks_oak",
"lever_handle": "blocks/planks_big_oak"
},
"parent": "forgecraft:block/grinder_model"
}