mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-26 08:48:34 +01:00
Finished 1.8.9 port for the most part.
Some stuff to fix yet though.
This commit is contained in:
parent
a5c97e09bd
commit
ed833be289
24 changed files with 456 additions and 408 deletions
|
@ -133,10 +133,10 @@ public class ActuallyAdditions{
|
|||
|
||||
@EventHandler
|
||||
public void missingMapping(FMLMissingMappingsEvent event){
|
||||
for(FMLMissingMappingsEvent.MissingMapping mapping : event.get()){
|
||||
for(FMLMissingMappingsEvent.MissingMapping mapping : event.getAll()){
|
||||
//Ignore removal of foreign paxels
|
||||
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();
|
||||
ModUtil.LOGGER.info("Missing Mapping "+mapping.name+" is getting ignored. This is intentional.");
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -26,7 +26,7 @@ public class BlockFurnaceSolar extends BlockContainerBase{
|
|||
this.setHardness(1.5F);
|
||||
this.setResistance(10.0F);
|
||||
this.setStepSound(soundTypeStone);
|
||||
this.setBlockBounds(0F, 0F, 0F, 1F, 3F/16F, 1F);
|
||||
this.setBlockBounds(0F, 0F, 0F, 1F, 6F/16F, 1F);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -129,17 +129,17 @@ public class BlockSmileyCloud extends BlockContainerBase{
|
|||
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){
|
||||
if(rotation == 1){
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -108,7 +108,6 @@ public class InitBlocks{
|
|||
public static Block blockCrystal;
|
||||
public static Block blockAtomicReconstructor;
|
||||
|
||||
public static Block blockBookletStand;
|
||||
public static Block blockMiner;
|
||||
|
||||
public static Block blockFireworkBox;
|
||||
|
@ -128,7 +127,6 @@ public class InitBlocks{
|
|||
|
||||
blockFireworkBox = new BlockFireworkBox("blockFireworkBox");
|
||||
blockMiner = new BlockMiner("blockMiner");
|
||||
blockBookletStand = new BlockBookletStand("blockBookStand");
|
||||
blockAtomicReconstructor = new BlockAtomicReconstructor("blockAtomicReconstructor");
|
||||
blockCrystal = new BlockCrystal("blockCrystal");
|
||||
blockBlackLotus = new BlockBlackLotus("blockBlackLotus");
|
||||
|
|
|
@ -115,7 +115,6 @@ public abstract class BlockContainerBase extends BlockContainer{
|
|||
entityItem.motionZ = Util.RANDOM.nextGaussian()*factor;
|
||||
world.spawnEntityInWorld(entityItem);
|
||||
}
|
||||
tile.setInventorySlotContents(i, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -73,7 +73,6 @@ public class InitBooklet{
|
|||
//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("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("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());
|
||||
|
|
|
@ -78,16 +78,11 @@ public class BlockCrafting{
|
|||
public static IRecipe recipeRangedCollector;
|
||||
public static IRecipe recipeLaserRelay;
|
||||
public static IRecipe recipeAtomicReconstructor;
|
||||
public static IRecipe recipeBookStand;
|
||||
public static IRecipe recipeMiner;
|
||||
public static IRecipe recipeFireworkBox;
|
||||
|
||||
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
|
||||
if(ConfigCrafting.FIREWORK_BOX.isEnabled()){
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockFireworkBox),
|
||||
|
|
|
@ -320,7 +320,7 @@ public class ItemCrafting{
|
|||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemWaterRemovalRing),
|
||||
"BIB", "IOI", "BIB",
|
||||
'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())));
|
||||
recipeWaterRing = Util.GetRecipes.lastIRecipe();
|
||||
}
|
||||
|
|
|
@ -49,7 +49,6 @@ public class CreativeTab extends CreativeTabs{
|
|||
|
||||
add(InitItems.itemBooklet);
|
||||
add(InitBlocks.blockSmileyCloud);
|
||||
add(InitBlocks.blockBookletStand);
|
||||
|
||||
add(InitBlocks.blockFireworkBox);
|
||||
add(InitBlocks.blockLaserRelay);
|
||||
|
|
|
@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
|||
|
||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||
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.tile.TileEntityBase;
|
||||
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
|
||||
|
@ -148,8 +147,6 @@ public class GuiHandler implements IGuiHandler{
|
|||
return new GuiSmileyCloud(tile, x, y, z, world);
|
||||
case BOOK:
|
||||
return new GuiBooklet(null, true, true);
|
||||
case BOOK_STAND:
|
||||
return new GuiBookletStand(tile);
|
||||
case DIRECTIONAL_BREAKER:
|
||||
return new GuiDirectionalBreaker(entityPlayer.inventory, tile);
|
||||
case RANGED_COLLECTOR:
|
||||
|
@ -186,7 +183,6 @@ public class GuiHandler implements IGuiHandler{
|
|||
XP_SOLIDIFIER,
|
||||
CLOUD,
|
||||
BOOK(false),
|
||||
BOOK_STAND,
|
||||
DIRECTIONAL_BREAKER,
|
||||
RANGED_COLLECTOR,
|
||||
MINER;
|
||||
|
|
|
@ -38,7 +38,7 @@ public class ItemWaterRemovalRing extends ItemEnergy{
|
|||
EntityPlayer player = (EntityPlayer)entity;
|
||||
ItemStack equipped = player.getCurrentEquippedItem();
|
||||
|
||||
int energyUse = 30;
|
||||
int energyUse = 350;
|
||||
if(equipped != null && equipped == stack && this.getEnergyStored(stack) >= energyUse){
|
||||
|
||||
//Setting everything to air
|
||||
|
@ -49,24 +49,23 @@ public class ItemWaterRemovalRing extends ItemEnergy{
|
|||
int theX = MathHelper.floor_double(player.posX+x);
|
||||
int theY = MathHelper.floor_double(player.posY+y);
|
||||
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){
|
||||
this.extractEnergy(stack, energyUse, false);
|
||||
}
|
||||
//Remove Water
|
||||
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){
|
||||
world.setBlockToAir(pos);
|
||||
}
|
||||
//Remove Lava
|
||||
else if((block == Blocks.lava || block == Blocks.flowing_lava) && this.getEnergyStored(stack) >= energyUse*2){
|
||||
world.setBlockToAir(pos);
|
||||
|
||||
if(!player.capabilities.isCreativeMode){
|
||||
this.extractEnergy(stack, energyUse*2, false);
|
||||
}
|
||||
if(!player.capabilities.isCreativeMode){
|
||||
this.extractEnergy(stack, energyUse*2, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -29,6 +29,5 @@ public class PacketHandler{
|
|||
theNetwork.registerMessage(PacketGuiNumber.Handler.class, PacketGuiNumber.class, 1, Side.SERVER);
|
||||
theNetwork.registerMessage(PacketGuiString.Handler.class, PacketGuiString.class, 2, Side.SERVER);
|
||||
theNetwork.registerMessage(PacketParticle.Handler.class, PacketParticle.class, 3, Side.CLIENT);
|
||||
theNetwork.registerMessage(PacketBookletStandButton.Handler.class, PacketBookletStandButton.class, 4, Side.SERVER);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,7 +71,6 @@ public abstract class TileEntityBase extends TileEntity implements ITickable{
|
|||
GameRegistry.registerTileEntity(TileEntityRangedCollector.class, ModUtil.MOD_ID_LOWER+":tileEntityRangedCollector");
|
||||
GameRegistry.registerTileEntity(TileEntityLaserRelay.class, ModUtil.MOD_ID_LOWER+":tileEntityLaserRelay");
|
||||
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(TileEntityFireworkBox.class, ModUtil.MOD_ID_LOWER+":tileEntityFireworkBox");
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -86,7 +86,7 @@ public abstract class TileEntityInventoryBase extends TileEntityBase implements
|
|||
|
||||
@Override
|
||||
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
|
||||
|
|
|
@ -26,7 +26,6 @@ import net.minecraftforge.fml.relauncher.Side;
|
|||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class AssetUtil{
|
||||
|
||||
public static final ResourceLocation GUI_INVENTORY_LOCATION = getGuiLocation("guiInventory");
|
||||
|
|
|
@ -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 }
|
||||
}
|
||||
}
|
|
@ -124,7 +124,6 @@ tile.actuallyadditions.blockCrystalLightBlue.name=Diamatine Crystal Block
|
|||
tile.actuallyadditions.blockCrystalGreen.name=Emeradic Crystal Block
|
||||
tile.actuallyadditions.blockCrystalBlack.name=Void Crystal Block
|
||||
tile.actuallyadditions.blockCrystalWhite.name=Enori Crystal Block
|
||||
tile.actuallyadditions.blockBookStand.name=Manual Stand
|
||||
tile.actuallyadditions.blockMiner.name=Vertical Digger
|
||||
tile.actuallyadditions.blockFireworkBox.name=Firework Box
|
||||
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.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.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.
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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 |
Loading…
Reference in a new issue