mirror of
https://github.com/GTNewHorizons/ForestryMC.git
synced 2026-11-14 09:04:42 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a17580e04d | ||
|
|
2031fdc37c | ||
|
|
4b310d407f | ||
|
|
f2e85073d3 | ||
|
|
0bd9a7978a | ||
|
|
e47fc90433 | ||
|
|
452064ef1d | ||
|
|
59c8c36520 | ||
|
|
ea1c4edae4 | ||
|
|
4c46626cdb | ||
|
|
d6fa8d8b74 | ||
|
|
704861b666 | ||
|
|
db25dcce48 | ||
|
|
4b364a93db | ||
|
|
a217884480 | ||
|
|
90f7c36a1e |
No files matched your search
@@ -3,9 +3,9 @@ name: Build and test
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ master, main ]
|
||||
branches: [ master, main, release/** ]
|
||||
push:
|
||||
branches: [ master, main ]
|
||||
branches: [ master, main, release/** ]
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
How to submit a bug report to Forestry
|
||||
====================================
|
||||
Please make sure the bug has not already been reported by [searching the issues](https://github.com/ForestryMC/ForestryMC/issues?q=is%3Aissue).
|
||||
|
||||
If you can, see if the bug still happens with the latest unstable build.
|
||||
[The latest unstable builds are available here](http://jenkins.ic2.player.to/job/Forestry_Dev/)
|
||||
|
||||
For crashes, you must post a link to the full crash report.
|
||||
[gist.github.com](gist.github.com) or [pastebin.com](www.pastebin.com) are good places to upload them.
|
||||
Full crash reports are located in [the minecraft data folder](http://hopper.minecraft.net/help/finding-minecraft-data-folder/), in "crash-reports".
|
||||
|
||||
Thank you for reporting bugs!
|
||||
|
||||
How to contribute to Forestry
|
||||
====================================
|
||||
|
||||
### Contributor License Agreement
|
||||
|
||||
Before pull requests can be accepted, the contributor needs to sign a contributor license agreement. (Essentially giving a license for using his code and/or media and for re-licensing it, for details read the agreement linked below.)
|
||||
|
||||
### How do I sign?
|
||||
|
||||
To keep the hassle for everyone involved to a minimum, Forestry uses CLAHub to manage the agreements. To get started, <a href="https://www.clahub.com/agreements/ForestryMC/ForestryMC">sign the Contributor License Agreement</a>.
|
||||
|
||||
### Why is this needed?
|
||||
|
||||
Without CLAs it at some point becomes essentially impossible to change the license of a project which accepts contributions from third parties. Without an explicit agreement every contributor would still own the copyright to his code. So as long as it (or parts of it) remain in the code base, he would have to agree to every license change. If enough time has passed, there may be dozens, perhaps even hundreds of contributors involved and it will be very hard to track down each and every one of them and get them to agree on a new license.
|
||||
|
||||
This would make it impossible to change the license to a more permissive one at a later date, so the code would be locked into CC BY-NC-ND 3.0 until it passes into the public domain about a hundred years from now. This situation is to be avoided and that’s why you are being bothered with this CLA.
|
||||
+1
-1
@@ -4,7 +4,7 @@ dependencies {
|
||||
api("com.github.GTNewHorizons:GTNHLib:0.9.54:dev")
|
||||
api('curse.maven:cofh-lib-220333:2388748')
|
||||
compileOnlyApi('com.github.GTNewHorizons:Angelica:2.1.19:api')
|
||||
devOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughItems:2.8.93-GTNH:dev')
|
||||
devOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughItems:2.8.107-GTNH:dev')
|
||||
compileOnly('com.github.GTNewHorizons:inventory-tweaks:1.7.1:api')
|
||||
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.57:api')
|
||||
compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev')
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// Add any additional repositiroes for your dependencies here
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
}
|
||||
@@ -25,19 +25,6 @@ public interface IArmorApiarist {
|
||||
*/
|
||||
boolean protectEntity(EntityLivingBase entity, ItemStack armor, String cause, boolean doProtect);
|
||||
|
||||
/**
|
||||
* Called to determine how many pieces an armor "counts for". For instance, if this returns 4, the single piece will
|
||||
* act as full protection.
|
||||
*
|
||||
* @param entity Entity being attacked
|
||||
* @param armor Armor item
|
||||
* @param cause Optional cause of attack, such as a bee effect identifier
|
||||
* @return Amount of effective protected slots
|
||||
*/
|
||||
default int getProtectionCount(EntityLivingBase entity, ItemStack armor, String cause) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the apiarist's armor acts as protection against an attack.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package forestry.api.apiculture;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IArmorApiaristMulti extends IArmorApiarist {
|
||||
|
||||
/**
|
||||
* Called to determine how many pieces an armor "counts for". For instance, if this returns 4, the single piece will
|
||||
* act as full protection.
|
||||
*
|
||||
* @param entity Entity being attacked
|
||||
* @param armor Armor item
|
||||
* @param cause Optional cause of attack, such as a bee effect identifier
|
||||
* @return Amount of effective protected slots
|
||||
*/
|
||||
default int getProtectionCount(EntityLivingBase entity, ItemStack armor, String cause) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -10,10 +10,12 @@ package forestry.apiculture;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import forestry.api.apiculture.IArmorApiarist;
|
||||
import forestry.api.apiculture.IArmorApiaristHelper;
|
||||
import forestry.api.apiculture.IArmorApiaristMulti;
|
||||
|
||||
public class ArmorApiaristHelper implements IArmorApiaristHelper {
|
||||
|
||||
@@ -40,7 +42,9 @@ public class ArmorApiaristHelper implements IArmorApiaristHelper {
|
||||
for (int i = 1; i <= 4; i++) {
|
||||
ItemStack armorItem = entity.getEquipmentInSlot(i);
|
||||
if (isArmorApiarist(armorItem, entity, cause, doProtect)) {
|
||||
count += ((IArmorApiarist) armorItem.getItem()).getProtectionCount(entity, armorItem, cause);
|
||||
Item item = armorItem.getItem();
|
||||
if (item instanceof IArmorApiaristMulti am) count += am.getProtectionCount(entity, armorItem, cause);
|
||||
else count++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -111,6 +111,14 @@ public class AlvearyController extends RectangularMultiblockControllerBase
|
||||
this.readFromNBT(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detachBlock(IMultiblockComponent part, boolean chunkUnloading) {
|
||||
if (!chunkUnloading) {
|
||||
inventory.dumpInventoryIntoWorld(this.worldObj, part.getCoordinates());
|
||||
}
|
||||
super.detachBlock(part, chunkUnloading);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBlockAdded(IMultiblockComponent newPart) {
|
||||
if (newPart instanceof IAlvearyComponent) {
|
||||
@@ -159,8 +167,6 @@ public class AlvearyController extends RectangularMultiblockControllerBase
|
||||
activeComponents.remove(oldPart);
|
||||
}
|
||||
}
|
||||
|
||||
inventory.dumpInventoryIntoWorld(this.worldObj, oldPart.getCoordinates());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,8 +16,8 @@ import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.particle.EffectRenderer;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@@ -72,7 +72,7 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return IconProviderWood.getPlankIcon(EnumWoodType.LARCH);
|
||||
return IconProviderWood.getPlankIcon(EnumWoodType.VALUES[meta]);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,7 +84,8 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
|
||||
|
||||
@Override
|
||||
protected ItemStack createStackedBlock(int meta) {
|
||||
return new ItemStack(Blocks.wooden_slab, 2, meta & 7);
|
||||
Item item = Item.getItemFromBlock(this);
|
||||
return item != null ? new ItemStack(item, 2, 0) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -107,6 +108,18 @@ public class BlockSlab extends net.minecraft.block.BlockSlab implements IWoodTyp
|
||||
return new TileWood();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) {
|
||||
// Special case for double slabs placed by building mods (e.g., MatterManipulator)
|
||||
if (stack == null) return;
|
||||
int damage = stack.getItemDamage();
|
||||
if (damage < 0 || damage >= EnumWoodType.VALUES.length) return;
|
||||
TileWood tile = TileWood.getWoodTile(world, x, y, z);
|
||||
if (tile != null) {
|
||||
tile.setWoodType(EnumWoodType.VALUES[damage]);
|
||||
}
|
||||
}
|
||||
|
||||
/* PROPERTIES */
|
||||
@Override
|
||||
public final ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) {
|
||||
|
||||
@@ -202,7 +202,8 @@ public abstract class Genome implements IGenome {
|
||||
private static IChromosome[] getChromosomes(NBTTagCompound genomeNBT, ISpeciesRoot speciesRoot) {
|
||||
|
||||
NBTTagList chromosomesNBT = genomeNBT.getTagList("Chromosomes", 10);
|
||||
IChromosome[] chromosomes = new IChromosome[speciesRoot.getDefaultTemplate().length];
|
||||
IAllele[] defaultTemplate = speciesRoot.getDefaultTemplate();
|
||||
IChromosome[] chromosomes = new IChromosome[defaultTemplate.length];
|
||||
|
||||
for (int i = 0; i < chromosomesNBT.tagCount(); i++) {
|
||||
NBTTagCompound chromosomeNBT = chromosomesNBT.getCompoundTagAt(i);
|
||||
@@ -213,7 +214,7 @@ public abstract class Genome implements IGenome {
|
||||
chromosomes[chromosomeOrdinal] = chromosome;
|
||||
|
||||
if (Config.clearInvalidChromosomes) {
|
||||
IAllele template = speciesRoot.getDefaultTemplate()[chromosomeOrdinal];
|
||||
IAllele template = defaultTemplate[chromosomeOrdinal];
|
||||
Class<? extends IAllele> chromosomeClass = speciesRoot.getKaryotype()[chromosomeOrdinal]
|
||||
.getAlleleClass();
|
||||
if (chromosome.overrideInvalidAlleles(template, chromosomeClass)) {
|
||||
|
||||
@@ -32,6 +32,10 @@ public class MutationConditionRequiresResource implements IMutationCondition {
|
||||
blockRequired = new ItemStack(block, 1, meta);
|
||||
}
|
||||
|
||||
public ItemStack getBlockRequired() {
|
||||
return blockRequired.copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0,
|
||||
IGenome genome1, IClimateProvider climate) {
|
||||
|
||||
+4
@@ -39,6 +39,10 @@ public class MutationConditionRequiresResourceOreDict implements IMutationCondit
|
||||
}
|
||||
}
|
||||
|
||||
public int getOreDictId() {
|
||||
return oreDictId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0,
|
||||
IGenome genome1, IClimateProvider climate) {
|
||||
|
||||
@@ -27,6 +27,7 @@ public class GuiUtil {
|
||||
|
||||
public static void drawItemStack(GuiForestry<?, ?> gui, ItemStack stack, int xPos, int yPos) {
|
||||
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
RenderHelper.enableGUIStandardItemLighting();
|
||||
|
||||
RenderItem itemRender = GuiForestry.getItemRenderer();
|
||||
|
||||
@@ -87,7 +87,7 @@ public abstract class ItemInventory implements IInventory, IFilterSlotDelegate {
|
||||
public boolean isParentItemEquipped() {
|
||||
return switch (location.type()) {
|
||||
case HELD_BY_PLAYER, UNKNOWN -> isSameItemInventory(player.getCurrentEquippedItem(), parent);
|
||||
case PLAYER_INVENTORY -> true;
|
||||
case PLAYER_INVENTORY -> isSameItemInventory(player.inventory.getStackInSlot(location.slotIdx()), parent);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -95,6 +95,10 @@ public abstract class ItemInventory implements IInventory, IFilterSlotDelegate {
|
||||
return player;
|
||||
}
|
||||
|
||||
public ItemLocation getLocation() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public boolean isParentItemInventory(ItemStack itemStack) {
|
||||
ItemStack parent = getParent();
|
||||
return isSameItemInventory(parent, itemStack);
|
||||
|
||||
@@ -33,7 +33,7 @@ public abstract class ItemWithGui extends ItemForestry implements IGuiHandlerIte
|
||||
}
|
||||
|
||||
protected void openGui(EntityPlayer entityplayer) {
|
||||
GuiHandler.openGui(entityplayer, this);
|
||||
GuiHandler.openGui(entityplayer, this, (short) 0, entityplayer.inventory.currentItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -28,7 +28,7 @@ public enum PacketIdServer implements IPacketId {
|
||||
BEE_LOGIC_ACTIVE_ENTITY_REQUEST,
|
||||
|
||||
// Factory
|
||||
WORKTABLE_NEI_SELECT,
|
||||
NEI_SELECT,
|
||||
|
||||
// Mail
|
||||
LETTER_INFO_REQUEST,
|
||||
|
||||
@@ -23,7 +23,7 @@ import codechicken.nei.api.IOverlayHandler;
|
||||
import codechicken.nei.api.IStackPositioner;
|
||||
import codechicken.nei.recipe.IRecipeHandler;
|
||||
import forestry.core.proxy.Proxies;
|
||||
import forestry.factory.network.packets.PacketWorktableNEISelect;
|
||||
import forestry.factory.network.packets.PacketNEISelect;
|
||||
|
||||
/**
|
||||
* @author bdew
|
||||
@@ -40,9 +40,25 @@ public class CustomOverlayHandler implements IOverlayHandler {
|
||||
this.forceShift = forceShift;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean requireShiftForOverlayRecipe() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void overlayRecipe(GuiContainer cont, IRecipeHandler recipe, int recipeIndex, boolean shift) {
|
||||
List<PositionedStack> ingr = recipe.getIngredientStacks(recipeIndex);
|
||||
int offsetX = 25;
|
||||
int offsetY = 6;
|
||||
int gridSpacing = 18;
|
||||
List<PositionedStack> ingr;
|
||||
if (recipe instanceof IGridRecipeHandler gridHandler) {
|
||||
offsetX = gridHandler.getGridStartX();
|
||||
offsetY = gridHandler.getGridStartY();
|
||||
gridSpacing = gridHandler.getGridSpacing();
|
||||
ingr = gridHandler.getGridStacks(recipeIndex);
|
||||
} else {
|
||||
ingr = recipe.getIngredientStacks(recipeIndex);
|
||||
}
|
||||
|
||||
if (shift || forceShift) {
|
||||
NBTTagList stacksnbt = new NBTTagList();
|
||||
@@ -50,8 +66,8 @@ public class CustomOverlayHandler implements IOverlayHandler {
|
||||
for (PositionedStack pstack : ingr) {
|
||||
if (pstack != null) {
|
||||
// This is back-asswards but i don't see a better way :(
|
||||
int x = (pstack.relx - 25) / 18;
|
||||
int y = (pstack.rely - 6) / 18;
|
||||
int x = (pstack.relx - offsetX) / gridSpacing;
|
||||
int y = (pstack.rely - offsetY) / gridSpacing;
|
||||
|
||||
ItemStack stack = pstack.item;
|
||||
NBTTagCompound stacknbt = stack.writeToNBT(new NBTTagCompound());
|
||||
@@ -68,7 +84,7 @@ public class CustomOverlayHandler implements IOverlayHandler {
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setTag("stacks", stacksnbt);
|
||||
|
||||
Proxies.net.sendToServer(new PacketWorktableNEISelect(data));
|
||||
Proxies.net.sendToServer(new PacketNEISelect(data));
|
||||
} else {
|
||||
IStackPositioner positioner = new OffsetPositioner(xOffs, yOffs);
|
||||
LayoutManager.overlayRenderer = new DefaultOverlayRenderer(ingr, positioner);
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package forestry.core.recipes.nei;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import codechicken.nei.PositionedStack;
|
||||
|
||||
public interface IGridRecipeHandler {
|
||||
|
||||
int getGridStartX();
|
||||
|
||||
int getGridStartY();
|
||||
|
||||
int getGridSpacing();
|
||||
|
||||
List<PositionedStack> getGridStacks(int recipeIndex);
|
||||
|
||||
}
|
||||
@@ -19,6 +19,8 @@ import forestry.api.arboriculture.TreeManager;
|
||||
import forestry.api.lepidopterology.ButterflyManager;
|
||||
import forestry.api.lepidopterology.EnumFlutterType;
|
||||
import forestry.core.utils.Log;
|
||||
import forestry.factory.gui.GuiCarpenter;
|
||||
import forestry.factory.gui.GuiFabricator;
|
||||
import forestry.factory.gui.GuiWorktable;
|
||||
import forestry.factory.recipes.nei.NEIHandlerBottler;
|
||||
import forestry.factory.recipes.nei.NEIHandlerCarpenter;
|
||||
@@ -46,6 +48,8 @@ public class NEIIntegrationConfig implements IConfigureNEI {
|
||||
|
||||
CustomOverlayHandler handler = new CustomOverlayHandler(-14, 14, true);
|
||||
API.registerGuiOverlayHandler(GuiWorktable.class, handler, "crafting");
|
||||
API.registerGuiOverlayHandler(GuiCarpenter.class, handler, "forestry.carpenter");
|
||||
API.registerGuiOverlayHandler(GuiFabricator.class, handler, "forestry.fabricator");
|
||||
|
||||
API.addSubset(
|
||||
"Forestry.Bees.Princesses",
|
||||
|
||||
@@ -23,18 +23,19 @@ import net.minecraft.nbt.NBTTagList;
|
||||
*/
|
||||
public class SetRecipeCommandHandler {
|
||||
|
||||
private final Class<? extends Container> containerClass;
|
||||
private final Class<? extends Container>[] containerClasses;
|
||||
private final Class<? extends Slot> slotClass;
|
||||
|
||||
public SetRecipeCommandHandler(Class<? extends Container> containerClass, Class<? extends Slot> slotClass) {
|
||||
this.containerClass = containerClass;
|
||||
public SetRecipeCommandHandler(Class<? extends Container>[] containerClasses, Class<? extends Slot> slotClass) {
|
||||
this.containerClasses = containerClasses;
|
||||
this.slotClass = slotClass;
|
||||
}
|
||||
|
||||
public void handle(NBTTagCompound data, EntityPlayerMP player) {
|
||||
NBTTagList stacks = data.getTagList("stacks", 10);
|
||||
Container cont = player.openContainer;
|
||||
if (!containerClass.isInstance(cont)) {
|
||||
|
||||
if (!isContainerClassCorrect(cont)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -43,17 +44,20 @@ public class SetRecipeCommandHandler {
|
||||
NBTTagCompound itemdata = stacks.getCompoundTagAt(i);
|
||||
stmap.put(itemdata.getInteger("slot"), ItemStack.loadItemStackFromNBT(itemdata));
|
||||
}
|
||||
for (Object slotobj : cont.inventorySlots) {
|
||||
if (!slotClass.isInstance(slotobj)) {
|
||||
for (Slot slot : cont.inventorySlots) {
|
||||
if (!slotClass.isInstance(slot)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Slot slot = (Slot) slotobj;
|
||||
if (stmap.containsKey(slot.getSlotIndex())) {
|
||||
slot.putStack(stmap.get(slot.getSlotIndex()));
|
||||
} else {
|
||||
slot.putStack(null);
|
||||
}
|
||||
slot.putStack(stmap.getOrDefault(slot.getSlotIndex(), null));
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isContainerClassCorrect(Container cont) {
|
||||
for (Class<? extends Container> containerClass : containerClasses) {
|
||||
if (containerClass.isInstance(cont)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -9,15 +9,15 @@
|
||||
package forestry.factory.network;
|
||||
|
||||
import forestry.core.network.PacketRegistry;
|
||||
import forestry.factory.network.packets.PacketNEISelect;
|
||||
import forestry.factory.network.packets.PacketWorktableMemoryUpdate;
|
||||
import forestry.factory.network.packets.PacketWorktableNEISelect;
|
||||
import forestry.factory.network.packets.PacketWorktableRecipeUpdate;
|
||||
|
||||
public class PacketRegistryFactory extends PacketRegistry {
|
||||
|
||||
@Override
|
||||
public void registerPackets() {
|
||||
registerServerPacket(new PacketWorktableNEISelect());
|
||||
registerServerPacket(new PacketNEISelect());
|
||||
|
||||
registerClientPacket(new PacketWorktableMemoryUpdate());
|
||||
registerClientPacket(new PacketWorktableRecipeUpdate());
|
||||
|
||||
+9
-7
@@ -19,27 +19,29 @@ import forestry.core.network.IForestryPacketServer;
|
||||
import forestry.core.network.PacketIdServer;
|
||||
import forestry.core.network.packets.PacketNBT;
|
||||
import forestry.core.recipes.nei.SetRecipeCommandHandler;
|
||||
import forestry.factory.gui.ContainerCarpenter;
|
||||
import forestry.factory.gui.ContainerFabricator;
|
||||
import forestry.factory.gui.ContainerWorktable;
|
||||
|
||||
public class PacketWorktableNEISelect extends PacketNBT implements IForestryPacketServer {
|
||||
public class PacketNEISelect extends PacketNBT implements IForestryPacketServer {
|
||||
|
||||
private static final SetRecipeCommandHandler worktableNEISelectHandler = new SetRecipeCommandHandler(
|
||||
ContainerWorktable.class,
|
||||
private static final SetRecipeCommandHandler neiSelectHandler = new SetRecipeCommandHandler(
|
||||
new Class[] { ContainerWorktable.class, ContainerCarpenter.class, ContainerFabricator.class },
|
||||
SlotCraftMatrix.class);
|
||||
|
||||
public PacketWorktableNEISelect() {}
|
||||
public PacketNEISelect() {}
|
||||
|
||||
public PacketWorktableNEISelect(NBTTagCompound nbttagcompound) {
|
||||
public PacketNEISelect(NBTTagCompound nbttagcompound) {
|
||||
super(nbttagcompound);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPacketData(DataInputStreamForestry data, EntityPlayerMP player) throws IOException {
|
||||
worktableNEISelectHandler.handle(getTagCompound(), player);
|
||||
neiSelectHandler.handle(getTagCompound(), player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PacketIdServer getPacketId() {
|
||||
return PacketIdServer.WORKTABLE_NEI_SELECT;
|
||||
return PacketIdServer.NEI_SELECT;
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ package forestry.factory.recipes.nei;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
@@ -24,13 +25,14 @@ import codechicken.nei.api.API;
|
||||
import forestry.api.recipes.ICarpenterRecipe;
|
||||
import forestry.api.recipes.IDescriptiveRecipe;
|
||||
import forestry.api.recipes.RecipeManagers;
|
||||
import forestry.core.recipes.nei.IGridRecipeHandler;
|
||||
import forestry.core.recipes.nei.NEIUtils;
|
||||
import forestry.core.recipes.nei.PositionedFluidTank;
|
||||
import forestry.core.recipes.nei.RecipeHandlerBase;
|
||||
import forestry.core.utils.StringUtil;
|
||||
import forestry.factory.gui.GuiCarpenter;
|
||||
|
||||
public class NEIHandlerCarpenter extends RecipeHandlerBase {
|
||||
public class NEIHandlerCarpenter extends RecipeHandlerBase implements IGridRecipeHandler {
|
||||
|
||||
private static Class<? extends GuiContainer> guiClass;
|
||||
|
||||
@@ -40,11 +42,35 @@ public class NEIHandlerCarpenter extends RecipeHandlerBase {
|
||||
API.setGuiOffset(guiClass, 5, 14);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGridStartX() {
|
||||
return 5;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGridStartY() {
|
||||
return 6;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGridSpacing() {
|
||||
return 18;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PositionedStack> getGridStacks(int recipeIndex) {
|
||||
if (arecipes.get(recipeIndex) instanceof CachedCarpenterRecipe recipe) {
|
||||
return recipe.inputs.subList(0, recipe.ingredientCount);
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public class CachedCarpenterRecipe extends CachedBaseRecipe {
|
||||
|
||||
public List<PositionedStack> inputs = new ArrayList<>();
|
||||
public PositionedFluidTank tank;
|
||||
public PositionedStack output;
|
||||
public int ingredientCount;
|
||||
|
||||
public CachedCarpenterRecipe(ICarpenterRecipe recipe, boolean genPerms) {
|
||||
IDescriptiveRecipe irecipe = recipe.getCraftingGridRecipe();
|
||||
@@ -78,6 +104,7 @@ public class NEIHandlerCarpenter extends RecipeHandlerBase {
|
||||
}
|
||||
|
||||
public void setIngredients(int width, int height, Object[] items) {
|
||||
ingredientCount = 0;
|
||||
for (int x = 0; x < width; x++) {
|
||||
for (int y = 0; y < height; y++) {
|
||||
Object item = items[y * width + x];
|
||||
@@ -89,9 +116,14 @@ public class NEIHandlerCarpenter extends RecipeHandlerBase {
|
||||
continue;
|
||||
}
|
||||
|
||||
PositionedStack stack = new PositionedStack(item, 5 + x * 18, 6 + y * 18, false);
|
||||
PositionedStack stack = new PositionedStack(
|
||||
item,
|
||||
getGridStartX() + x * getGridSpacing(),
|
||||
getGridStartY() + y * getGridSpacing(),
|
||||
false);
|
||||
stack.setMaxSize(1);
|
||||
this.inputs.add(stack);
|
||||
ingredientCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ package forestry.factory.recipes.nei;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -27,6 +28,7 @@ import codechicken.nei.recipe.GuiRecipe;
|
||||
import forestry.api.recipes.IFabricatorRecipe;
|
||||
import forestry.api.recipes.IFabricatorSmeltingRecipe;
|
||||
import forestry.api.recipes.RecipeManagers;
|
||||
import forestry.core.recipes.nei.IGridRecipeHandler;
|
||||
import forestry.core.recipes.nei.NEIUtils;
|
||||
import forestry.core.recipes.nei.PositionedFluidTank;
|
||||
import forestry.core.recipes.nei.RecipeHandlerBase;
|
||||
@@ -34,7 +36,30 @@ import forestry.core.utils.StringUtil;
|
||||
import forestry.factory.gui.GuiFabricator;
|
||||
import forestry.factory.recipes.FabricatorSmeltingRecipeManager;
|
||||
|
||||
public class NEIHandlerFabricator extends RecipeHandlerBase {
|
||||
public class NEIHandlerFabricator extends RecipeHandlerBase implements IGridRecipeHandler {
|
||||
|
||||
@Override
|
||||
public int getGridStartX() {
|
||||
return 62;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGridStartY() {
|
||||
return 6;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGridSpacing() {
|
||||
return 18;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PositionedStack> getGridStacks(int recipeIndex) {
|
||||
if (arecipes.get(recipeIndex) instanceof CachedFabricatorRecipe recipe) {
|
||||
return recipe.inputs.subList(0, recipe.ingredientCount);
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public class CachedFabricatorRecipe extends CachedBaseRecipe {
|
||||
|
||||
@@ -42,6 +67,7 @@ public class NEIHandlerFabricator extends RecipeHandlerBase {
|
||||
public PositionedFluidTank tank;
|
||||
public List<PositionedStack> inputs = new ArrayList<>();
|
||||
public PositionedStack output;
|
||||
public int ingredientCount;
|
||||
|
||||
public CachedFabricatorRecipe(IFabricatorRecipe recipe, boolean genPerms) {
|
||||
if (recipe.getLiquid() != null) {
|
||||
@@ -78,6 +104,7 @@ public class NEIHandlerFabricator extends RecipeHandlerBase {
|
||||
}
|
||||
|
||||
public void setIngredients(int width, int height, Object[] items) {
|
||||
ingredientCount = 0;
|
||||
for (int x = 0; x < width; x++) {
|
||||
for (int y = 0; y < height; y++) {
|
||||
Object item = items[y * width + x];
|
||||
@@ -89,9 +116,14 @@ public class NEIHandlerFabricator extends RecipeHandlerBase {
|
||||
continue;
|
||||
}
|
||||
|
||||
PositionedStack stack = new PositionedStack(item, 62 + x * 18, 6 + y * 18, false);
|
||||
PositionedStack stack = new PositionedStack(
|
||||
item,
|
||||
getGridStartX() + x * getGridSpacing(),
|
||||
getGridStartY() + y * getGridSpacing(),
|
||||
false);
|
||||
stack.setMaxSize(1);
|
||||
this.inputs.add(stack);
|
||||
ingredientCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,16 +25,22 @@ import forestry.plugins.PluginMail;
|
||||
public class LetterProperties {
|
||||
|
||||
private enum State {
|
||||
|
||||
FRESH,
|
||||
STAMPED,
|
||||
OPENED,
|
||||
EMPTIED
|
||||
EMPTIED;
|
||||
|
||||
public static final State[] VALUES = values();
|
||||
}
|
||||
|
||||
private enum Size {
|
||||
|
||||
EMPTY,
|
||||
SMALL,
|
||||
BIG
|
||||
BIG;
|
||||
|
||||
public static final Size[] VALUES = values();
|
||||
}
|
||||
|
||||
public static ItemStack createStampedLetterStack(ILetter letter) {
|
||||
@@ -98,8 +104,8 @@ public class LetterProperties {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void getSubItems(Item item, CreativeTabs tab, @SuppressWarnings("rawtypes") List list) {
|
||||
for (State state : State.values()) {
|
||||
for (Size size : Size.values()) {
|
||||
for (State state : State.VALUES) {
|
||||
for (Size size : Size.VALUES) {
|
||||
int meta = encodeMeta(state, size);
|
||||
ItemStack letter = new ItemStack(item, 1, meta);
|
||||
list.add(letter);
|
||||
@@ -117,7 +123,7 @@ public class LetterProperties {
|
||||
|
||||
private static State getState(int meta) {
|
||||
int ordinal = meta & 0x0f;
|
||||
State[] values = State.values();
|
||||
State[] values = State.VALUES;
|
||||
if (ordinal >= values.length) {
|
||||
ordinal = 0;
|
||||
}
|
||||
@@ -126,7 +132,7 @@ public class LetterProperties {
|
||||
|
||||
private static Size getSize(int meta) {
|
||||
int ordinal = meta >> 4;
|
||||
Size[] values = Size.values();
|
||||
Size[] values = Size.VALUES;
|
||||
if (ordinal >= values.length) {
|
||||
ordinal = 0;
|
||||
}
|
||||
|
||||
@@ -28,6 +28,11 @@ public class ItemInventoryBackpackPaged extends ItemInventoryBackpack implements
|
||||
|
||||
@Override
|
||||
public void flipPage(EntityPlayer player, short page) {
|
||||
GuiHandler.openGui(player, backpackNaturalist, page);
|
||||
ItemLocation loc = getLocation();
|
||||
if (loc.type() == ItemLocation.Type.PLAYER_INVENTORY) {
|
||||
GuiHandler.openGui(player, backpackNaturalist, page, loc.slotIdx());
|
||||
} else {
|
||||
GuiHandler.openGui(player, backpackNaturalist, page);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,7 +72,7 @@ public class ItemBackpack extends ItemWithGui implements ActivatableFromInventor
|
||||
|
||||
@Override
|
||||
protected void openGui(EntityPlayer entityplayer) {
|
||||
GuiHandler.openGui(entityplayer, this, (short) type.ordinal());
|
||||
GuiHandler.openGui(entityplayer, this, (short) type.ordinal(), entityplayer.inventory.currentItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -34,7 +34,7 @@ public class ItemBackpackNaturalist extends ItemBackpack {
|
||||
|
||||
@Override
|
||||
protected void openGui(EntityPlayer entityplayer) {
|
||||
GuiHandler.openGui(entityplayer, this);
|
||||
GuiHandler.openGui(entityplayer, this, (short) 0, entityplayer.inventory.currentItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -708,9 +708,11 @@ tile.candle.dyed.stump=Unlit Dyed Candle
|
||||
tile.candle.lit=Lit Candle
|
||||
tile.candle.dyed.lit=Lit Dyed Candle
|
||||
tile.stump.0=Candle Stump
|
||||
tile.for.apiculture.0=Apiary
|
||||
tile.for.apiculture.1=Apiarist's Chest
|
||||
tile.for.apiculture.2=Bee House
|
||||
tile.for.apiculture.name=Apiary
|
||||
tile.for.apiculture.0.name=Apiary
|
||||
tile.for.apicultureChest.name=Apiarist's Chest
|
||||
tile.for.apicultureChest.0.name=Apiarist's Chest
|
||||
tile.for.apiculture.2.name=Bee House
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -759,7 +761,7 @@ tile.log=Wood
|
||||
tile.planks=Wood Planks
|
||||
tile.slab=Wood Slab
|
||||
tile.fences=Fence
|
||||
tile.for.stairs=Stairs
|
||||
tile.for.stairs.name=Stairs
|
||||
wood.0=Larch
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -784,7 +786,8 @@ wood.20=Pine
|
||||
wood.21=Plum
|
||||
wood.22=Maple
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Arborist's Chest
|
||||
tile.for.arboriculture.name=Arborist's Chest
|
||||
tile.for.arboriculture.0.name=Arborist's Chest
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -857,7 +860,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.0.name=Lepidopterist's Chest
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -685,9 +685,11 @@ tile.alveary.6=Estabilizador de Enjambre
|
||||
tile.alveary.7=Tamiz para Enjambre
|
||||
tile.candle.0=Vela
|
||||
tile.stump.0=Tocуn de Vela
|
||||
tile.for.apiculture.0=Apiario
|
||||
tile.for.apiculture.1=Cofre de Apicultor
|
||||
tile.for.apiculture.2=Casa de Abejas
|
||||
tile.for.apiculture.name=Apiario
|
||||
tile.for.apiculture.0.name=Apiario
|
||||
tile.for.apicultureChest.name=Cofre de Apicultor
|
||||
tile.for.apicultureChest.0.name=Cofre de Apicultor
|
||||
tile.for.apiculture.2.name=Casa de Abejas
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -736,7 +738,7 @@ tile.log=Madera
|
||||
tile.planks=Tablones de Madera
|
||||
tile.slab=Losa de Madera
|
||||
tile.fences=Cerca
|
||||
tile.for.stairs=Escaleras
|
||||
tile.for.stairs.name=Escaleras
|
||||
wood.0=Alerce
|
||||
wood.1=Teca
|
||||
wood.2=Acacia
|
||||
@@ -761,7 +763,8 @@ wood.20=Pino
|
||||
wood.21=Ciruela
|
||||
wood.22=Arce
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Cofre de Arborista
|
||||
tile.for.arboriculture.name=Cofre de Arborista
|
||||
tile.for.arboriculture.0.name=Cofre de Arborista
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -834,7 +837,8 @@ item.butterfly=Mariposa
|
||||
item.moth=Polilla
|
||||
item.flutterlyzer=Mariposanalizador
|
||||
storage.backpack.lepidopterist=Mochila de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.name=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0.name=Cofre de Lepidopterуlogo
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -692,9 +692,11 @@ tile.alveary.6=Estabilizador de Enjambre
|
||||
tile.alveary.7=Tamiz para Enjambre
|
||||
tile.candle.0=Vela
|
||||
tile.stump.0=Tocуn de Vela
|
||||
tile.for.apiculture.0=Apiario
|
||||
tile.for.apiculture.1=Cofre de Apicultor
|
||||
tile.for.apiculture.2=Casa de Abejas
|
||||
tile.for.apiculture.name=Apiario
|
||||
tile.for.apiculture.0.name=Apiario
|
||||
tile.for.apicultureChest.name=Cofre de Apicultor
|
||||
tile.for.apicultureChest.0.name=Cofre de Apicultor
|
||||
tile.for.apiculture.2.name=Casa de Abejas
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -743,7 +745,7 @@ tile.log=Madera
|
||||
tile.planks=Tablones de Madera
|
||||
tile.slab=Losa de Madera
|
||||
tile.fences=Cerca
|
||||
tile.for.stairs=Escaleras
|
||||
tile.for.stairs.name=Escaleras
|
||||
wood.0=Alerce
|
||||
wood.1=Teca
|
||||
wood.2=Acacia
|
||||
@@ -768,7 +770,8 @@ wood.20=Pino
|
||||
wood.21=Ciruela
|
||||
wood.22=Arce
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Cofre de Arborista
|
||||
tile.for.arboriculture.name=Cofre de Arborista
|
||||
tile.for.arboriculture.0.name=Cofre de Arborista
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -841,7 +844,8 @@ item.butterfly=Mariposa
|
||||
item.moth=Polilla
|
||||
item.flutterlyzer=Mariposanalizador
|
||||
storage.backpack.lepidopterist=Mochila de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.name=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0.name=Cofre de Lepidopterуlogo
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -685,9 +685,11 @@ tile.alveary.6=Estabilizador de Enjambre
|
||||
tile.alveary.7=Tamiz para Enjambre
|
||||
tile.candle.0=Vela
|
||||
tile.stump.0=Tocуn de Vela
|
||||
tile.for.apiculture.0=Apiario
|
||||
tile.for.apiculture.1=Cofre de Apicultor
|
||||
tile.for.apiculture.2=Casa de Abejas
|
||||
tile.for.apiculture.name=Apiario
|
||||
tile.for.apiculture.0.name=Apiario
|
||||
tile.for.apicultureChest.name=Cofre de Apicultor
|
||||
tile.for.apicultureChest.0.name=Cofre de Apicultor
|
||||
tile.for.apiculture.2.name=Casa de Abejas
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -736,7 +738,7 @@ tile.log=Madera
|
||||
tile.planks=Tablones de Madera
|
||||
tile.slab=Losa de Madera
|
||||
tile.fences=Cerca
|
||||
tile.for.stairs=Escaleras
|
||||
tile.for.stairs.name=Escaleras
|
||||
wood.0=Alerce
|
||||
wood.1=Teca
|
||||
wood.2=Acacia
|
||||
@@ -761,7 +763,8 @@ wood.20=Pino
|
||||
wood.21=Ciruela
|
||||
wood.22=Arce
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Cofre de Arborista
|
||||
tile.for.arboriculture.name=Cofre de Arborista
|
||||
tile.for.arboriculture.0.name=Cofre de Arborista
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -834,7 +837,8 @@ item.butterfly=Mariposa
|
||||
item.moth=Polilla
|
||||
item.flutterlyzer=Mariposanalizador
|
||||
storage.backpack.lepidopterist=Mochila de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.name=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0.name=Cofre de Lepidopterуlogo
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -685,9 +685,11 @@ tile.alveary.6=Estabilizador de Enjambre
|
||||
tile.alveary.7=Tamiz para Enjambre
|
||||
tile.candle.0=Vela
|
||||
tile.stump.0=Tocуn de Vela
|
||||
tile.for.apiculture.0=Apiario
|
||||
tile.for.apiculture.1=Cofre de Apicultor
|
||||
tile.for.apiculture.2=Casa de Abejas
|
||||
tile.for.apiculture.name=Apiario
|
||||
tile.for.apiculture.0.name=Apiario
|
||||
tile.for.apicultureChest.name=Cofre de Apicultor
|
||||
tile.for.apicultureChest.0.name=Cofre de Apicultor
|
||||
tile.for.apiculture.2.name=Casa de Abejas
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -736,7 +738,7 @@ tile.log=Madera
|
||||
tile.planks=Tablones de Madera
|
||||
tile.slab=Losa de Madera
|
||||
tile.fences=Cerca
|
||||
tile.for.stairs=Escaleras
|
||||
tile.for.stairs.name=Escaleras
|
||||
wood.0=Alerce
|
||||
wood.1=Teca
|
||||
wood.2=Acacia
|
||||
@@ -761,7 +763,8 @@ wood.20=Pino
|
||||
wood.21=Ciruela
|
||||
wood.22=Arce
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Cofre de Arborista
|
||||
tile.for.arboriculture.name=Cofre de Arborista
|
||||
tile.for.arboriculture.0.name=Cofre de Arborista
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -834,7 +837,8 @@ item.butterfly=Mariposa
|
||||
item.moth=Polilla
|
||||
item.flutterlyzer=Mariposanalizador
|
||||
storage.backpack.lepidopterist=Mochila de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.name=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0.name=Cofre de Lepidopterуlogo
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -685,9 +685,11 @@ tile.alveary.6=Estabilizador de Enjambre
|
||||
tile.alveary.7=Tamiz para Enjambre
|
||||
tile.candle.0=Vela
|
||||
tile.stump.0=Tocуn de Vela
|
||||
tile.for.apiculture.0=Apiario
|
||||
tile.for.apiculture.1=Cofre de Apicultor
|
||||
tile.for.apiculture.2=Casa de Abejas
|
||||
tile.for.apiculture.name=Apiario
|
||||
tile.for.apiculture.0.name=Apiario
|
||||
tile.for.apicultureChest.name=Cofre de Apicultor
|
||||
tile.for.apicultureChest.0.name=Cofre de Apicultor
|
||||
tile.for.apiculture.2.name=Casa de Abejas
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -736,7 +738,7 @@ tile.log=Madera
|
||||
tile.planks=Tablones de Madera
|
||||
tile.slab=Losa de Madera
|
||||
tile.fences=Cerca
|
||||
tile.for.stairs=Escaleras
|
||||
tile.for.stairs.name=Escaleras
|
||||
wood.0=Alerce
|
||||
wood.1=Teca
|
||||
wood.2=Acacia
|
||||
@@ -761,7 +763,8 @@ wood.20=Pino
|
||||
wood.21=Ciruela
|
||||
wood.22=Arce
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Cofre de Arborista
|
||||
tile.for.arboriculture.name=Cofre de Arborista
|
||||
tile.for.arboriculture.0.name=Cofre de Arborista
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -834,7 +837,8 @@ item.butterfly=Mariposa
|
||||
item.moth=Polilla
|
||||
item.flutterlyzer=Mariposanalizador
|
||||
storage.backpack.lepidopterist=Mochila de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.name=Cofre de Lepidopterуlogo
|
||||
tile.for.lepidopterology.0.name=Cofre de Lepidopterуlogo
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -699,9 +699,11 @@ tile.candle.dyed.stump=Unlit Dyed Candle
|
||||
tile.candle.lit=Lit Candle
|
||||
tile.candle.dyed.lit=Lit Dyed Candle
|
||||
tile.stump.0=Candle Stump
|
||||
tile.for.apiculture.0=Apiary
|
||||
tile.for.apiculture.1=Apiarist's Chest
|
||||
tile.for.apiculture.2=Bee House
|
||||
tile.for.apiculture.name=Apiary
|
||||
tile.for.apiculture.0.name=Apiary
|
||||
tile.for.apicultureChest.name=Apiarist's Chest
|
||||
tile.for.apicultureChest.0.name=Apiarist's Chest
|
||||
tile.for.apiculture.2.name=Bee House
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -750,7 +752,7 @@ tile.log=Wood
|
||||
tile.planks=Wood Planks
|
||||
tile.slab=Wood Slab
|
||||
tile.fences=Fence
|
||||
tile.for.stairs=Stairs
|
||||
tile.for.stairs.name=Stairs
|
||||
wood.0=Larch
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -775,7 +777,8 @@ wood.20=Pine
|
||||
wood.21=Plum
|
||||
wood.22=Maple
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Arborist's Chest
|
||||
tile.for.arboriculture.name=Arborist's Chest
|
||||
tile.for.arboriculture.0.name=Arborist's Chest
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -848,7 +851,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.0.name=Lepidopterist's Chest
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -614,9 +614,11 @@ tile.candle.dyed.stump=Unlit Dyed Candle
|
||||
tile.candle.lit=Lit Candle
|
||||
tile.candle.dyed.lit=Lit Dyed Candle
|
||||
tile.stump.0=Candle Stump
|
||||
tile.for.apiculture.0=Apiary
|
||||
tile.for.apiculture.1=Apiarist's Chest
|
||||
tile.for.apiculture.2=Bee House
|
||||
tile.for.apiculture.name=Apiary
|
||||
tile.for.apiculture.0.name=Apiary
|
||||
tile.for.apicultureChest.name=Apiarist's Chest
|
||||
tile.for.apicultureChest.0.name=Apiarist's Chest
|
||||
tile.for.apiculture.2.name=Bee House
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -665,7 +667,7 @@ tile.log=Wood
|
||||
tile.planks=Wood Planks
|
||||
tile.slab=Wood Slab
|
||||
tile.fences=Fence
|
||||
tile.for.stairs=Stairs
|
||||
tile.for.stairs.name=Stairs
|
||||
wood.0=Larch
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -690,7 +692,8 @@ wood.20=Pine
|
||||
wood.21=Plum
|
||||
wood.22=Maple
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Arborist's Chest
|
||||
tile.for.arboriculture.name=Arborist's Chest
|
||||
tile.for.arboriculture.0.name=Arborist's Chest
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -763,7 +766,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.0.name=Lepidopterist's Chest
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -690,9 +690,11 @@ tile.candle.dyed.stump=Unlit Dyed Candle
|
||||
tile.candle.lit=Lit Candle
|
||||
tile.candle.dyed.lit=Lit Dyed Candle
|
||||
tile.stump.0=Candle Stump
|
||||
tile.for.apiculture.0=Apiary
|
||||
tile.for.apiculture.1=Apiarist's Chest
|
||||
tile.for.apiculture.2=Bee House
|
||||
tile.for.apiculture.name=Apiary
|
||||
tile.for.apiculture.0.name=Apiary
|
||||
tile.for.apicultureChest.name=Apiarist's Chest
|
||||
tile.for.apicultureChest.0.name=Apiarist's Chest
|
||||
tile.for.apiculture.2.name=Bee House
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -741,7 +743,7 @@ tile.log=Wood
|
||||
tile.planks=Wood Planks
|
||||
tile.slab=Wood Slab
|
||||
tile.fences=Fence
|
||||
tile.for.stairs=Stairs
|
||||
tile.for.stairs.name=Stairs
|
||||
wood.0=Larch
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -766,7 +768,8 @@ wood.20=Pine
|
||||
wood.21=Plum
|
||||
wood.22=Maple
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Arborist's Chest
|
||||
tile.for.arboriculture.name=Arborist's Chest
|
||||
tile.for.arboriculture.0.name=Arborist's Chest
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -839,7 +842,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.0.name=Lepidopterist's Chest
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -489,10 +489,10 @@ tile.for.log1=Legna
|
||||
tile.for.log2=Legna
|
||||
tile.for.log3=Legna
|
||||
tile.for.log4=Legna
|
||||
tile.for.planks=Assi di legno
|
||||
tile.for.planks.name=Assi di legno
|
||||
tile.for.slabs1=Lastra di legno
|
||||
tile.for.slabs2=Lastra di legno
|
||||
tile.for.fences=Staccionata
|
||||
tile.for.fences.name=Staccionata
|
||||
tile.harvester.0=Taglialegna
|
||||
tile.harvester.1=Combinatore
|
||||
tile.harvester.2=Raccogli-albero della gomma
|
||||
@@ -741,7 +741,7 @@ tile.log=Wood
|
||||
tile.planks=Wood Planks
|
||||
tile.slab=Wood Slab
|
||||
tile.fences=Fence
|
||||
tile.for.stairs=Stairs
|
||||
tile.for.stairs.name=Stairs
|
||||
wood.0=Larch
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -766,7 +766,8 @@ wood.20=Pine
|
||||
wood.21=Plum
|
||||
wood.22=Maple
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Arborist's Chest
|
||||
tile.for.arboriculture.name=Arborist's Chest
|
||||
tile.for.arboriculture.0.name=Arborist's Chest
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -836,7 +837,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.0.name=Lepidopterist's Chest
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -501,10 +501,10 @@ tile.for.log1=原木
|
||||
tile.for.log2=原木
|
||||
tile.for.log3=原木
|
||||
tile.for.log4=原木
|
||||
tile.for.planks=木材
|
||||
tile.for.planks.name=木材
|
||||
tile.for.slabs1=木材ハーフブロック
|
||||
tile.for.slabs2=木材ハーフブロック
|
||||
tile.for.fences=フェンス
|
||||
tile.for.fences.name=フェンス
|
||||
tile.harvester.0=伐採機
|
||||
tile.harvester.1=収穫機
|
||||
tile.harvester.2=ゴムの木収穫機
|
||||
@@ -757,9 +757,11 @@ tile.candle.dyed.stump=Unlit Dyed Candle
|
||||
tile.candle.lit=Lit Candle
|
||||
tile.candle.dyed.lit=Lit Dyed Candle
|
||||
tile.stump.0=Candle Stump
|
||||
tile.for.apiculture.0=Apiary
|
||||
tile.for.apiculture.1=Apiarist's Chest
|
||||
tile.for.apiculture.2=Bee House
|
||||
tile.for.apiculture.name=養蜂箱
|
||||
tile.for.apiculture.0.name=養蜂箱
|
||||
tile.for.apicultureChest.name=養蜂家のチェスト
|
||||
tile.for.apicultureChest.0.name=養蜂家のチェスト
|
||||
tile.for.apiculture.2.name=ビーハウス
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -808,7 +810,7 @@ tile.log=Wood
|
||||
tile.planks=Wood Planks
|
||||
tile.slab=Wood Slab
|
||||
tile.fences=Fence
|
||||
tile.for.stairs=Stairs
|
||||
tile.for.stairs.name=階段
|
||||
wood.0=Larch
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -833,7 +835,8 @@ wood.20=Pine
|
||||
wood.21=Plum
|
||||
wood.22=Maple
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Arborist's Chest
|
||||
tile.for.arboriculture.name=樹医のチェスト
|
||||
tile.for.arboriculture.0.name=樹医のチェスト
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -906,7 +909,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=鱗翅類学者のチェスト
|
||||
tile.for.lepidopterology.0.name=鱗翅類学者のチェスト
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -709,9 +709,11 @@ tile.candle.dyed.stump=Unlit Dyed Candle
|
||||
tile.candle.lit=Lit Candle
|
||||
tile.candle.dyed.lit=Lit Dyed Candle
|
||||
tile.stump.0=Candle Stump
|
||||
tile.for.apiculture.0=Apiary
|
||||
tile.for.apiculture.1=Apiarist's Chest
|
||||
tile.for.apiculture.2=Bee House
|
||||
tile.for.apiculture.name=Apiary
|
||||
tile.for.apiculture.0.name=Apiary
|
||||
tile.for.apicultureChest.name=Apiarist's Chest
|
||||
tile.for.apicultureChest.0.name=Apiarist's Chest
|
||||
tile.for.apiculture.2.name=Bee House
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -760,7 +762,7 @@ tile.log=Hout
|
||||
tile.planks=houten planken
|
||||
tile.slab=houten plaat
|
||||
tile.fences=houten hek
|
||||
tile.for.stairs=houten treden
|
||||
tile.for.stairs.name=houten treden
|
||||
wood.0=Lariks
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -857,7 +859,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.0.name=Lepidopterist's Chest
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -710,9 +710,11 @@ tile.candle.dyed.stump=Unlit Dyed Candle
|
||||
tile.candle.lit=Lit Candle
|
||||
tile.candle.dyed.lit=Lit Dyed Candle
|
||||
tile.stump.0=Candle Stump
|
||||
tile.for.apiculture.0=Apiary
|
||||
tile.for.apiculture.1=Apiarist's Chest
|
||||
tile.for.apiculture.2=Bee House
|
||||
tile.for.apiculture.name=Apiary
|
||||
tile.for.apiculture.0.name=Apiary
|
||||
tile.for.apicultureChest.name=Apiarist's Chest
|
||||
tile.for.apicultureChest.0.name=Apiarist's Chest
|
||||
tile.for.apiculture.2.name=Bee House
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -761,7 +763,7 @@ tile.log=Wood
|
||||
tile.planks=Wood Planks
|
||||
tile.slab=Wood Slab
|
||||
tile.fences=Fence
|
||||
tile.for.stairs=Stairs
|
||||
tile.for.stairs.name=Stairs
|
||||
wood.0=Larch
|
||||
wood.1=Teak
|
||||
wood.2=Acacia
|
||||
@@ -786,7 +788,8 @@ wood.20=Pine
|
||||
wood.21=Plum
|
||||
wood.22=Maple
|
||||
wood.23=Citrus
|
||||
tile.for.arboriculture.0=Arborist's Chest
|
||||
tile.for.arboriculture.name=Arborist's Chest
|
||||
tile.for.arboriculture.0.name=Arborist's Chest
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -859,7 +862,8 @@ item.butterfly=Butterfly
|
||||
item.moth=Moth
|
||||
item.flutterlyzer=Flutterlyzer
|
||||
storage.backpack.lepidopterist=Lepidopterist's Backpack
|
||||
tile.for.lepidopterology.0=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.name=Lepidopterist's Chest
|
||||
tile.for.lepidopterology.0.name=Lepidopterist's Chest
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -695,9 +695,11 @@ tile.alveary.6=Stabilizator Wielkiego Ula
|
||||
tile.alveary.7=Sito Wielkiego Ula
|
||||
tile.candle.0=świeca
|
||||
tile.stump.0=Postawa świecy
|
||||
tile.for.apiculture.0=Ul
|
||||
tile.for.apiculture.1=Skrzynia pszczelarza
|
||||
tile.for.apiculture.2=Dom pszczół
|
||||
tile.for.apiculture.name=Ul
|
||||
tile.for.apiculture.0.name=Ul
|
||||
tile.for.apicultureChest.name=Skrzynia pszczelarza
|
||||
tile.for.apicultureChest.0.name=Skrzynia pszczelarza
|
||||
tile.for.apiculture.2.name=Dom pszczół
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -746,7 +748,7 @@ tile.log=Drewno
|
||||
tile.planks=Drewniane Deski
|
||||
tile.slab=Drewniana Półpłytka
|
||||
tile.fences=Płotek
|
||||
tile.for.stairs=Schody
|
||||
tile.for.stairs.name=Schody
|
||||
wood.0=Modrzew
|
||||
wood.1=Tek
|
||||
wood.2=Akacja
|
||||
@@ -771,7 +773,8 @@ wood.20=Sosna
|
||||
wood.21=Śliwka
|
||||
wood.22=Klon
|
||||
wood.23=Cytrus
|
||||
tile.for.arboriculture.0=Skrzynia Drzewiarza
|
||||
tile.for.arboriculture.name=Skrzynia Drzewiarza
|
||||
tile.for.arboriculture.0.name=Skrzynia Drzewiarza
|
||||
|
||||
####################
|
||||
# FARMING
|
||||
@@ -844,7 +847,8 @@ item.butterfly=Motyl
|
||||
item.moth=Ćma
|
||||
item.flutterlyzer=Motyloanalizer
|
||||
storage.backpack.lepidopterist=Plecak Entomolog'a
|
||||
tile.for.lepidopterology.0=Skrzynia Entomolog'a
|
||||
tile.for.lepidopterology.name=Skrzynia Entomolog'a
|
||||
tile.for.lepidopterology.0.name=Skrzynia Entomolog'a
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
@@ -679,9 +679,11 @@ tile.alveary.6=Estabilizador de Colmeia
|
||||
tile.alveary.7=Peneira para Colmeia
|
||||
tile.candle.0=Vela
|
||||
tile.stump.0=Cepo de Vela
|
||||
tile.for.apiculture.0=Apiбrio
|
||||
tile.for.apiculture.1=Baъ de Apicultor
|
||||
tile.for.apiculture.2=Ninho para Abelhas
|
||||
tile.for.apiculture.name=Apiбrio
|
||||
tile.for.apiculture.0.name=Apiбrio
|
||||
tile.for.apicultureChest.name=Baъ de Apicultor
|
||||
tile.for.apicultureChest.0.name=Baъ de Apicultor
|
||||
tile.for.apiculture.2.name=Ninho para Abelhas
|
||||
item.for.beeQueenGE.name=Unknown Queen
|
||||
|
||||
####################
|
||||
@@ -730,7 +732,7 @@ tile.log=Wood
|
||||
tile.planks=Tбbuas de Madeira
|
||||
tile.slab=Degrau de Madeira
|
||||
tile.fences=Cerca
|
||||
tile.for.stairs=Escadas
|
||||
tile.for.stairs.name=Escadas
|
||||
wood.0=Lariзo
|
||||
wood.1=Teca
|
||||
wood.2=Acбcia
|
||||
@@ -827,7 +829,8 @@ item.butterfly=Borboleta
|
||||
item.moth=Mariposa
|
||||
item.flutterlyzer=Borboletizador
|
||||
storage.backpack.lepidopterist=Mala de Lepidopterologista
|
||||
tile.for.lepidopterology.0=Baъ de Lepidopterologista
|
||||
tile.for.lepidopterology.name=Baъ de Lepidopterologista
|
||||
tile.for.lepidopterology.0.name=Baъ de Lepidopterologista
|
||||
|
||||
####################
|
||||
# MAIL
|
||||
|
||||
Reference in new issue
Block a user