mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-29 18:28: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
|
@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.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
//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());
|
||||||
|
|
|
@ -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),
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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,11 +49,11 @@ 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
|
//Remove Water
|
||||||
BlockPos pos = new BlockPos(theX, theY, theZ);
|
BlockPos pos = new BlockPos(theX, theY, theZ);
|
||||||
Block block = PosUtil.getBlock(pos, world);
|
Block block = PosUtil.getBlock(pos, world);
|
||||||
if(block == Blocks.water || block == Blocks.flowing_water){
|
if((block == Blocks.water || block == Blocks.flowing_water) && this.getEnergyStored(stack) >= energyUse){
|
||||||
world.setBlockToAir(pos);
|
world.setBlockToAir(pos);
|
||||||
|
|
||||||
if(!player.capabilities.isCreativeMode){
|
if(!player.capabilities.isCreativeMode){
|
||||||
|
@ -61,7 +61,7 @@ public class ItemWaterRemovalRing extends ItemEnergy{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Remove Lava
|
//Remove Lava
|
||||||
else if(block == Blocks.lava || block == Blocks.flowing_lava){
|
else if((block == Blocks.lava || block == Blocks.flowing_lava) && this.getEnergyStored(stack) >= energyUse*2){
|
||||||
world.setBlockToAir(pos);
|
world.setBlockToAir(pos);
|
||||||
|
|
||||||
if(!player.capabilities.isCreativeMode){
|
if(!player.capabilities.isCreativeMode){
|
||||||
|
@ -73,7 +73,6 @@ public class ItemWaterRemovalRing extends ItemEnergy{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnumRarity getRarity(ItemStack stack){
|
public EnumRarity getRarity(ItemStack stack){
|
||||||
|
|
|
@ -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(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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
@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
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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.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.
|
||||||
|
|
|
@ -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