Finished 1.8.9 port for the most part.

Some stuff to fix yet though.
This commit is contained in:
Ellpeck 2016-01-10 19:32:21 +01:00
parent a5c97e09bd
commit ed833be289
24 changed files with 456 additions and 408 deletions

View file

@ -133,10 +133,10 @@ public class ActuallyAdditions{
@EventHandler @EventHandler
public void missingMapping(FMLMissingMappingsEvent event){ public void missingMapping(FMLMissingMappingsEvent event){
for(FMLMissingMappingsEvent.MissingMapping mapping : event.get()){ for(FMLMissingMappingsEvent.MissingMapping mapping : event.getAll()){
//Ignore removal of foreign paxels //Ignore removal of foreign paxels
if(mapping.name != null && mapping.name.toLowerCase(Locale.ROOT).startsWith(ModUtil.MOD_ID_LOWER+":")){ if(mapping.name != null && mapping.name.toLowerCase(Locale.ROOT).startsWith(ModUtil.MOD_ID_LOWER+":")){
if(mapping.name.contains("paxel") || mapping.name.contains("itemSpecial")){ if(mapping.name.contains("paxel") || mapping.name.contains("itemSpecial") || mapping.name.contains("blockBookStand")){
mapping.ignore(); mapping.ignore();
ModUtil.LOGGER.info("Missing Mapping "+mapping.name+" is getting ignored. This is intentional."); ModUtil.LOGGER.info("Missing Mapping "+mapping.name+" is getting ignored. This is intentional.");
} }

View file

@ -1,137 +0,0 @@
/*
* This file ("BlockBookletStand.java") is part of the Actually Additions Mod for Minecraft.
* It is created and owned by Ellpeck and distributed
* under the Actually Additions License to be found at
* http://ellpeck.de/actaddlicense/
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
*
* © 2016 Ellpeck
*/
package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.block.IHudDisplay;
import de.ellpeck.actuallyadditions.api.internal.EntrySet;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.items.InitItems;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBookletStand;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
import net.minecraft.profiler.Profiler;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.*;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockBookletStand extends BlockContainerBase implements IHudDisplay{
private static final PropertyInteger META = PropertyInteger.create("meta", 0, 3);
public BlockBookletStand(String name){
super(Material.wood, name);
this.setHarvestLevel("axe", 0);
this.setHardness(1.0F);
this.setResistance(4.0F);
this.setStepSound(soundTypeWood);
float f = 1/16F;
this.setBlockBounds(f, 0F, f, 1F-f, 1F-4*f, 1F-f);
}
@Override
protected PropertyInteger getMetaProperty(){
return META;
}
@Override
public boolean isOpaqueCube(){
return false;
}
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ){
player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.BOOK_STAND.ordinal(), world, pos.getX(), pos.getY(), pos.getZ());
return true;
}
@Override
public EnumRarity getRarity(ItemStack stack){
return EnumRarity.RARE;
}
@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){
PosUtil.setMetadata(pos, world, 2, 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 1, 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 0, 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 3, 2);
}
TileEntityBookletStand tile = (TileEntityBookletStand)world.getTileEntity(pos);
if(tile != null){
//Assign a UUID
if(tile.assignedPlayer == null){
tile.assignedPlayer = player.getName();
tile.markDirty();
tile.sendUpdate();
}
}
super.onBlockPlacedBy(world, pos, state, player, stack);
}
@Override
public TileEntity createNewTileEntity(World world, int i){
return new TileEntityBookletStand();
}
@Override
@SideOnly(Side.CLIENT)
public void displayHud(Minecraft minecraft, EntityPlayer player, ItemStack stack, MovingObjectPosition posHit, Profiler profiler, ScaledResolution resolution){
TileEntity tile = minecraft.theWorld.getTileEntity(posHit.getBlockPos());
if(tile instanceof TileEntityBookletStand){
EntrySet set = ((TileEntityBookletStand)tile).assignedEntry;
String strg1;
String strg2;
if(set.entry == null){
strg1 = "No entry saved! Save one if";
strg2 = "you are the player who placed it!";
}
else if(set.chapter == null){
strg1 = set.entry.getLocalizedName();
strg2 = "Page "+set.pageInIndex;
}
else{
strg1 = set.chapter.getLocalizedName();
strg2 = "Page "+set.page.getID();
AssetUtil.renderStackToGui(set.chapter.getDisplayItemStack() != null ? set.chapter.getDisplayItemStack() : new ItemStack(InitItems.itemBooklet), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2+10, 1F);
}
minecraft.fontRendererObj.drawStringWithShadow(EnumChatFormatting.YELLOW+""+EnumChatFormatting.ITALIC+strg1, resolution.getScaledWidth()/2+25, resolution.getScaledHeight()/2+8, StringUtil.DECIMAL_COLOR_WHITE);
minecraft.fontRendererObj.drawStringWithShadow(EnumChatFormatting.YELLOW+""+EnumChatFormatting.ITALIC+strg2, resolution.getScaledWidth()/2+25, resolution.getScaledHeight()/2+18, StringUtil.DECIMAL_COLOR_WHITE);
}
}
}

View file

@ -26,7 +26,7 @@ public class BlockFurnaceSolar extends BlockContainerBase{
this.setHardness(1.5F); this.setHardness(1.5F);
this.setResistance(10.0F); this.setResistance(10.0F);
this.setStepSound(soundTypeStone); this.setStepSound(soundTypeStone);
this.setBlockBounds(0F, 0F, 0F, 1F, 3F/16F, 1F); this.setBlockBounds(0F, 0F, 0F, 1F, 6F/16F, 1F);
} }
@Override @Override

View file

@ -129,17 +129,17 @@ public class BlockSmileyCloud extends BlockContainerBase{
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){ if(rotation == 0){
PosUtil.setMetadata(pos, world, 2, 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 1, 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 0, 2); PosUtil.setMetadata(pos, world, 0, 2);
} }
if(rotation == 3){ if(rotation == 1){
PosUtil.setMetadata(pos, world, 3, 2); PosUtil.setMetadata(pos, world, 3, 2);
} }
if(rotation == 2){
PosUtil.setMetadata(pos, world, 1, 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 2, 2);
}
super.onBlockPlacedBy(world, pos, state, player, stack); super.onBlockPlacedBy(world, pos, state, player, stack);
} }

View file

@ -108,7 +108,6 @@ public class InitBlocks{
public static Block blockCrystal; public static Block blockCrystal;
public static Block blockAtomicReconstructor; public static Block blockAtomicReconstructor;
public static Block blockBookletStand;
public static Block blockMiner; public static Block blockMiner;
public static Block blockFireworkBox; public static Block blockFireworkBox;
@ -128,7 +127,6 @@ public class InitBlocks{
blockFireworkBox = new BlockFireworkBox("blockFireworkBox"); blockFireworkBox = new BlockFireworkBox("blockFireworkBox");
blockMiner = new BlockMiner("blockMiner"); blockMiner = new BlockMiner("blockMiner");
blockBookletStand = new BlockBookletStand("blockBookStand");
blockAtomicReconstructor = new BlockAtomicReconstructor("blockAtomicReconstructor"); blockAtomicReconstructor = new BlockAtomicReconstructor("blockAtomicReconstructor");
blockCrystal = new BlockCrystal("blockCrystal"); blockCrystal = new BlockCrystal("blockCrystal");
blockBlackLotus = new BlockBlackLotus("blockBlackLotus"); blockBlackLotus = new BlockBlackLotus("blockBlackLotus");

View file

@ -115,7 +115,6 @@ public abstract class BlockContainerBase extends BlockContainer{
entityItem.motionZ = Util.RANDOM.nextGaussian()*factor; entityItem.motionZ = Util.RANDOM.nextGaussian()*factor;
world.spawnEntityInWorld(entityItem); world.spawnEntityInWorld(entityItem);
} }
tile.setInventorySlotContents(i, null);
} }
@Override @Override

View file

@ -1,71 +0,0 @@
/*
* This file ("GuiBookletStand.java") is part of the Actually Additions Mod for Minecraft.
* It is created and owned by Ellpeck and distributed
* under the Actually Additions License to be found at
* http://ellpeck.de/actaddlicense/
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
*
* © 2016 Ellpeck
*/
package de.ellpeck.actuallyadditions.mod.booklet;
import de.ellpeck.actuallyadditions.mod.network.PacketBookletStandButton;
import de.ellpeck.actuallyadditions.mod.network.PacketHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBookletStand;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.Objects;
@SideOnly(Side.CLIENT)
public class GuiBookletStand extends GuiBooklet{
private GuiButton buttonSetPage;
private TileEntityBookletStand theStand;
public GuiBookletStand(TileEntityBase theStand){
super(null, false, false);
this.theStand = (TileEntityBookletStand)theStand;
}
@Override
public void actionPerformed(GuiButton button){
if(button == this.buttonSetPage){
PacketHandler.theNetwork.sendToServer(new PacketBookletStandButton(this.theStand.getPos().getX(), this.theStand.getPos().getY(), this.theStand.getPos().getZ(), this.theStand.getWorld(), Minecraft.getMinecraft().thePlayer, this.currentEntrySet));
}
super.actionPerformed(button);
}
@SuppressWarnings("unchecked")
@Override
public void initGui(){
super.initGui();
//Remove Bookmark Buttons
for(GuiButton bookmarkButton : this.bookmarkButtons){
bookmarkButton.visible = false;
}
this.buttonSetPage = new GuiButton(-100, this.guiLeft+this.xSize+10, this.guiTop+10, 100, 20, "Set Page"){
@Override
public void drawButton(Minecraft mc, int x, int y){
boolean unicodeBefore = mc.fontRendererObj.getUnicodeFlag();
mc.fontRendererObj.setUnicodeFlag(false);
super.drawButton(mc, x, y);
mc.fontRendererObj.setUnicodeFlag(unicodeBefore);
}
};
this.buttonList.add(this.buttonSetPage);
this.buttonSetPage.visible = Objects.equals(Minecraft.getMinecraft().thePlayer.getName(), this.theStand.assignedPlayer);
//Open the pages the book was assigned
BookletUtils.openIndexEntry(this, this.theStand.assignedEntry.entry, this.theStand.assignedEntry.pageInIndex, true);
BookletUtils.openChapter(this, this.theStand.assignedEntry.chapter, this.theStand.assignedEntry.page);
}
}

View file

@ -73,7 +73,6 @@ public class InitBooklet{
//Miscellaneous //Miscellaneous
new BookletChapter("reconstructorLenses", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.LENS.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeLens).setNoText(), new PageReconstructor(3, LensNoneRecipeHandler.recipeColorLens), new PageReconstructor(4, LensNoneRecipeHandler.recipeExplosionLens), new PageReconstructor(5, LensNoneRecipeHandler.recipeDamageLens), new PageReconstructor(6, LensNoneRecipeHandler.recipeSoulSand).setNoText(), new PageReconstructor(7, LensNoneRecipeHandler.recipeLeather).setNoText()).setImportant(); new BookletChapter("reconstructorLenses", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.LENS.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeLens).setNoText(), new PageReconstructor(3, LensNoneRecipeHandler.recipeColorLens), new PageReconstructor(4, LensNoneRecipeHandler.recipeExplosionLens), new PageReconstructor(5, LensNoneRecipeHandler.recipeDamageLens), new PageReconstructor(6, LensNoneRecipeHandler.recipeSoulSand).setNoText(), new PageReconstructor(7, LensNoneRecipeHandler.recipeLeather).setNoText()).setImportant();
new BookletChapter("miscDecorStuffsAndThings", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitBlocks.blockTestifiBucksGreenWall), new PageTextOnly(1), new PageReconstructor(2, LensNoneRecipeHandler.recipeWhiteWall).setNoText(), new PageReconstructor(3, LensNoneRecipeHandler.recipeGreenWall).setNoText()); new BookletChapter("miscDecorStuffsAndThings", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitBlocks.blockTestifiBucksGreenWall), new PageTextOnly(1), new PageReconstructor(2, LensNoneRecipeHandler.recipeWhiteWall).setNoText(), new PageReconstructor(3, LensNoneRecipeHandler.recipeGreenWall).setNoText());
new BookletChapter("bookStand", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitBlocks.blockBookletStand), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeBookStand).setPageStacksWildcard());
new BookletChapter("quartz", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal()), new PageTextOnly(1).setStack(new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.ORE_QUARTZ.ordinal())).addTextReplacement("<lowest>", OreGen.QUARTZ_MIN).addTextReplacement("<highest>", OreGen.QUARTZ_MAX), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal())), new PageCrafting(3, BlockCrafting.recipeQuartzBlock).setNoText(), new PageCrafting(4, BlockCrafting.recipeQuartzPillar).setNoText(), new PageCrafting(5, BlockCrafting.recipeQuartzChiseled).setNoText()); new BookletChapter("quartz", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal()), new PageTextOnly(1).setStack(new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.ORE_QUARTZ.ordinal())).addTextReplacement("<lowest>", OreGen.QUARTZ_MIN).addTextReplacement("<highest>", OreGen.QUARTZ_MAX), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal())), new PageCrafting(3, BlockCrafting.recipeQuartzBlock).setNoText(), new PageCrafting(4, BlockCrafting.recipeQuartzPillar).setNoText(), new PageCrafting(5, BlockCrafting.recipeQuartzChiseled).setNoText());
new BookletChapter("cloud", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitBlocks.blockSmileyCloud), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeSmileyCloud).setNoText().setPageStacksWildcard()).setSpecial().setIncomplete(); new BookletChapter("cloud", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitBlocks.blockSmileyCloud), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeSmileyCloud).setNoText().setPageStacksWildcard()).setSpecial().setIncomplete();
new BookletChapter("coalStuff", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.TINY_COAL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeTinyCoal).setNoText(), new PageCrafting(3, ItemCrafting.recipeTinyChar).setNoText(), new PageCrafting(4, BlockCrafting.recipeBlockChar).setNoText()); new BookletChapter("coalStuff", ActuallyAdditionsAPI.entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.TINY_COAL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeTinyCoal).setNoText(), new PageCrafting(3, ItemCrafting.recipeTinyChar).setNoText(), new PageCrafting(4, BlockCrafting.recipeBlockChar).setNoText());

View file

@ -78,16 +78,11 @@ public class BlockCrafting{
public static IRecipe recipeRangedCollector; public static IRecipe recipeRangedCollector;
public static IRecipe recipeLaserRelay; public static IRecipe recipeLaserRelay;
public static IRecipe recipeAtomicReconstructor; public static IRecipe recipeAtomicReconstructor;
public static IRecipe recipeBookStand;
public static IRecipe recipeMiner; public static IRecipe recipeMiner;
public static IRecipe recipeFireworkBox; public static IRecipe recipeFireworkBox;
public static void init(){ public static void init(){
//Book Stand
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(InitBlocks.blockBookletStand), new ItemStack(InitItems.itemBooklet), "plankWood"));
recipeBookStand = Util.GetRecipes.lastIRecipe();
//Firework Box //Firework Box
if(ConfigCrafting.FIREWORK_BOX.isEnabled()){ if(ConfigCrafting.FIREWORK_BOX.isEnabled()){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockFireworkBox), GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockFireworkBox),

View file

@ -320,7 +320,7 @@ public class ItemCrafting{
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemWaterRemovalRing), GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemWaterRemovalRing),
"BIB", "IOI", "BIB", "BIB", "IOI", "BIB",
'B', new ItemStack(Items.water_bucket), 'B', new ItemStack(Items.water_bucket),
'I', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.IRON.ordinal()), 'I', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.DIAMOND.ordinal()),
'O', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.RING.ordinal()))); 'O', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.RING.ordinal())));
recipeWaterRing = Util.GetRecipes.lastIRecipe(); recipeWaterRing = Util.GetRecipes.lastIRecipe();
} }

View file

@ -49,7 +49,6 @@ public class CreativeTab extends CreativeTabs{
add(InitItems.itemBooklet); add(InitItems.itemBooklet);
add(InitBlocks.blockSmileyCloud); add(InitBlocks.blockSmileyCloud);
add(InitBlocks.blockBookletStand);
add(InitBlocks.blockFireworkBox); add(InitBlocks.blockFireworkBox);
add(InitBlocks.blockLaserRelay); add(InitBlocks.blockLaserRelay);

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.booklet.GuiBooklet; import de.ellpeck.actuallyadditions.mod.booklet.GuiBooklet;
import de.ellpeck.actuallyadditions.mod.booklet.GuiBookletStand;
import de.ellpeck.actuallyadditions.mod.inventory.gui.*; import de.ellpeck.actuallyadditions.mod.inventory.gui.*;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
@ -148,8 +147,6 @@ public class GuiHandler implements IGuiHandler{
return new GuiSmileyCloud(tile, x, y, z, world); return new GuiSmileyCloud(tile, x, y, z, world);
case BOOK: case BOOK:
return new GuiBooklet(null, true, true); return new GuiBooklet(null, true, true);
case BOOK_STAND:
return new GuiBookletStand(tile);
case DIRECTIONAL_BREAKER: case DIRECTIONAL_BREAKER:
return new GuiDirectionalBreaker(entityPlayer.inventory, tile); return new GuiDirectionalBreaker(entityPlayer.inventory, tile);
case RANGED_COLLECTOR: case RANGED_COLLECTOR:
@ -186,7 +183,6 @@ public class GuiHandler implements IGuiHandler{
XP_SOLIDIFIER, XP_SOLIDIFIER,
CLOUD, CLOUD,
BOOK(false), BOOK(false),
BOOK_STAND,
DIRECTIONAL_BREAKER, DIRECTIONAL_BREAKER,
RANGED_COLLECTOR, RANGED_COLLECTOR,
MINER; MINER;

View file

@ -38,7 +38,7 @@ public class ItemWaterRemovalRing extends ItemEnergy{
EntityPlayer player = (EntityPlayer)entity; EntityPlayer player = (EntityPlayer)entity;
ItemStack equipped = player.getCurrentEquippedItem(); ItemStack equipped = player.getCurrentEquippedItem();
int energyUse = 30; int energyUse = 350;
if(equipped != null && equipped == stack && this.getEnergyStored(stack) >= energyUse){ if(equipped != null && equipped == stack && this.getEnergyStored(stack) >= energyUse){
//Setting everything to air //Setting everything to air
@ -49,24 +49,23 @@ public class ItemWaterRemovalRing extends ItemEnergy{
int theX = MathHelper.floor_double(player.posX+x); int theX = MathHelper.floor_double(player.posX+x);
int theY = MathHelper.floor_double(player.posY+y); int theY = MathHelper.floor_double(player.posY+y);
int theZ = MathHelper.floor_double(player.posZ+z); int theZ = MathHelper.floor_double(player.posZ+z);
if(this.getEnergyStored(stack) >= energyUse){
//Remove Water
BlockPos pos = new BlockPos(theX, theY, theZ);
Block block = PosUtil.getBlock(pos, world);
if(block == Blocks.water || block == Blocks.flowing_water){
world.setBlockToAir(pos);
if(!player.capabilities.isCreativeMode){ //Remove Water
this.extractEnergy(stack, energyUse, false); BlockPos pos = new BlockPos(theX, theY, theZ);
} Block block = PosUtil.getBlock(pos, world);
if((block == Blocks.water || block == Blocks.flowing_water) && this.getEnergyStored(stack) >= energyUse){
world.setBlockToAir(pos);
if(!player.capabilities.isCreativeMode){
this.extractEnergy(stack, energyUse, false);
} }
//Remove Lava }
else if(block == Blocks.lava || block == Blocks.flowing_lava){ //Remove Lava
world.setBlockToAir(pos); else if((block == Blocks.lava || block == Blocks.flowing_lava) && this.getEnergyStored(stack) >= energyUse*2){
world.setBlockToAir(pos);
if(!player.capabilities.isCreativeMode){ if(!player.capabilities.isCreativeMode){
this.extractEnergy(stack, energyUse*2, false); this.extractEnergy(stack, energyUse*2, false);
}
} }
} }
} }

View file

@ -1,109 +0,0 @@
/*
* This file ("PacketBookletStandButton.java") is part of the Actually Additions Mod for Minecraft.
* It is created and owned by Ellpeck and distributed
* under the Actually Additions License to be found at
* http://ellpeck.de/actaddlicense/
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
*
* © 2016 Ellpeck
*/
package de.ellpeck.actuallyadditions.mod.network;
import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
import de.ellpeck.actuallyadditions.api.internal.EntrySet;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBookletStand;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import java.util.Objects;
public class PacketBookletStandButton implements IMessage{
private int tileX;
private int tileY;
private int tileZ;
private int worldID;
private int playerID;
private int entryID;
private int chapterID;
private int pageID;
private int pageInIndex;
@SuppressWarnings("unused")
public PacketBookletStandButton(){
}
public PacketBookletStandButton(int x, int y, int z, World world, EntityPlayer player, EntrySet set){
this.tileX = x;
this.tileY = y;
this.tileZ = z;
this.worldID = world.provider.getDimensionId();
this.playerID = player.getEntityId();
this.entryID = set.entry == null ? -1 : ActuallyAdditionsAPI.bookletEntries.indexOf(set.entry);
this.chapterID = set.entry == null || set.chapter == null ? -1 : set.entry.getChapters().indexOf(set.chapter);
this.pageID = set.page == null ? -1 : set.page.getID();
this.pageInIndex = set.pageInIndex;
}
@Override
public void fromBytes(ByteBuf buf){
this.tileX = buf.readInt();
this.tileY = buf.readInt();
this.tileZ = buf.readInt();
this.worldID = buf.readInt();
this.playerID = buf.readInt();
this.chapterID = buf.readInt();
this.pageID = buf.readInt();
this.entryID = buf.readInt();
this.pageInIndex = buf.readInt();
}
@Override
public void toBytes(ByteBuf buf){
buf.writeInt(this.tileX);
buf.writeInt(this.tileY);
buf.writeInt(this.tileZ);
buf.writeInt(this.worldID);
buf.writeInt(this.playerID);
buf.writeInt(this.chapterID);
buf.writeInt(this.pageID);
buf.writeInt(this.entryID);
buf.writeInt(this.pageInIndex);
}
public static class Handler implements IMessageHandler<PacketBookletStandButton, IMessage>{
@Override
public IMessage onMessage(PacketBookletStandButton message, MessageContext ctx){
World world = DimensionManager.getWorld(message.worldID);
TileEntity tile = world.getTileEntity(new BlockPos(message.tileX, message.tileY, message.tileZ));
EntityPlayer player = (EntityPlayer)world.getEntityByID(message.playerID);
if(tile instanceof TileEntityBookletStand){
if(Objects.equals(player.getName(), ((TileEntityBookletStand)tile).assignedPlayer)){
EntrySet theSet = ((TileEntityBookletStand)tile).assignedEntry;
theSet.entry = message.entryID == -1 ? null : ActuallyAdditionsAPI.bookletEntries.get(message.entryID);
theSet.chapter = message.chapterID == -1 || message.entryID == -1 || theSet.entry.getChapters().size() <= message.chapterID ? null : theSet.entry.getChapters().get(message.chapterID);
theSet.page = message.chapterID == -1 || theSet.chapter == null || theSet.chapter.getPages().length <= message.pageID-1 ? null : theSet.chapter.getPages()[message.pageID-1];
theSet.pageInIndex = message.pageInIndex;
((TileEntityBookletStand)tile).sendUpdate();
}
}
return null;
}
}
}

View file

@ -29,6 +29,5 @@ public class PacketHandler{
theNetwork.registerMessage(PacketGuiNumber.Handler.class, PacketGuiNumber.class, 1, Side.SERVER); theNetwork.registerMessage(PacketGuiNumber.Handler.class, PacketGuiNumber.class, 1, Side.SERVER);
theNetwork.registerMessage(PacketGuiString.Handler.class, PacketGuiString.class, 2, Side.SERVER); theNetwork.registerMessage(PacketGuiString.Handler.class, PacketGuiString.class, 2, Side.SERVER);
theNetwork.registerMessage(PacketParticle.Handler.class, PacketParticle.class, 3, Side.CLIENT); theNetwork.registerMessage(PacketParticle.Handler.class, PacketParticle.class, 3, Side.CLIENT);
theNetwork.registerMessage(PacketBookletStandButton.Handler.class, PacketBookletStandButton.class, 4, Side.SERVER);
} }
} }

View file

@ -71,7 +71,6 @@ public abstract class TileEntityBase extends TileEntity implements ITickable{
GameRegistry.registerTileEntity(TileEntityRangedCollector.class, ModUtil.MOD_ID_LOWER+":tileEntityRangedCollector"); GameRegistry.registerTileEntity(TileEntityRangedCollector.class, ModUtil.MOD_ID_LOWER+":tileEntityRangedCollector");
GameRegistry.registerTileEntity(TileEntityLaserRelay.class, ModUtil.MOD_ID_LOWER+":tileEntityLaserRelay"); GameRegistry.registerTileEntity(TileEntityLaserRelay.class, ModUtil.MOD_ID_LOWER+":tileEntityLaserRelay");
GameRegistry.registerTileEntity(TileEntityAtomicReconstructor.class, ModUtil.MOD_ID_LOWER+":tileEntityAtomicReconstructor"); GameRegistry.registerTileEntity(TileEntityAtomicReconstructor.class, ModUtil.MOD_ID_LOWER+":tileEntityAtomicReconstructor");
GameRegistry.registerTileEntity(TileEntityBookletStand.class, ModUtil.MOD_ID_LOWER+":tileEntityBookletStand");
GameRegistry.registerTileEntity(TileEntityMiner.class, ModUtil.MOD_ID_LOWER+":tileEntityMiner"); GameRegistry.registerTileEntity(TileEntityMiner.class, ModUtil.MOD_ID_LOWER+":tileEntityMiner");
GameRegistry.registerTileEntity(TileEntityFireworkBox.class, ModUtil.MOD_ID_LOWER+":tileEntityFireworkBox"); GameRegistry.registerTileEntity(TileEntityFireworkBox.class, ModUtil.MOD_ID_LOWER+":tileEntityFireworkBox");
} }

View file

@ -1,41 +0,0 @@
/*
* This file ("TileEntityBookletStand.java") is part of the Actually Additions Mod for Minecraft.
* It is created and owned by Ellpeck and distributed
* under the Actually Additions License to be found at
* http://ellpeck.de/actaddlicense/
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
*
* © 2016 Ellpeck
*/
package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.api.internal.EntrySet;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityBookletStand extends TileEntityBase{
public EntrySet assignedEntry = new EntrySet(null);
public String assignedPlayer;
@Override
public void writeSyncableNBT(NBTTagCompound compound, boolean isForSync){
super.writeSyncableNBT(compound, isForSync);
compound.setTag("SavedEntry", this.assignedEntry.writeToNBT());
if(this.assignedPlayer != null){
compound.setString("Player", this.assignedPlayer);
}
}
@Override
public void readSyncableNBT(NBTTagCompound compound, boolean isForSync){
super.readSyncableNBT(compound, isForSync);
this.assignedEntry = EntrySet.readFromNBT(compound.getCompoundTag("SavedEntry"));
String player = compound.getString("Player");
if(player != null){
this.assignedPlayer = player;
}
}
}

View file

@ -86,7 +86,7 @@ public abstract class TileEntityInventoryBase extends TileEntityBase implements
@Override @Override
public boolean isUseableByPlayer(EntityPlayer player){ public boolean isUseableByPlayer(EntityPlayer player){
return player.getDistanceSq(this.getPos().getX()+0.5D, this.pos.getY()+0.5D, this.pos.getZ()+0.5D) <= 64; return player.getDistanceSq(this.getPos().getX()+0.5D, this.pos.getY()+0.5D, this.pos.getZ()+0.5D) <= 64 && !this.isInvalid() && this.worldObj.getTileEntity(this.pos) == this;
} }
@Override @Override

View file

@ -26,7 +26,6 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
public class AssetUtil{ public class AssetUtil{
public static final ResourceLocation GUI_INVENTORY_LOCATION = getGuiLocation("guiInventory"); public static final ResourceLocation GUI_INVENTORY_LOCATION = getGuiLocation("guiInventory");

View file

@ -0,0 +1,8 @@
{
"variants": {
"meta=0": { "model": "actuallyadditions:blockSmileyCloud", "y": 0 },
"meta=1": { "model": "actuallyadditions:blockSmileyCloud", "y": 180 },
"meta=2": { "model": "actuallyadditions:blockSmileyCloud", "y": -90 },
"meta=3": { "model": "actuallyadditions:blockSmileyCloud", "y": 90 }
}
}

View file

@ -124,7 +124,6 @@ tile.actuallyadditions.blockCrystalLightBlue.name=Diamatine Crystal Block
tile.actuallyadditions.blockCrystalGreen.name=Emeradic Crystal Block tile.actuallyadditions.blockCrystalGreen.name=Emeradic Crystal Block
tile.actuallyadditions.blockCrystalBlack.name=Void Crystal Block tile.actuallyadditions.blockCrystalBlack.name=Void Crystal Block
tile.actuallyadditions.blockCrystalWhite.name=Enori Crystal Block tile.actuallyadditions.blockCrystalWhite.name=Enori Crystal Block
tile.actuallyadditions.blockBookStand.name=Manual Stand
tile.actuallyadditions.blockMiner.name=Vertical Digger tile.actuallyadditions.blockMiner.name=Vertical Digger
tile.actuallyadditions.blockFireworkBox.name=Firework Box tile.actuallyadditions.blockFireworkBox.name=Firework Box
tile.actuallyadditions.blockQuartzWall.name=Black Quartz Wall tile.actuallyadditions.blockQuartzWall.name=Black Quartz Wall
@ -717,10 +716,6 @@ booklet.actuallyadditions.chapter.bookTutorial.text.1=The <item>Actually Additio
booklet.actuallyadditions.chapter.bookTutorial.text.2=<imp>The Buttons at the top right<r> lead you to the Achievements or Configuration Screen. When looking at a chapter that is somehow connected to an achievement, a speech bubble that you can hover over to see the Achievement in question will point to the Achievements Button. <n><imp>The Buttons on the top left<r> can be used to be directed to various Webpages that have to do with the mod. <n>When an update is available, a button to download it will also show up on the top left. booklet.actuallyadditions.chapter.bookTutorial.text.2=<imp>The Buttons at the top right<r> lead you to the Achievements or Configuration Screen. When looking at a chapter that is somehow connected to an achievement, a speech bubble that you can hover over to see the Achievement in question will point to the Achievements Button. <n><imp>The Buttons on the top left<r> can be used to be directed to various Webpages that have to do with the mod. <n>When an update is available, a button to download it will also show up on the top left.
booklet.actuallyadditions.chapter.bookTutorial.text.3=If you, for some reason, want to craft this book again, just take a <item>piece of paper<r> and a <item>canola seed<r> which you can find randomly generated and craft them together! booklet.actuallyadditions.chapter.bookTutorial.text.3=If you, for some reason, want to craft this book again, just take a <item>piece of paper<r> and a <item>canola seed<r> which you can find randomly generated and craft them together!
booklet.actuallyadditions.chapter.bookStand.name=Manual Stand
booklet.actuallyadditions.chapter.bookStand.text.1=The <item>Manual Stand<r> is a block that is supposed to mainly be used on <imp>Servers<r>. <n>You can, provided you are the person who <imp>placed it down<r>, set a page in the GUI that will <imp>open when someone else accesses it<r> by pressing the "Set Page"-button while being on the desired page. <n>The Manual Stand <imp>does not save<r> pages another player navigated to, meaing re-accessing the Stand will cause it to always <imp>end up on the page speficied<r> by the placer.
booklet.actuallyadditions.chapter.bookStand.text.2=<n><n><n><i>Stand on it
booklet.actuallyadditions.chapter.reconstructorLenses.name=Reconstructor Lenses & Misc booklet.actuallyadditions.chapter.reconstructorLenses.name=Reconstructor Lenses & Misc
booklet.actuallyadditions.chapter.reconstructorLenses.text.1=The <item>Atomic Reconstructor<r>, by default, can only convert some blocks. <n>This can be changed, however, with <item>Lenses<r>. They can be, once crafted, attached to the Reconstructor via <imp>right-clicking<r> the Reconstructor with them in hand. To remove them, right-click it with an empty hand. <n><item>Lenses<r> have lots of different features and uses, as you can see on <imp>the following pages<r>. <n>However, there is also some <imp>other useful recipes<r> to be found there too. booklet.actuallyadditions.chapter.reconstructorLenses.text.1=The <item>Atomic Reconstructor<r>, by default, can only convert some blocks. <n>This can be changed, however, with <item>Lenses<r>. They can be, once crafted, attached to the Reconstructor via <imp>right-clicking<r> the Reconstructor with them in hand. To remove them, right-click it with an empty hand. <n><item>Lenses<r> have lots of different features and uses, as you can see on <imp>the following pages<r>. <n>However, there is also some <imp>other useful recipes<r> to be found there too.
booklet.actuallyadditions.chapter.reconstructorLenses.text.3=The <item>Lens of Color<r> changes the color of <imp>Stained Glass and Panes, Stained Clay, Carpetet, Dye, Lamps, Wool<r> in its sight. <n>Contrary to using no lens, it goes <imp>through blocks<r> and only converts blocks it touches. booklet.actuallyadditions.chapter.reconstructorLenses.text.3=The <item>Lens of Color<r> changes the color of <imp>Stained Glass and Panes, Stained Clay, Carpetet, Dye, Lamps, Wool<r> in its sight. <n>Contrary to using no lens, it goes <imp>through blocks<r> and only converts blocks it touches.

View file

@ -0,0 +1,411 @@
{
"ambientocclusion": false,
"textures": {
"particle": "actuallyadditions:blocks/models/modelSmileyCloud",
"smileycloud": "actuallyadditions:blocks/models/modelSmileyCloud"
},
"elements": [
{
"from": [2,0,3],
"to": [14,10,13],
"faces": {
"up": {
"uv": [5,0.75,8,3.25],
"texture": "#smileycloud"
},
"down": {
"uv": [3.5,1.5,6.5,4],
"texture": "#smileycloud"
},
"west": {
"uv": [0,2.5,2.5,5],
"texture": "#smileycloud"
},
"east": {
"uv": [8.5,2.5,11,5],
"texture": "#smileycloud"
},
"north": {
"uv": [2.75,0.25,5.75,2.75],
"texture": "#smileycloud"
},
"south": {
"uv": [5.25,0.25,8.25,2.75],
"texture": "#smileycloud"
}
}
},
{
"from": [1,1,4],
"to": [15,9,12],
"faces": {
"up": {
"uv": [6.5,2,7,4],
"texture": "#smileycloud"
},
"down": {
"uv": [1.25,2.75,1.75,4.75],
"texture": "#smileycloud"
},
"west": {
"uv": [13.75,2,15.75,4],
"texture": "#smileycloud"
},
"east": {
"uv": [11.25,2,13.25,4],
"texture": "#smileycloud"
},
"north": {
"uv": [13.75,2.75,14.25,4.75],
"texture": "#smileycloud"
},
"south": {
"uv": [6.25,1.5,6.75,3.5],
"texture": "#smileycloud"
}
}
},
{
"from": [0,2,5],
"to": [16,8,11],
"faces": {
"up": {
"uv": [12.75,2.25,13.25,3.75],
"texture": "#smileycloud"
},
"down": {
"uv": [13.5,2.5,14,4],
"texture": "#smileycloud"
},
"west": {
"uv": [13.25,4.25,14.75,5.75],
"texture": "#smileycloud"
},
"east": {
"uv": [11.5,4,13,5.5],
"texture": "#smileycloud"
},
"north": {
"uv": [13.75,3,14.25,4.5],
"texture": "#smileycloud"
},
"south": {
"uv": [6.25,1.75,6.75,3.25],
"texture": "#smileycloud"
}
}
},
{
"from": [3,9,4],
"to": [13,11,12],
"faces": {
"up": {
"uv": [0.25,2.75,2.75,4.75],
"texture": "#smileycloud"
},
"west": {
"uv": [4,3,6,3.5],
"texture": "#smileycloud"
},
"east": {
"uv": [0.75,10,2.75,10.5],
"texture": "#smileycloud"
},
"north": {
"uv": [8.75,7.5,11.25,8],
"texture": "#smileycloud"
},
"south": {
"uv": [7,5.75,9.5,6.25],
"texture": "#smileycloud"
}
}
},
{
"from": [4,10,5],
"to": [12,12,11],
"faces": {
"up": {
"uv": [8.75,7,10.75,8.5],
"texture": "#smileycloud"
},
"west": {
"uv": [8,5.5,9.5,6],
"texture": "#smileycloud"
},
"east": {
"uv": [7,5.5,8.5,6],
"texture": "#smileycloud"
},
"north": {
"uv": [12,5,14.25,5.5],
"texture": "#smileycloud"
},
"south": {
"uv": [3,3.25,5,3.75],
"texture": "#smileycloud"
}
}
},
{
"from": [3,1,12],
"to": [13,9,14],
"faces": {
"up": {
"uv": [11.75,3.75,14.25,4.25],
"texture": "#smileycloud"
},
"down": {
"uv": [7.75,3.25,10.25,3.75],
"texture": "#smileycloud"
},
"west": {
"uv": [13.25,2.5,13.75,4.5],
"texture": "#smileycloud"
},
"east": {
"uv": [6.75,2,7.25,4],
"texture": "#smileycloud"
},
"south": {
"uv": [3.75,1,6.25,3],
"texture": "#smileycloud"
}
}
},
{
"from": [4,2,13],
"to": [12,8,15],
"faces": {
"up": {
"uv": [2,6.25,4,6.75],
"texture": "#smileycloud"
},
"down": {
"uv": [9.5,7.75,11.5,8.25],
"texture": "#smileycloud"
},
"west": {
"uv": [14.75,2.25,15.25,3.75],
"texture": "#smileycloud"
},
"east": {
"uv": [13.25,2.5,13.75,4],
"texture": "#smileycloud"
},
"south": {
"uv": [3,5.5,5,7],
"texture": "#smileycloud"
}
}
},
{
"from": [5,3,14],
"to": [11,7,16],
"faces": {
"up": {
"uv": [7.25,5.5,8.75,6],
"texture": "#smileycloud"
},
"down": {
"uv": [12.75,3,14.25,3.5],
"texture": "#smileycloud"
},
"west": {
"uv": [8.25,7.25,8.75,8.25],
"texture": "#smileycloud"
},
"east": {
"uv": [10.75,7,11.25,8],
"texture": "#smileycloud"
},
"south": {
"uv": [12.5,2.75,14,3.75],
"texture": "#smileycloud"
}
}
},
{
"from": [5,3,2.5],
"to": [11,4,4.5],
"faces": {
"up": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"down": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"west": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"east": {
"uv": [4.5,10.25,4.75,10.5],
"texture": "#smileycloud"
},
"north": {
"uv": [4.25,10.25,4.75,10.5],
"texture": "#smileycloud"
}
}
},
{
"from": [11,4,2.5],
"to": [12,5,4.5],
"faces": {
"up": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"down": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"west": {
"uv": [4.5,10.25,4.75,10.5],
"texture": "#smileycloud"
},
"east": {
"uv": [4.5,10.25,4.75,10.5],
"texture": "#smileycloud"
},
"north": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
}
}
},
{
"from": [4,4,2.5],
"to": [5,5,4.5],
"faces": {
"up": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"down": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"west": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"east": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"north": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
}
}
},
{
"from": [9,7,2.75],
"to": [11,9,3.75],
"faces": {
"up": {
"uv": [7.75,9.25,8.25,9.5],
"texture": "#smileycloud"
},
"down": {
"uv": [7.75,9.5,8.25,9.75],
"texture": "#smileycloud"
},
"west": {
"uv": [7.75,9.25,8,9.75],
"texture": "#smileycloud"
},
"east": {
"uv": [7.75,9.25,8,9.75],
"texture": "#smileycloud"
},
"north": {
"uv": [7.75,9.25,8.25,9.75],
"texture": "#smileycloud"
}
}
},
{
"from": [5,7,2.75],
"to": [7,9,3.75],
"faces": {
"up": {
"uv": [7.75,9.5,8.25,9.75],
"texture": "#smileycloud"
},
"down": {
"uv": [7.75,9.5,8.25,9.75],
"texture": "#smileycloud"
},
"west": {
"uv": [8,9.25,8.25,9.75],
"texture": "#smileycloud"
},
"east": {
"uv": [7.75,9.25,8,9.75],
"texture": "#smileycloud"
},
"north": {
"uv": [7.75,9.25,8.25,9.75],
"texture": "#smileycloud"
}
}
},
{
"from": [9.5,7.5,2.5],
"to": [10.5,8.5,3.5],
"faces": {
"up": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"down": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"west": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"east": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"north": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
}
}
},
{
"from": [5.5,7.5,2.5],
"to": [6.5,8.5,3.5],
"faces": {
"up": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"down": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"west": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"east": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
},
"north": {
"uv": [4.25,10.25,4.5,10.5],
"texture": "#smileycloud"
}
}
}
]
}

View file

@ -0,0 +1,10 @@
{
"parent": "actuallyadditions:block/blockSmileyCloud",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 575 B