Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: TokenRAWplacement - new utility for mod bundlers and tileset authors  (Read 3234 times)

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile

So after learning that modders had to keep most of the RAWs in synch between different tilesets that they want to include, I thought there had to be a better way.

I wrote a little program that will take a file and change the TILE & COLOR (along with other tokens) in your main "master" RAW folder.

The input file would have the same structure as the original "master" file with all of the tokens that you don't want to change removed. The program will likely work for any token that makes use of a : after the token name and the token only occurs once in the object, but I designed it to help with tileset changes and haven't tested it with anything else.

Spoiler (click to show/hide)

The only issue that I am aware of at this time, is that the multiple DISPLAY_COLOR tokens that may occur in a PLANT for the products that can be processed from them, alcohol, leaves, powder, etc.  So in my example set of RAWs, I only included the token that would change the plant's color.

I'm including the files necessary to convert the RAWs back to the default ASCII tileset. The program doesn't handle the changes that are also needed for the graphics files, it only handles the RAWs.

Usage:
TokenRAWplacement "masterRAWfolder" "inputRAWfolder" [/b]


The /b option will create a backup of the master file before it overwrites it.


Once I figure out how to put my source code in GIT, I'll make it available.  Or I just may post it in the forums since it's less than 200 lines of VB.


http://dffd.wimbli.com/file.php?id=8161
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #1 on: November 21, 2013, 07:04:07 pm »

The code (for people who want to compile it themselves.  Visual Basic 2010 Express shouldn't have a problem compiling it.
Spoiler (click to show/hide)

Yeah, I didn't comment or do much error checking.  I just wanted to get it done since I told Meph I could knock it out in a hurry.  :D
« Last Edit: November 21, 2013, 07:06:08 pm by Billy Jack »
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #2 on: November 22, 2013, 10:24:34 am »

Not to belittle your tool, but this is one of the thing that Rubble (see my signature) was designed to do. (Of course Rubble requires you to wrap everything in templates for it to work, so this would probably be better for simple jobs)
Logged
Rubble 8 - The most powerful modding suite in existence!
After all, coke is for furnaces, not for snorting.
You're not true dwarven royalty unless you own the complete 'Signature Collection' baby-bone bedroom set from NOKEAS

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #3 on: November 22, 2013, 10:46:33 am »

yes, this tool is designed to be bundled in one of the various wrappers that are used in mods that contain multiple tilesets.

So instead of the modder having to maintain the individual RAWs for each tileset when creatures/inorganics change, they can have a configuration file (hopefully provided by the tileset author) for each of the necessary RAW files. When the user clicks on the "Ironhand", the mod wrapping settings program would call the tool with the pointers to the input and output folders. The tool will then change out the specified tokens in each of the RAWs that it has an input file for.

Edit:  I was aware of Rubble prior to this, put I see it as having a steep learning curve for doing some simple things.  Your tool requires templates and knowledge of regular expressions in order to find what is being looked for, along with knowledge of whatever programming/scripting language you are using.

How would I use Rubble to change the [CREATURE_TILE:xx] and [COLOR:#:#:#] tokens for each of the creatures definitions in a file like creature_large_tropical.txt? I'm pretty certain that the Rubble template would be pretty complex and require a fews days of work for someone not familiar with the tool.

With my tool, the template file would look like this.

Code: [Select]
creature_large_tropical
[OBJECT:CREATURE]

[CREATURE:ELEPHANT]
[CREATURE_TILE:'E']
[COLOR:7:0:0]

[CREATURE:WARTHOG]
[CREATURE_TILE:'W']
[COLOR:6:0:0]

[CREATURE:LION]
[CREATURE_TILE:'L']
[COLOR:6:0:1]

[CREATURE:LEOPARD]
[CREATURE_TILE:'l']
[COLOR:6:0:1]

[CREATURE:JAGUAR]
[CREATURE_TILE:'J']
[COLOR:6:0:1]

[CREATURE:TIGER]
[CREATURE_TILE:'T']
[COLOR:6:0:1]

[CREATURE:CHEETAH]
[CREATURE_TILE:'c']
[COLOR:6:0:1]

[CREATURE:GAZELLE]
[CREATURE_TILE:'g']
[COLOR:6:0:0]

[CREATURE:MANDRILL]
[CREATURE_TILE:'m']
[COLOR:1:0:1]

[CREATURE:CHIMPANZEE]
[CREATURE_TILE:'c']
[COLOR:0:0:1]

[CREATURE:BONOBO]
[CREATURE_TILE:'b']
[COLOR:0:0:1]

[CREATURE:GORILLA]
[CREATURE_TILE:'G']
[COLOR:0:0:1]

[CREATURE:ORANGUTAN]
[CREATURE_TILE:'O']
[COLOR:6:0:0]

[CREATURE:GIBBON_SIAMANG]
[CREATURE_TILE:'s']
[COLOR:0:0:1]

[CREATURE:GIBBON_WHITE_HANDED]
[CREATURE_TILE:'g']
[COLOR:6:0:0]

[CREATURE:GIBBON_BLACK_HANDED]
[CREATURE_TILE:'g']
[COLOR:0:0:1]

[CREATURE:GIBBON_GRAY]
[CREATURE_TILE:'g']
[COLOR:0:0:1]

[CREATURE:GIBBON_SILVERY]
[CREATURE_TILE:'g']
[COLOR:0:0:1]

[CREATURE:GIBBON_PILEATED]
[CREATURE_TILE:'g']
[COLOR:0:0:1]

[CREATURE:GIBBON_BILOU]
[CREATURE_TILE:'g']
[COLOR:0:0:1]

[CREATURE:GIBBON_WHITE_BROWED]
[CREATURE_TILE:'g']
[COLOR:7:0:1]

[CREATURE:GIBBON_BLACK_CRESTED]
[CREATURE_TILE:'g']
[COLOR:0:0:1]

[CREATURE:CAMEL_1_HUMP]
[CREATURE_TILE:'C']
[COLOR:6:0:0]

[CREATURE:CAMEL_2_HUMP]
[CREATURE_TILE:'C']
[COLOR:6:0:0]

[CREATURE:CROCODILE_SALTWATER]
[CREATURE_TILE:'C']
[COLOR:2:0:0]

[CREATURE:BIRD_VULTURE]
[CREATURE_TILE:'v']
[COLOR:4:0:0]

[CREATURE:RHINOCEROS]
[CREATURE_TILE:'R']
[COLOR:7:0:0]

[CREATURE:GIRAFFE]
[CREATURE_TILE:'G']
[COLOR:6:0:0]

[CREATURE:HONEY BADGER]
[CREATURE_TILE:'b']
[COLOR:7:0:1]

[CREATURE:GIANT TORTOISE]
[CREATURE_TILE:'T']
[COLOR:6:0:0]

[CREATURE:GIANT TORTOISE MAN]
[CREATURE_TILE:'T']
[COLOR:6:0:0]

[CREATURE:GIGANTIC TORTOISE]
[CREATURE_TILE:'T']
[COLOR:6:0:0]

[CREATURE:ARMADILLO]
[CREATURE_TILE:'a']
[COLOR:7:0:0]

[CREATURE:ARMADILLO MAN]
[CREATURE_TILE:'a']
[COLOR:7:0:0]

[CREATURE:ARMADILLO, GIANT]
[CREATURE_TILE:'A']
[COLOR:7:0:0]

Pretty straight forward for any tileset or mod author.
« Last Edit: November 22, 2013, 11:15:01 am by Billy Jack »
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

Urist McTeellox

  • Bay Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #4 on: November 23, 2013, 09:50:04 am »

I just want to check my understanding of the code here. It's almost 2am in my local timezone, so forgive me if I've missed anything obvious. ;)

Am I correct that any tags placed into a template file will get picked up and used, so ideally templates should *only* consist of tags which are different for each tileset, but can happily include all the variations liked picked shrub colours and different grass variations?

How does the code know that [CREATURE:ELEPHANT] is referring to an entity, and that isn't a tag inside the entity? Is it because it's using the '[OBJECT:CREATURE]' header at the top of the file?

~ T
Logged

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #5 on: November 23, 2013, 11:58:51 am »

The first bit of code checks for the [OBJECT:

The text after that will indicate the identifier's for the rest of the file.  [OBJECT:CREATURE] has the rest of the token definitions as [CREATURE:xxxxx].  The only exception I've seen is the ITEM_TOOL.  But since they are the only ITEM's that have tiles, the code knows that [OBJECT:ITEM] will have have items that start with [ITEM_TOOL:xxx]

It then splits the entire file into an array, using [xxxx: as the split indicator.

Cycle through the array, looking for the first ']' and take the text that's ahead of it as the name xxx.  As it's locating those, it moves the data into an associative array, or Dictionary in .NET terms.
It uses xxx as the key and the rest of the text in that array as the item. Both the input file and master file are cycled through.

So the file above, the input dictionary will have a key of 'ELEPHANT' with it's item data as '[CREATURE_TILE:'E'][COLOR:7:0:0]'. it will have keys for each of the CREATUREs.

After that, the input dictionary is cycled through, using it's keys to locate the matching keys in the master dictionary. Uses more array splitting to get the name of the token and the data that needs to change.

Once the master dictionary's item data has been updated, the file is rebuilt and saved.

The program will handle tokens that use a colon in them. It won't handle non-coloned tokens such as [FANCIFUL].
Plant may have multiple tokens of the same name, so it will only change the first token.  I don't know if I've ever seen a tile for any of the other stuff defined in them, since they are usually in a container.
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #6 on: November 26, 2013, 03:26:10 pm »

Edit:  I was aware of Rubble prior to this, put I see it as having a steep learning curve for doing some simple things.  Your tool requires templates and knowledge of regular expressions in order to find what is being looked for, along with knowledge of whatever programming/scripting language you are using.

How would I use Rubble to change the [CREATURE_TILE:xx] and [COLOR:#:#:#] tokens for each of the creatures definitions in a file like creature_large_tropical.txt? I'm pretty certain that the Rubble template would be pretty complex and require a fews days of work for someone not familiar with the tool.

[CREATURE_TILE:{#TILE;<creature id>;xx}] and [COLOR:{#COLOR;<creature id>;#:#:#}] (then you put {SET_TILE;<creature id>;xx} or {SET_COLOR;<creature id>;#:#:#} into your tileset support addon) No regexes needed. (I do use regexes to make insertion of calls to #TILE and #COLOR automatic for inorganics, plants and material templates, but the user does not need to know that.)

For most cases you just need somthing like {SHARED_INORGANIC;ID;<guts of the inorganic>} (other shared object templates exist), calls to #TILE and #COLOR are inserted automaticly. Then for every tileset you want to add support for you just need to make a large file with lots of calls to SET_TILE and SET_COLOR (I think you got the idea that you need regexes from the section of the docs where it explains how to machine generate the tileset addon file)

I plan to write a tutorial for the Rubble tutorial thread about this. It'll probably be the next one after the current one I am working on.
Logged
Rubble 8 - The most powerful modding suite in existence!
After all, coke is for furnaces, not for snorting.
You're not true dwarven royalty unless you own the complete 'Signature Collection' baby-bone bedroom set from NOKEAS

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #7 on: November 26, 2013, 05:40:08 pm »

So explain to me the steps I would need to do if I downloaded a mod that only included one tileset and I want to use a different tileset. If this is what you will cover in your tutorial, then just say so.

Using the TokenRAWplacement tool, you would have an input file of:
Spoiler (click to show/hide)

Run the tool, TokenRAWPlacement c:\DwarfFortress\raw\objects c:\mytilesets and it will change the defined tokens in the master set of RAWs.
If you get tired of that tileset, you run the tool again, pointing to the next tileset.

The tileset author would only create the files as shown above, without having to include any other tokens. The modder who wants to include many tilesets, would only need to run the tool to change the RAWs on the fly. He wouldn't have to keep a full set of creature/plants/item/materials RAWs in a separate folder. He would just need an input file for each tileset.

EDIT: It looks like with Rubble I still need a file to map each object to its appropriate tile and color for each tileset. If you think creating a Rubble tileset support addon, adding some SHARED-INORGANIC (I don't know what you are doing with this, but I've never tried to understand Rubble), and then creating a file to make SET_TILE, SET_COLOR, SET_ALTTILE, SET_DEAD_TREE_TILE, SET_DEAD_SAPLING_TILE, etc., is easy then I have nothing more to say on it.  I just have better things I could learn instead of another scripting language because I want to use Ironhand instead of Phoebus.

I just don't think that's as easy as having:
Spoiler (click to show/hide)
« Last Edit: November 26, 2013, 05:54:43 pm by Billy Jack »
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #8 on: December 02, 2013, 01:08:27 pm »

How about:
Code: [Select]
# ALL tiles/colors for the Essential DF mod
# This file was automatically generated (execpt the tool tiles, and Rubble 3.3 will do them as well)
{SET_TILE;ITEM_TOOL_CAULDRON;150}
{SET_TILE;ITEM_TOOL_LADLE;13}
{SET_TILE;ITEM_TOOL_BOWL;248}
{SET_TILE;ITEM_TOOL_MORTAR;248}
{SET_TILE;ITEM_TOOL_PESTLE;'/'}
{SET_TILE;ITEM_TOOL_KNIFE_CARVING;'/'}
{SET_TILE;ITEM_TOOL_KNIFE_BONING;'/'}
{SET_TILE;ITEM_TOOL_KNIFE_SLICING;'/'}
{SET_TILE;ITEM_TOOL_KNIFE_MEAT_CLEAVER;'/'}
{SET_TILE;ITEM_TOOL_FORK_CARVING;'/'}
{SET_TILE;ITEM_TOOL_NEST_BOX;8}
{SET_TILE;ITEM_TOOL_JUG;229}
{SET_TILE;ITEM_TOOL_LARGE_POT;232}
{SET_TILE;ITEM_TOOL_HIVE;22}
{SET_TILE;ITEM_TOOL_HONEYCOMB;236}
{SET_TILE;ITEM_TOOL_POUCH;173}
{SET_TILE;ITEM_TOOL_MINECART;152}
{SET_TILE;ITEM_TOOL_WHEELBARROW;152}

{SET_TILE;CITRINE;169}
{SET_COLOR;CITRINE;6:15:0}
{SET_TILE;LAPIS_LAZULI;169}
{SET_COLOR;LAPIS_LAZULI;1:15:0}
{SET_TILE;ONYX;169}
{SET_COLOR;ONYX;0:15:0}
{SET_TILE;OPAL;169}
{SET_COLOR;OPAL;6:15:0}
{SET_TILE;ROCK_CRYSTAL;169}
{SET_COLOR;ROCK_CRYSTAL;7:15:0}
{SET_TILE;AQUAMARINE;170}
{SET_COLOR;AQUAMARINE;3:15:0}
{SET_TILE;BERYL;170}
{SET_COLOR;BERYL;6:15:0}
{SET_TILE;GARNET;170}
{SET_COLOR;GARNET;4:15:0}
{SET_TILE;JADE;170}
{SET_COLOR;JADE;2:15:0}
{SET_TILE;TOURMALINE;170}
{SET_COLOR;TOURMALINE;3:15:0}
{SET_TILE;ZIRCON;170}
{SET_COLOR;ZIRCON;6:15:0}
{SET_TILE;AMETHYST;171}
{SET_COLOR;AMETHYST;5:15:0}
{SET_TILE;EMERALD;171}
{SET_COLOR;EMERALD;2:15:0}
{SET_TILE;RUBY;171}
{SET_COLOR;RUBY;4:15:0}
{SET_TILE;SAPPHIRE;171}
{SET_COLOR;SAPPHIRE;1:15:0}
{SET_TILE;TOPAZ;171}
{SET_COLOR;TOPAZ;6:15:0}
{SET_TILE;DIAMOND;172}
{SET_COLOR;DIAMOND;7:15:0}
{SET_TILE;STAR_EMERALD;172}
{SET_COLOR;STAR_EMERALD;2:15:0}
{SET_TILE;STAR_RUBY;172}
{SET_COLOR;STAR_RUBY;4:15:0}
{SET_TILE;STAR_SAPPHIRE;172}
{SET_COLOR;STAR_SAPPHIRE;1:15:0}
{SET_COLOR;CONGLOMERATE;0:15:1}
{SET_TILE;CONGLOMERATE;131}
{SET_COLOR;SANDSTONE;6:15:0}
{SET_TILE;SANDSTONE;133}
{SET_COLOR;SILTSTONE;6:15:0}
{SET_TILE;SILTSTONE;133}
{SET_COLOR;CHALK;7:15:0}
{SET_TILE;CHALK;137}
{SET_COLOR;MARBLE;7:15:0}
{SET_TILE;MARBLE;137}
{SET_COLOR;GRANITE;0:15:1}
{SET_TILE;GRANITE;132}
{SET_COLOR;BASALT;0:15:1}
{SET_TILE;BASALT;132}
{SET_COLOR;OBSIDIAN;0:15:1}
{SET_TILE;OBSIDIAN;132}
{SET_COLOR;GNEISS;0:15:1}
{SET_TILE;GNEISS;133}
{SET_COLOR;SCHIST;0:15:1}
{SET_TILE;SCHIST;133}
{SET_COLOR;SLATE;0:15:1}
{SET_TILE;SLATE;133}
{SET_COLOR;QUARTZITE;0:15:1}
{SET_TILE;QUARTZITE;133}
{SET_TILE;ITEM_COPPER_ORE;'*'}
{SET_COLOR;COPPER_ORE;6:15:0}
{SET_TILE;COPPER_ORE;156}
{SET_COLOR;TIN_ORE;7:7:0}
{SET_TILE;TIN_ORE;156}
{SET_TILE;ITEM_TIN_ORE;'*'}
{SET_COLOR;IRON_ORE;4:7:1}
{SET_TILE;IRON_ORE;156}
{SET_TILE;ITEM_IRON_ORE;'*'}
{SET_TILE;ITEM_NATIVE_SILVER;'*'}
{SET_COLOR;NATIVE_SILVER;3:7:1}
{SET_TILE;NATIVE_SILVER;156}
{SET_TILE;ITEM_NATIVE_GOLD;'*'}
{SET_COLOR;NATIVE_GOLD;6:7:1}
{SET_TILE;NATIVE_GOLD;156}
{SET_TILE;ITEM_NATIVE_ALUMINUM;'*'}
{SET_COLOR;NATIVE_ALUMINUM;7:7:1}
{SET_TILE;NATIVE_ALUMINUM;156}
{SET_TILE;ITEM_NATIVE_PLATINUM;'*'}
{SET_COLOR;NATIVE_PLATINUM;7:15:0}
{SET_TILE;NATIVE_PLATINUM;171}
{SET_COLOR;ANTHRACITE;0:7:1}
{SET_TILE;ANTHRACITE;139}
{SET_TILE;ITEM_ANTHRACITE;7}
{SET_COLOR;COAL_BITUMINOUS;0:7:1}
{SET_TILE;COAL_BITUMINOUS;139}
{SET_TILE;ITEM_COAL_BITUMINOUS;7}
{SET_COLOR;LIGNITE;0:7:1}
{SET_TILE;LIGNITE;139}
{SET_COLOR;ALABASTER;7:15:0}
{SET_TILE;ALABASTER;131}
{SET_COLOR;GYPSUM;6:15:0}
{SET_TILE;GYPSUM;131}
{SET_COLOR;BAUXITE;4:15:0}
{SET_TILE;BAUXITE;131}
{SET_COLOR;ROCK_SALT;7:15:0}
{SET_TILE;ROCK_SALT;131}
{SET_TILE;ITEM_RAW_ADAMANTINE;7}
{SET_COLOR;RAW_ADAMANTINE;3:15:0}
{SET_TILE;RAW_ADAMANTINE;172}
{SET_COLOR;SLADE;0:0:1}
{SET_TILE;SLADE;176}
{SET_TILE;ITEM_SLADE;'*'}
{SET_COLOR;SLADE;0:0:1}
{SET_COLOR;CLAY;4:6:0}
{SET_TILE;CLAY;142}
{SET_COLOR;FIRE_CLAY;4:6:0}
{SET_TILE;FIRE_CLAY;142}
{SET_COLOR;LOAM;6:7:0}
{SET_TILE;LOAM;142}
{SET_COLOR;SILT;6:7:0}
{SET_TILE;SILT;142}
{SET_COLOR;SAND;6:4:1}
{SET_TILE;SAND;142}
{SET_COLOR;PEAT;0:6:1}
{SET_TILE;PEAT;142}
{SET_COLOR;PELAGIC_CLAY;4:6:0}
{SET_TILE;PELAGIC_CLAY;142}
{SET_TILE;PICKED_BLADE_WEED;252}
{SET_COLOR;PICKED_BLADE_WEED;2:0:0}
{SET_TILE;SHRUB_BLADE_WEED;252}
{SET_TILE;DEAD_SHRUB_BLADE_WEED;252}
{SET_COLOR;SHRUB_BLADE_WEED;2:0:0}
{SET_COLOR;DEAD_SHRUB_BLADE_WEED;0:0:1}
{SET_TILE;PICKED_BLOATED_TUBER;'%'}
{SET_COLOR;PICKED_BLOATED_TUBER;6:0:0}
{SET_TILE;SHRUB_BLOATED_TUBER;237}
{SET_TILE;DEAD_SHRUB_BLOATED_TUBER;252}
{SET_COLOR;SHRUB_BLOATED_TUBER;6:0:0}
{SET_COLOR;DEAD_SHRUB_BLOATED_TUBER;0:0:1}
{SET_TILE;PICKED_FISHER_BERRY;248}
{SET_COLOR;PICKED_FISHER_BERRY;3:0:0}
{SET_TILE;SHRUB_FISHER_BERRY;'"'}
{SET_TILE;DEAD_SHRUB_FISHER_BERRY;252}
{SET_COLOR;SHRUB_FISHER_BERRY;2:0:0}
{SET_COLOR;DEAD_SHRUB_FISHER_BERRY;0:0:1}
{SET_TILE;PICKED_HIDE_ROOT;252}
{SET_COLOR;PICKED_HIDE_ROOT;6:0:0}
{SET_TILE;SHRUB_HIDE_ROOT;252}
{SET_TILE;DEAD_SHRUB_HIDE_ROOT;252}
{SET_COLOR;SHRUB_HIDE_ROOT;6:0:0}
{SET_COLOR;DEAD_SHRUB_HIDE_ROOT;0:0:1}
{SET_TILE;PICKED_KOBOLD_BULB;'%'}
{SET_COLOR;PICKED_KOBOLD_BULB;0:0:1}
{SET_TILE;SHRUB_KOBOLD_BULB;252}
{SET_TILE;DEAD_SHRUB_KOBOLD_BULB;252}
{SET_COLOR;SHRUB_KOBOLD_BULB;7:0:0}
{SET_COLOR;DEAD_SHRUB_KOBOLD_BULB;0:0:1}
{SET_TILE;PICKED_LONGLAND_GRASS;252}
{SET_COLOR;PICKED_LONGLAND_GRASS;2:0:0}
{SET_TILE;SHRUB_LONGLAND_GRASS;252}
{SET_TILE;DEAD_SHRUB_LONGLAND_GRASS;252}
{SET_COLOR;SHRUB_LONGLAND_GRASS;2:0:0}
{SET_COLOR;DEAD_SHRUB_LONGLAND_GRASS;0:0:1}
{SET_TILE;PICKED_MUCK_ROOT;252}
{SET_COLOR;PICKED_MUCK_ROOT;6:0:0}
{SET_TILE;SHRUB_MUCK_ROOT;252}
{SET_TILE;DEAD_SHRUB_MUCK_ROOT;252}
{SET_COLOR;SHRUB_MUCK_ROOT;6:0:0}
{SET_COLOR;DEAD_SHRUB_MUCK_ROOT;0:0:1}
{SET_TILE;PICKED_PRICKLE_BERRY;248}
{SET_COLOR;PICKED_PRICKLE_BERRY;4:0:0}
{SET_TILE;SHRUB_PRICKLE_BERRY;'"'}
{SET_TILE;DEAD_SHRUB_PRICKLE_BERRY;252}
{SET_COLOR;SHRUB_PRICKLE_BERRY;2:0:0}
{SET_COLOR;DEAD_SHRUB_PRICKLE_BERRY;0:0:1}
{SET_TILE;PICKED_RAT_WEED;252}
{SET_COLOR;PICKED_RAT_WEED;2:0:0}
{SET_TILE;SHRUB_RAT_WEED;252}
{SET_TILE;DEAD_SHRUB_RAT_WEED;252}
{SET_COLOR;SHRUB_RAT_WEED;2:0:0}
{SET_COLOR;DEAD_SHRUB_RAT_WEED;0:0:1}
{SET_TILE;PICKED_ROPE_REED;252}
{SET_COLOR;PICKED_ROPE_REED;2:0:0}
{SET_TILE;SHRUB_ROPE_REED;252}
{SET_TILE;DEAD_SHRUB_ROPE_REED;252}
{SET_COLOR;SHRUB_ROPE_REED;2:0:0}
{SET_COLOR;DEAD_SHRUB_ROPE_REED;0:0:1}
{SET_TILE;PICKED_SLIVER_BARB;252}
{SET_COLOR;PICKED_SLIVER_BARB;0:0:1}
{SET_TILE;SHRUB_SLIVER_BARB;252}
{SET_TILE;DEAD_SHRUB_SLIVER_BARB;252}
{SET_COLOR;SHRUB_SLIVER_BARB;7:0:0}
{SET_COLOR;DEAD_SHRUB_SLIVER_BARB;0:0:1}
{SET_TILE;PICKED_STRAWBERRY;248}
{SET_COLOR;PICKED_STRAWBERRY;4:0:0}
{SET_TILE;SHRUB_STRAWBERRY;'"'}
{SET_TILE;DEAD_SHRUB_STRAWBERRY;252}
{SET_COLOR;SHRUB_STRAWBERRY;2:0:0}
{SET_COLOR;DEAD_SHRUB_STRAWBERRY;0:0:1}
{SET_TILE;PICKED_SUN_BERRY;248}
{SET_COLOR;PICKED_SUN_BERRY;6:0:0}
{SET_TILE;SHRUB_SUN_BERRY;'"'}
{SET_TILE;DEAD_SHRUB_SUN_BERRY;252}
{SET_COLOR;SHRUB_SUN_BERRY;2:0:0}
{SET_COLOR;DEAD_SHRUB_SUN_BERRY;0:0:1}
{SET_TILE;PICKED_VALLEY_HERB;252}
{SET_COLOR;PICKED_VALLEY_HERB;2:0:0}
{SET_TILE;SHRUB_VALLEY_HERB;252}
{SET_TILE;DEAD_SHRUB_VALLEY_HERB;252}
{SET_COLOR;SHRUB_VALLEY_HERB;2:0:0}
{SET_COLOR;DEAD_SHRUB_VALLEY_HERB;0:0:1}
{SET_TILE;PICKED_WHIP_VINE;21}
{SET_COLOR;PICKED_WHIP_VINE;2:0:0}
{SET_TILE;SHRUB_WHIP_VINE;21}
{SET_TILE;DEAD_SHRUB_WHIP_VINE;252}
{SET_COLOR;SHRUB_WHIP_VINE;2:0:0}
{SET_COLOR;DEAD_SHRUB_WHIP_VINE;0:0:1}
{SET_TILE;PICKED_DIMPLE_CUP;3}
{SET_COLOR;PICKED_DIMPLE_CUP;3:0:0}
{SET_TILE;SHRUB_DIMPLE_CUP;3}
{SET_TILE;DEAD_SHRUB_DIMPLE_CUP;252}
{SET_COLOR;SHRUB_DIMPLE_CUP;3:0:0}
{SET_COLOR;DEAD_SHRUB_DIMPLE_CUP;0:0:1}
{SET_TILE;PICKED_CAVE_WHEAT;252}
{SET_COLOR;PICKED_CAVE_WHEAT;7:0:0}
{SET_TILE;SHRUB_CAVE_WHEAT;252}
{SET_TILE;DEAD_SHRUB_CAVE_WHEAT;252}
{SET_COLOR;SHRUB_CAVE_WHEAT;7:0:0}
{SET_COLOR;DEAD_SHRUB_CAVE_WHEAT;0:0:1}
{SET_TILE;PICKED_PIG_TAIL;252}
{SET_COLOR;PICKED_PIG_TAIL;7:0:0}
{SET_TILE;SHRUB_PIG_TAIL;252}
{SET_TILE;DEAD_SHRUB_PIG_TAIL;252}
{SET_COLOR;SHRUB_PIG_TAIL;7:0:0}
{SET_COLOR;DEAD_SHRUB_PIG_TAIL;0:0:1}
{SET_TILE;PICKED_PLUMP_HELMET;3}
{SET_COLOR;PICKED_PLUMP_HELMET;5:0:1}
{SET_TILE;SHRUB_PLUMP_HELMET;3}
{SET_TILE;DEAD_SHRUB_PLUMP_HELMET;252}
{SET_COLOR;SHRUB_PLUMP_HELMET;5:0:0}
{SET_COLOR;DEAD_SHRUB_PLUMP_HELMET;0:0:1}
{SET_TILE;PICKED_SWEET_POD;'%'}
{SET_COLOR;PICKED_SWEET_POD;4:0:0}
{SET_TILE;SHRUB_SWEET_POD;252}
{SET_TILE;DEAD_SHRUB_SWEET_POD;252}
{SET_COLOR;SHRUB_SWEET_POD;4:0:0}
{SET_COLOR;DEAD_SHRUB_SWEET_POD;0:0:1}
{SET_TILE;PICKED_QUARRY_BUSH;'"'}
{SET_COLOR;PICKED_QUARRY_BUSH;7:0:0}
{SET_TILE;SHRUB_QUARRY_BUSH;'"'}
{SET_TILE;DEAD_SHRUB_QUARRY_BUSH;252}
{SET_COLOR;SHRUB_QUARRY_BUSH;7:0:0}
{SET_COLOR;DEAD_SHRUB_QUARRY_BUSH;0:0:1}
{SET_TILE;TREE_MANGROVE;5}
{SET_COLOR;TREE_MANGROVE;2:2:1}
{SET_COLOR;DEAD_TREE_MANGROVE;6:0:0}
{SET_TILE;TREE_SAGUARO;166}
{SET_COLOR;TREE_SAGUARO;7:0:1}
{SET_COLOR;DEAD_TREE_SAGUARO;6:0:0}
{SET_TILE;TREE_PINE;24}
{SET_COLOR;TREE_PINE;2:2:1}
{SET_COLOR;DEAD_TREE_PINE;6:0:0}
{SET_TILE;TREE_CEDAR;24}
{SET_COLOR;TREE_CEDAR;2:2:1}
{SET_COLOR;DEAD_TREE_CEDAR;6:0:0}
{SET_TILE;TREE_OAK;6}
{SET_COLOR;TREE_OAK;2:2:1}
{SET_COLOR;DEAD_TREE_OAK;6:0:0}
{SET_TILE;TREE_MAHOGANY;23}
{SET_COLOR;TREE_MAHOGANY;2:2:1}
{SET_COLOR;DEAD_TREE_MAHOGANY;6:0:0}
{SET_TILE;TREE_ACACIA;5}
{SET_COLOR;TREE_ACACIA;2:2:1}
{SET_COLOR;DEAD_TREE_ACACIA;6:0:0}
{SET_TILE;TREE_KAPOK;226}
{SET_COLOR;TREE_KAPOK;2:2:1}
{SET_COLOR;DEAD_TREE_KAPOK;6:0:0}
{SET_TILE;TREE_MAPLE;5}
{SET_COLOR;TREE_MAPLE;2:2:1}
{SET_COLOR;DEAD_TREE_MAPLE;6:0:0}
{SET_TILE;TREE_WILLOW;244}
{SET_COLOR;TREE_WILLOW;2:2:1}
{SET_COLOR;DEAD_TREE_WILLOW;6:0:0}
{SET_TILE;TREE_TOWER_CAP;130}
{SET_COLOR;TREE_TOWER_CAP;7:6:1}
{SET_COLOR;DEAD_TREE_TOWER_CAP;0:0:1}
{SET_COLOR;SAPLING_TOWER_CAP;7:0:1}
{SET_COLOR;DEAD_SAPLING_TOWER_CAP;0:0:1}
{SET_TILE;TREE_BLACK_CAP;130}
{SET_COLOR;TREE_BLACK_CAP;7:6:1}
{SET_COLOR;DEAD_TREE_BLACK_CAP;0:0:1}
{SET_COLOR;SAPLING_BLACK_CAP;0:0:1}
{SET_COLOR;DEAD_SAPLING_BLACK_CAP;0:0:1}
{SET_TILE;TREE_NETHER_CAP;130}
{SET_COLOR;TREE_NETHER_CAP;7:6:1}
{SET_COLOR;DEAD_TREE_NETHER_CAP;0:0:1}
{SET_COLOR;SAPLING_NETHER_CAP;1:0:0}
{SET_COLOR;DEAD_SAPLING_NETHER_CAP;0:0:1}
{SET_TILE;TREE_GOBLIN_CAP;129}
{SET_COLOR;TREE_GOBLIN_CAP;7:6:1}
{SET_COLOR;DEAD_TREE_GOBLIN_CAP;0:0:1}
{SET_COLOR;SAPLING_GOBLIN_CAP;4:0:1}
{SET_COLOR;DEAD_SAPLING_GOBLIN_CAP;0:0:1}
{SET_TILE;TREE_FUNGIWOOD;255}
{SET_COLOR;TREE_FUNGIWOOD;7:6:1}
{SET_COLOR;DEAD_TREE_FUNGIWOOD;0:0:1}
{SET_COLOR;SAPLING_FUNGIWOOD;6:0:1}
{SET_COLOR;DEAD_SAPLING_FUNGIWOOD;0:0:1}
{SET_TILE;TREE_TUNNEL_TUBE;255}
{SET_COLOR;TREE_TUNNEL_TUBE;7:6:1}
{SET_COLOR;DEAD_TREE_TUNNEL_TUBE;0:0:1}
{SET_COLOR;SAPLING_TUNNEL_TUBE;5:0:1}
{SET_COLOR;DEAD_SAPLING_TUNNEL_TUBE;0:0:1}
{SET_TILE;TREE_SPORE_TREE;255}
{SET_COLOR;TREE_SPORE_TREE;7:6:1}
{SET_COLOR;DEAD_TREE_SPORE_TREE;0:0:1}
{SET_COLOR;SAPLING_SPORE_TREE;3:0:0}
{SET_COLOR;DEAD_SAPLING_SPORE_TREE;0:0:1}
{SET_TILE;TREE_BLOOD_THORN;255}
{SET_TILE;DEAD_TREE_BLOOD_THORN;181}
{SET_COLOR;TREE_BLOOD_THORN;7:6:1}
{SET_COLOR;DEAD_TREE_BLOOD_THORN;5:0:0}
{SET_COLOR;SAPLING_BLOOD_THORN;4:0:0}
{SET_COLOR;DEAD_SAPLING_BLOOD_THORN;5:0:0}
{SET_TILE;TREE_GLUMPRONG;255}
{SET_COLOR;TREE_GLUMPRONG;7:6:1}
{SET_COLOR;DEAD_TREE_GLUMPRONG;0:0:1}
{SET_TILE;TREE_FEATHER;23}
{SET_COLOR;TREE_FEATHER;2:2:1}
{SET_COLOR;DEAD_TREE_FEATHER;7:0:0}
{SET_TILE;TREE_HIGHWOOD;23}
{SET_COLOR;TREE_HIGHWOOD;2:2:1}
{SET_COLOR;DEAD_TREE_HIGHWOOD;6:0:0}
{SET_TILE;TREE_LARCH;24}
{SET_COLOR;TREE_LARCH;2:2:1}
{SET_COLOR;DEAD_TREE_LARCH;6:0:0}
{SET_TILE;TREE_CHESTNUT;6}
{SET_COLOR;TREE_CHESTNUT;2:2:1}
{SET_COLOR;DEAD_TREE_CHESTNUT;6:0:0}
{SET_TILE;TREE_ALDER;5}
{SET_COLOR;TREE_ALDER;2:2:1}
{SET_COLOR;DEAD_TREE_ALDER;6:0:0}
{SET_TILE;TREE_BIRCH;5}
{SET_COLOR;TREE_BIRCH;2:2:1}
{SET_COLOR;DEAD_TREE_BIRCH;6:0:0}
{SET_TILE;TREE_ASH;6}
{SET_COLOR;TREE_ASH;2:2:1}
{SET_COLOR;DEAD_TREE_ASH;6:0:0}
{SET_TILE;TREE_CANDLENUT;226}
{SET_COLOR;TREE_CANDLENUT;2:2:1}
{SET_COLOR;DEAD_TREE_CANDLENUT;6:0:0}
{SET_TILE;TREE_MANGO;226}
{SET_COLOR;TREE_MANGO;2:2:1}
{SET_COLOR;DEAD_TREE_MANGO;6:0:0}
{SET_TILE;TREE_RUBBER;226}
{SET_COLOR;TREE_RUBBER;2:2:1}
{SET_COLOR;DEAD_TREE_RUBBER;6:0:0}
{SET_TILE;TREE_CACAO;226}
{SET_COLOR;TREE_CACAO;2:2:1}
{SET_COLOR;DEAD_TREE_CACAO;6:0:0}
{SET_TILE;TREE_PALM;226}
{SET_COLOR;TREE_PALM;2:2:1}
{SET_COLOR;DEAD_TREE_PALM;6:0:0}
Logged
Rubble 8 - The most powerful modding suite in existence!
After all, coke is for furnaces, not for snorting.
You're not true dwarven royalty unless you own the complete 'Signature Collection' baby-bone bedroom set from NOKEAS

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #9 on: December 02, 2013, 03:44:11 pm »

I'm not going to question whether or not that would work. I think what TokenRAWplacement and Rubble are intended to do are two different things.

Rubble is intended to help generate RAW files based on templates (I know that may be simplistic and I apologize)

TokenRAWplacement is intended to be included with a Mod launching utility such as LNP or Masterwork. In the GUI, selecting a new tileset would call the TokenRAWplacement program to change the necessary tokens to properly display that tileset as it was designed.

Where it becomes more helpful is when dealing with true mods that change characteristics of creatures, plants, materials, and anything else that is displayed as a tile.  Instead of making sure that each of the different tilesets have RAWs that are in harmony with all of the modded characteristics, the tileset RAW would only have the info needed to apply the display information to the existing master set of RAWs. Thereby eliminating the possible bug tracking that would need to occur across tilesets (it works fine in Ironhand but fails in Phoebus).
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #10 on: December 03, 2013, 10:30:31 am »

And I was just saying that, while your utility look interesting Rubble can do everything it can do plus.

In any case enough. There is no use going back and forth anymore so I'll just stop.
Logged
Rubble 8 - The most powerful modding suite in existence!
After all, coke is for furnaces, not for snorting.
You're not true dwarven royalty unless you own the complete 'Signature Collection' baby-bone bedroom set from NOKEAS

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #11 on: December 03, 2013, 12:42:03 pm »

lol

Yeah, since we are the only ones talking about it, I guess there's no interest anyways.
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #12 on: December 08, 2013, 06:04:53 am »

I am, I just lack understanding. I have the feeling that this could somehow be linked with the MDF GUI to allow changing only the tilenumbers in ONE set of raws, instead of having 12 sets... it would make modding a lot easier. So I only keep one set, do all my modding on this, and if a person changes the tileset with the GUI, it would only change the tilenumbers and colors in this current set, instead of replacing the files with the ones from the backup sets.

And this utility would make more sense in the utility section :P Its only for modders with large mods and multiple tilesets anyway, I guess the usual suspects will hear about it soon enough.
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

Billy Jack

  • Bay Watcher
  • Baywatch Watcher
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #13 on: December 09, 2013, 05:33:31 pm »

Meph, you are correct in your understanding as to its intent.

One set of RAWs that contain all of the modded data, and one abbreviated set with only color and tile info for each different tileset.

I'm going to update the code in order to allow it to be run against an existing tileset and reduce it down to only the necessary tokens needed to define the display settings in the file.  That way, when the new version of DF comes out, there won't be any waiting for tilesets to be updated to support the new RAW changes.

(and now Putnam will step in with a link to the post with all of the expected RAW changes.  :) )
Logged
Give a dwarf a fish, you feed him for a season.
Give a dwarf a Fishpond, couple of buckets, build a Fishery, and enable Fishfarming labor; you feed him for a lifetime. (And get someone to clean and prep the fish)

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: TokenRAWplacement - new utility for mod bundlers and tileset authors
« Reply #14 on: December 09, 2013, 05:57:52 pm »

(and now Putnam will step in with a link to the post with all of the expected RAW changes.  :) )

You can't expect me to come in that quickly in a topic I've never posted in before :I

But it happened anyway.

(Just search "Justin Bieber" in the future of the fortress topic to find the post--why do you think I said that, anyway? ;))