Search in sources :

Example 36 with Species

use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.

the class TooltipHandler method setupTooltips.

public static void setupTooltips(ItemTooltipEvent event) {
    ItemStack stack = event.getItemStack();
    Item item = stack.getItem();
    if (item instanceof Seed) {
        Seed seed = (Seed) item;
        EntityPlayer player = event.getEntityPlayer();
        if (player != null) {
            World world = player.world;
            if (SeasonHelper.getSeasonValue(world, BlockPos.ORIGIN) != null) {
                Species species = seed.getSpecies(stack);
                if (species == null || !species.isValid()) {
                    return;
                }
                int flags = seed.getSpecies(stack).getSeasonalTooltipFlags(world.provider.getDimension());
                applySeasonalTooltips(event.getToolTip(), flags);
            }
        }
    }
}
Also used : Item(net.minecraft.item.Item) Seed(com.ferreusveritas.dynamictrees.items.Seed) EntityPlayer(net.minecraft.entity.player.EntityPlayer) ItemStack(net.minecraft.item.ItemStack) World(net.minecraft.world.World) Species(com.ferreusveritas.dynamictrees.trees.Species)

Example 37 with Species

use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.

the class CommandCreateStaff method execute.

@Override
public void execute(World world, ICommandSender sender, String[] args) throws CommandException {
    if (args.length < 4) {
        throw new WrongUsageException("commands.dynamictrees.createstaff.usage");
    }
    BlockPos pos = CommandBase.parseBlockPos(sender, args, 1, false);
    ItemStack stack = new ItemStack(ModItems.treeStaff, 1, 0);
    ModItems.treeStaff.setSpecies(stack, TreeRegistry.findSpeciesSloppy("oak"));
    for (int arg = 0; arg < args.length; arg++) {
        switch(arg) {
            case 4:
                Species species = TreeRegistry.findSpeciesSloppy(args[4]);
                if (species == Species.NULLSPECIES) {
                    throw new CommandException("commands.dynamictrees.createstaff.specieserror", args[4]);
                }
                ModItems.treeStaff.setSpecies(stack, species);
                break;
            case 5:
                ModItems.treeStaff.setCode(stack, args[5]);
                break;
            case 6:
                try {
                    Color.decode(args[6]).getRGB();
                    ModItems.treeStaff.setColor(stack, args[6]);
                } catch (NumberFormatException e) {
                    throw new CommandException("commands.dynamictrees.createstaff.colorerror", args[6]);
                }
                break;
            case 7:
                if ("true".equals(args[7]) || "false".equals(args[7])) {
                    boolean readonly = "true".equals(args[7]);
                    ModItems.treeStaff.setReadOnly(stack, readonly);
                } else {
                    throw new CommandException("commands.dynamictrees.createstaff.readonlyerror", args[7]);
                }
                break;
            case 8:
                try {
                    int maxUses = Integer.decode(args[8]);
                    if (maxUses <= 0) {
                        throw new CommandException("commands.dynamictrees.createstaff.maxuseserror", args[8]);
                    }
                    ModItems.treeStaff.setMaxUses(stack, maxUses);
                    ModItems.treeStaff.setUses(stack, maxUses);
                } catch (NumberFormatException e) {
                    throw new CommandException("commands.dynamictrees.createstaff.maxuseserror", args[8]);
                }
        }
    }
    ItemUtils.spawnItemStack(world, pos, stack, true);
}
Also used : WrongUsageException(net.minecraft.command.WrongUsageException) BlockPos(net.minecraft.util.math.BlockPos) CommandException(net.minecraft.command.CommandException) ItemStack(net.minecraft.item.ItemStack) Species(com.ferreusveritas.dynamictrees.trees.Species)

Example 38 with Species

use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.

the class CommandCreateTransformPotion method execute.

@Override
public void execute(World world, ICommandSender sender, String[] args) throws CommandException {
    if (args.length < 4) {
        throw new WrongUsageException("commands.dynamictrees.createtransformpotion.usage");
    }
    BlockPos pos = BlockPos.ORIGIN;
    Species species = null;
    for (int arg = 0; arg < args.length; arg++) {
        switch(arg) {
            case 3:
                pos = CommandBase.parseBlockPos(sender, args, 1, false);
                break;
            case 4:
                species = TreeRegistry.findSpeciesSloppy(args[4]);
                if (species == Species.NULLSPECIES) {
                    throw new CommandException("commands.dynamictrees.setree.specieserror", args[4]);
                }
                break;
        }
    }
    final DendroPotion dendroPotion = ModItems.dendroPotion;
    // Create the transform potion.
    final ItemStack dendroPotionStack = new ItemStack(dendroPotion, 1, DendroPotion.DendroPotionType.TRANSFORM.getIndex());
    // Tell it to set the target species to the given species.
    dendroPotion.setTargetSpecies(dendroPotionStack, species);
    // Spawn potion in the world.
    ItemUtils.spawnItemStack(world, pos, dendroPotionStack, true);
}
Also used : WrongUsageException(net.minecraft.command.WrongUsageException) DendroPotion(com.ferreusveritas.dynamictrees.items.DendroPotion) BlockPos(net.minecraft.util.math.BlockPos) CommandException(net.minecraft.command.CommandException) ItemStack(net.minecraft.item.ItemStack) Species(com.ferreusveritas.dynamictrees.trees.Species)

Example 39 with Species

use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.

the class CommandGetTree method execute.

@Override
public void execute(World world, ICommandSender sender, String[] args) throws CommandException {
    if (args.length < 4) {
        throw new WrongUsageException("commands.dynamictrees.getree.usage");
    }
    BlockPos pos = CommandBase.parseBlockPos(sender, args, 1, false);
    Species species = TreeHelper.getBestGuessSpecies(world, pos);
    String code = TreeHelper.getJoCode(world, pos, species).map(JoCode::toString).orElse("?");
    sender.sendMessage((new TextComponentString(species.toString())));
    sender.sendMessage((new TextComponentString(code)));
}
Also used : WrongUsageException(net.minecraft.command.WrongUsageException) BlockPos(net.minecraft.util.math.BlockPos) TextComponentString(net.minecraft.util.text.TextComponentString) Species(com.ferreusveritas.dynamictrees.trees.Species) TextComponentString(net.minecraft.util.text.TextComponentString)

Example 40 with Species

use of com.ferreusveritas.dynamictrees.trees.Species in project DynamicTrees by DynamicTreesTeam.

the class WailaBranchHandler method getWailaBody.

@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> tooltip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
    if (WailaOther.invalid) {
        lastPos = BlockPos.ORIGIN;
        lastSpecies = Species.NULLSPECIES;
        lastVolume = 0;
        WailaOther.invalid = false;
    }
    NBTTagCompound nbtData = accessor.getNBTData();
    BlockPos pos = accessor.getPosition();
    Species species = Species.NULLSPECIES;
    // Attempt to get species from server via NBT data
    if (nbtData.hasKey("species")) {
        species = TreeRegistry.findSpecies(new ResourceLocation(nbtData.getString("species")));
    }
    // Attempt to get species by checking if we're still looking at the same block
    if (species == Species.NULLSPECIES && lastPos.equals(pos)) {
        species = lastSpecies;
    }
    // Attempt to get species from the world as a last resort as the operation can be rather expensive
    if (species == Species.NULLSPECIES) {
        species = getWailaSpecies(accessor.getWorld(), pos);
    }
    if (!species.useDefaultWailaBody()) {
        return tooltip;
    }
    if (!lastPos.equals(pos)) {
        lastVolume = getTreeVolume(accessor.getWorld(), pos);
    }
    // Update the cached species and position
    lastSpecies = species;
    lastPos = pos;
    if (species != Species.NULLSPECIES) {
        if (species.showSpeciesOnWaila()) {
            tooltip.add("Species: " + species.getLocalizedName());
        }
        if (Minecraft.getMinecraft().gameSettings.advancedItemTooltips) {
            tooltip.add(TextFormatting.DARK_GRAY + species.getRegistryName().toString());
        }
        String renderString = "";
        ItemStack seedStack = species.getSeedStack(1);
        String seedName = seedStack.getItem().getRegistryName().toString();
        renderString += SpecialChars.getRenderString("waila.stack", "1", seedName, String.valueOf(1), String.valueOf(seedStack.getItemDamage()));
        if (lastVolume > 0) {
            LogsAndSticks las = species.getLogsAndSticks(lastVolume);
            if (las.logs > 0) {
                ItemStack logStack = species.getFamily().getPrimitiveLogItemStack(1);
                String logName = logStack.getItem().getRegistryName().toString();
                renderString += SpecialChars.getRenderString("waila.stack", "1", logName, String.valueOf(las.logs), String.valueOf(logStack.getItemDamage()));
            }
            if (las.sticks > 0) {
                ItemStack stickStack = species.getFamily().getStick(1);
                String stickName = stickStack.getItem().getRegistryName().toString();
                renderString += SpecialChars.getRenderString("waila.stack", "1", stickName, String.valueOf(las.sticks), String.valueOf(stickStack.getItemDamage()));
            }
        }
        tooltip.add(renderString);
    }
    return tooltip;
}
Also used : ResourceLocation(net.minecraft.util.ResourceLocation) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) BlockPos(net.minecraft.util.math.BlockPos) ItemStack(net.minecraft.item.ItemStack) Species(com.ferreusveritas.dynamictrees.trees.Species) LogsAndSticks(com.ferreusveritas.dynamictrees.trees.Species.LogsAndSticks)

Aggregations

Species (com.ferreusveritas.dynamictrees.trees.Species)56 BlockPos (net.minecraft.util.math.BlockPos)24 IBlockState (net.minecraft.block.state.IBlockState)19 ItemStack (net.minecraft.item.ItemStack)12 GrowSignal (com.ferreusveritas.dynamictrees.systems.GrowSignal)9 Direction (net.minecraft.util.Direction)9 ResourceLocation (net.minecraft.util.ResourceLocation)8 World (net.minecraft.world.World)8 TileEntitySpecies (com.ferreusveritas.dynamictrees.tileentity.TileEntitySpecies)6 EnumFacing (net.minecraft.util.EnumFacing)6 MapSignal (com.ferreusveritas.dynamictrees.api.network.MapSignal)5 BlockRooty (com.ferreusveritas.dynamictrees.blocks.BlockRooty)4 ArrayList (java.util.ArrayList)4 IBakedModel (net.minecraft.client.renderer.block.model.IBakedModel)4 WrongUsageException (net.minecraft.command.WrongUsageException)4 IExtendedBlockState (net.minecraftforge.common.property.IExtendedBlockState)4 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)4 ITreePart (com.ferreusveritas.dynamictrees.api.treedata.ITreePart)3 BlockBonsaiPot (com.ferreusveritas.dynamictrees.blocks.BlockBonsaiPot)3 TreeFamily (com.ferreusveritas.dynamictrees.trees.TreeFamily)3