Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3 4 ... 11

Author Topic: Rubble 6.16 - DF 40.24 - Final 40.x Rubble version.  (Read 37417 times)

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile

4.3 is up!

The big change this version is the splitting of "User/Generic Animal Mats", this addon has been split into many parts, each of which only affects a few types of materials. This means that you can now have generic leather without having generic meat!

Of course I also fixed any bugs I found (including a few very stupid ones, I need to learn to test things more).
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

isitanos

  • Bay Watcher
    • View Profile

Your description is missing some examples of cool stuff we can do with this tool, preferably before all the technical explanations.
Logged

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile

That's because instead of making examples for the first post I go ahead and write a full-up addon and add it to the list :)

Take a look at some of the addons listed in the third post, then look at how they are implemented, that should give you a few ideas.
Keep in mind that everything in this thread comes with Rubble, and in general is greatly expanded upon, so take a look at the documents.

(The technical stuff is kinda needed to stop "I won't read the readme, how to install plz?" questions)

Anyway 4.4 is coming soon, and I hope to support patches to allow for quicker minor updates, in any case 4.4 will include several internal structural updates and improvements.
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

mnjiman

  • Bay Watcher
    • View Profile

There are too many good bug patches to stick to .40.05.
Logged
I was thinking more along the lines of this legendary champion, all clad in dented and dinged up steel plate, his blood-drenched axe slung over his back, a notch in the handle for every enemy that saw the swing of that blade as the last sight they ever saw, a battered shield strapped over his arm... and a fluffy, pink stuffed hippo hidden discretely in his breastplate.

palu

  • Bay Watcher
  • Viva la resolution
    • View Profile

40.08 Base. I got tired of waiting. WinMerge FTW!

Edit: Is there any way to put things in data/speech?
« Last Edit: August 12, 2014, 09:21:44 pm by palu »
Logged
Hmph, palu showing off that reading-the-instructions superpower.
The internet encourages thoughtful, intelligent discussion and if you disagree I hate you.
DFHack DF2015 progress:

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile

4.4 will be up in a few seconds and with it comes an official 40.8 base and a whole bunch of new addons!

To put stuff into data/speech you will need to use a script, something like this should do fine:
Code: [Select]
(rubble:filetag "example.txt" NoWrite true) # keeps the file from being written to raw/objects but does not stop it from being parsed.
(axis:write [rubble:fs] "out:data/speech/example.txt" [rubble:raws "example.txt"])
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

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: Rubble 4.4 - Now on DF 40.8 (many new addons)!
« Reply #21 on: August 15, 2014, 07:19:52 pm »

Currently I am looking at adding support for compressed then base64 encoded file packages that Rubble could read and would be postable (in code tags for example), which would allow users to bypass DFFD for small mods.

Whether this is added depends on just how much I can compress a small addon.

Also I will be doing some experimentation with object/tag-wise diff formats, which may make it possible to shrink certain kinds of mods.

Any way we'll see what I come up with :)
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

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Rubble 4.4 - Now on DF 40.8 (many new addons)!
« Reply #22 on: August 15, 2014, 07:51:16 pm »

I have a few suggestions for ease of use of your app.

Dwarf Fortress should be a subfolder of rubble.  As is, I had to make a mess of folder trees to get rubble and dwarf fortress separate from each other for my mod managing purposes.  From the warning listed, it sounds like I DO NOT want to have anything but Vanilla Dwarf Fortress listed because it will ERASE a bunch of stuff including graphics packs as it warns me to back them up if I want them.  So yeah, separate folder for rubble.

Maybe a menu item to download most current zip from the homepage?

Also needing a save is kind of weird.  If a world needs to be genned and a save generated, maybe a popup notice on the "no save found".

I wasn't aware how to download addon packs from just running the gui.  I don't know if there's a repository of pre-supplied add-ons, are they user generated or automatically generated?  Is that the "readme section" for modders and there just isn't anything available atm.  Is there another thread post with addons?

My addons currently listed are just: "base" btw.

Also, having no addons listed and how to acquire more isn't self explanatory from the "readme" that is specifically for non modders that pretty much says to just run the gui.

Prepping region1 results in an error, also prepping raw results in the same error.
Code: [Select]
Entering Prep Mode for Region: region1
Error: GetFileAttributesEx ../data/save/region1/raw/prep: The system cannot find
 the file specified.
  Near bad_position|L:-1

Prepping a region I have no idea if it results in a corrupt data set with the error or not.

Just a few first impressions.

I'm glad you have a gui though.
« Last Edit: August 15, 2014, 08:06:37 pm by thistleknot »
Logged

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: Rubble 4.4 - Now on DF 40.8 (many new addons)!
« Reply #23 on: August 16, 2014, 12:15:18 am »

I was reading through your program.

It sounds cool.  I know how I can make some mods of mine in rubble.

Then I was thinking how i'm trying to auto-merge mods and how you deal with basically cherry picked "patch files" inbetween mods more or less; however, a modder has to cherry pick, and (I'm assuming cuz I haven't seen an example yet, but) when he does, he has to expand on just the patch differences?

So I was thinking (I haven't read all the documentation... yet).

Is you seem to be very aware of the entire raw structure, it seems like if you allow a player to modify aspects of reactions (kind of like a diff change) using your rubble system, that you yourself on the backend must wipe out and recreate the object id they are editing.  I haven't gotten up to that point in the documentation.  It would seem like a pain to make a modder have to rewrite an entire object by hand if he only made a single change to an object.  Like I said though, I'm not 100% on how you have your's setup.

While your rubble system seems great.  It seems like A HUGE LEARNING CURVE to apply mods, and it asks a lot of a mod creator.  Although... I can see if someone wanted to LEARN HOW TO MOD using rubble.  That's one thing.  But to be a modder and want to convert a mod to using rubble...  idk.  There's a lot to learn I would say.  Some of the things seem like modding shortcuts, but some of the other things seem like a lot of 3rd party language learning.  The basic templates seem easy enough.  However, when I mod (generally limited to merging), usually notepad++ and tortoisegitmerge is all I need and at most I need to google a regular expression every now and then.  I'm not 100% sure if porting diff patches to rubble format would be more or less work than trying to manually merge conflicts.  Have you considered parsing diff files?  Or have you had similar issues with having to review conflicts?  With what Peredexis just pointed out, a way to flatten diff files is to replace [ and ] with newlines followed by their respective [ and ].  I put a powershell script up that does it.  I think it has the potential for knocking out diff merge conflicts.

I have to admit though, your tool seems pretty all encompassing from this vantage point.
« Last Edit: August 16, 2014, 12:26:19 am by thistleknot »
Logged

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: Rubble 4.4 - Now on DF 40.8 (many new addons)!
« Reply #24 on: August 22, 2014, 12:29:34 pm »

I have a few suggestions for ease of use of your app.

I love suggestions, I never get any it seems.

Dwarf Fortress should be a subfolder of rubble.  As is, I had to make a mess of folder trees to get rubble and dwarf fortress separate from each other for my mod managing purposes.  From the warning listed, it sounds like I DO NOT want to have anything but Vanilla Dwarf Fortress listed because it will ERASE a bunch of stuff including graphics packs as it warns me to back them up if I want them.  So yeah, separate folder for rubble.

I am not sure how to do this without making installation more complicated. For now it is possible via the configuration file:
Create a file named "rubble.ini" in the same folder the rubble binary is in
Now add any command line options you want as ini keys, for example to change the df directory:
Code: [Select]
[rubble]
dfdir=./../DF
I think that would be all you would need, as the other path variables are based on that one.

Maybe a menu item to download most current zip from the homepage?

I have no idea how to do that, a nice idea though.

Also needing a save is kind of weird.  If a world needs to be genned and a save generated, maybe a popup notice on the "no save found".

That is a very good idea (the saves are only needed for the world regeneration tab).

I wasn't aware how to download addon packs from just running the gui.  I don't know if there's a repository of pre-supplied add-ons, are they user generated or automatically generated?  Is that the "readme section" for modders and there just isn't anything available atm.  Is there another thread post with addons?

ALL the addons currently in existence are included with Rubble, so their is nowhere to link to right now, hopefully that changes if more modders start using Rubble.
One problem is that since I lack internet I never give any thought to online integration...

My addons currently listed are just: "base" btw.

Ouch, the infamous "loading failed" bug, for some reason Rubble failed to load the addons and so the addon list did not generate, look at the log file it will be very short and will list a fatal error of some kind (the GUI silently runs Rubble at startup to get a list of all the addons, you can do this by hand via "rubble - addonlist").

Also, having no addons listed and how to acquire more isn't self explanatory from the "readme" that is specifically for non modders that pretty much says to just run the gui.

Prepping region1 results in an error, also prepping raw results in the same error.
Code: [Select]
Entering Prep Mode for Region: region1
Error: GetFileAttributesEx ../data/save/region1/raw/prep: The system cannot find
 the file specified.
  Near bad_position|L:-1

Prepping a region I have no idea if it results in a corrupt data set with the error or not.

No corruption, but nothing done either. Right now prep is mostly for installing the tileset used to generate the world, so not much reason to do that anymore (it used to be very important for DFHack, but not anymore)
The error basically is saying that the world in question was not generated from a set of raws generated by Rubble (eg there is no "raw/prep" directory)

Just a few first impressions.

I'm glad you have a gui though.


The GUI is mostly quick and dirty (I am much better at CLI interfaces), so it tends to have problems reporting errors (it doesn't even know an error happened actually). I really need to fix it up so that it at least knows when something went wrong.

About the learning curve: It is quite large, particularly if you want to do something complicated. The best thing for a beginner to do is stick to the basic templates and do a lot of looking at the standard addons. Mostly all you need to know is how to use the addon hooks and the REACTION, BUILDING_XXX, SHARED_OBJECT (and it's variants), and a few other templates like that.

Advanced stuff requires Rex scripting, which is much mentioned in the docs, but that is mostly because everything that can be done with Rubble can be done with Rex at some level. don't let it intimidate you, you do not need to use it for the vast majority of things and the common tasks that I do with scripts (dependency management mostly) require no real knowledge of how it all works, and for most addons is not required at all. That said the advanced tasks DO require some knowledge of Rex, but copy and paste should be able to get you through :)


The diff stuff is very new and is only available via a script command, this means that you can use it for anything you can think of, but that it is a little hard for non-experts to get to.

===================================
Rubble 4.5 will be up in a few short seconds, bringing with it the new Rubble encoder!

Rubble encoder uses DEFLATE compression (the same used in most zip files) and base 64 encoding to allow the posting of non-text data to the forum. When used with small groups of files (say a zipped Rubble addon) it allows bypassing the DFFD.

As part of this change Rubble can now read a base 64 encoded zip file just like it can a normal one, for example the following:
Code: [Select]
UEsDBBQAAAAIAM1dFkUwzX6sxgAAAIMBAAAZAAAAaW5vcmdhbmljX2JvbmVfYmxvY2tzLnR4dJWQywrC
QAxF1/Yr/IQKCjKu0k6sqfMonRGEUoJitwrSnfjvTh8UURDchOTk5sJNZZMcUy/I2DIDQ2kdRQ+3gxIl
T2yTWIO8hX0oVCI72OImmlUHh6zBY0mg2KMuVBhEJ56mOsicDw0b0MggcwFKsbOKpGjvzaltLvPz7dp0
QnLsfLjujwpMeYfgxTqO+2VmKNgUlowXZlRpVJ5MNtLFYjVoE0vqDS/jAXd2EvSHR2qV/KYhVwh7RNlH
GfHz13P+eUmfdLR8AVBLAwQUAAAACADgXRZFZX3MiwwBAABAAwAAGAAAAHJlYWN0aW9uX2JvbmVfYmxv
Y2tzLnR4dM2QP0/DMBDF5/ZTZIStRUzudLEvwcQ5R46DFEWVlZYgoVYJgmyI746TqC0DqoABdbF8f/Tu
vV+lw3vklhkEbqWm9Xz+fvivuIHIulATulBpnuQrEEKTu9M6cZmCEkKFH/NZRZAi23RtE2z23XYXXG3r
tu364K331cvzvrle+62wkEpIitmom6dAjLz2MPInYyQ7arCbsX16DluzqsjR2xGl4zrNfJPs2AYqJ5cp
WDQS1CCZGS0Kn2y5WLAlm/xPcjHa46aLjE7d1/NHT3kilWKDLgfzgOfJuAgS/DGep3p3WUgkaRMDST7m
HcL8AYH1M4viLIX+tan75jE40fgNhtv/x+AiadDlEH0P5BNQSwECPwAUAAAACADNXRZFMM1+rMYAAACD
AQAAGQAkAAAAAAAAACAAAAAAAAAAaW5vcmdhbmljX2JvbmVfYmxvY2tzLnR4dAoAIAAAAAAAAQAYAN7+
Njogvs8BWwhh6h++zwFbCGHqH77PAVBLAQI/ABQAAAAIAOBdFkVlfcyLDAEAAEADAAAYACQAAAAAAAAA
IAAAAP0AAAByZWFjdGlvbl9ib25lX2Jsb2Nrcy50eHQKACAAAAAAAAEAGABt7m1OIL7PAVsIYeofvs8B
Wwhh6h++zwFQSwUGAAAAAAIAAgDVAAAAPwIAAAAA
When pasted into a file named "Bone Blocks.zip.b64" and dropped into your addons folder will add a new addon named "Bone Blocks" that has just the block making reactions and materials from the "User/Bonecarver" addon added to the craftdwarf.
More details about this new utility are in the "Rubble Basics" file.
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

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile

What follows is an automatic patch script to update the 40.8 Base addon to 40.9:
Code: [Select]
#
# To install:
# Copy this file into your addons folder and name it "patch_a_4.5.load.rex" (the ".load.rex" extension is important!).
#

var patches = <array
<map
addon="Base"
file="plant_garden.txt"
diff="@@ -2602,8 +2602,12 @@
 {SHARED_PLANT;PINEAPPLE; ananas comosus
  [NAME:pineapple plant][NAME_PLURAL:pineapple plants][ADJ:pineapple plant]
  [USE_MATERIAL_TEMPLATE:STRUCTURAL:STRUCTURAL_PLANT_TEMPLATE]
  [BASIC_MAT:LOCAL_PLANT_MAT:STRUCTURAL]
+ [PICKED_TILE:58][PICKED_COLOR:2:0:1]
+ [DRY][BIOME:ANY_TROPICAL]
+ [VALUE:2]
+ [SPRING][SUMMER][AUTUMN][WINTER]
  [USE_MATERIAL_TEMPLATE:DRINK:PLANT_ALCOHOL_TEMPLATE]
  [STATE_NAME_ADJ:ALL_SOLID:frozen pineapple wine]
  [STATE_NAME_ADJ:LIQUID:pineapple wine]
  [STATE_NAME_ADJ:GAS:boiling pineapple wine]
@@ -2632,31 +2636,27 @@
  [MATERIAL_VALUE:1]
  [EDIBLE_VERMIN]
  [SEED:pineapple seed:pineapple seeds:0:0:1:LOCAL_PLANT_MAT:SEED]
  [PREFSTRING:fruit]
- [DRY]
- [BIOME:ANY_TROPICAL]
+ [FREQUENCY:50]
+ [CLUSTERSIZE:5]
  [GROWTH:LEAVES]
  [GROWTH_NAME:pineapple leaf:pineapple leaves]
  [GROWTH_ITEM:PLANT_GROWTH:NONE:LOCAL_PLANT_MAT:LEAF]
  [GROWTH_DENSITY:1000]
- [GROWTH_HOST_TILE:BRANCHES_AND_TWIGS]
- [GROWTH_HOST_TILE:SAPLING]
  [GROWTH_PRINT:0:6:2:0:0:ALL:1]
  [GROWTH:FLOWERS]
  [GROWTH_NAME:pineapple flower:STP]
  [GROWTH_ITEM:PLANT_GROWTH:NONE:LOCAL_PLANT_MAT:FLOWER]
  [GROWTH_DENSITY:1000]
- [GROWTH_HOST_TILE:BRANCHES_AND_TWIGS]
  [GROWTH_TIMING:60000:119999]
  [GROWTH_PRINT:5:5:5:0:1:60000:119999:2]
  *** many flowers join together to make a single pineapple
  [GROWTH:FRUIT]
  [GROWTH_NAME:pineapple:STP]
  [GROWTH_ITEM:PLANT_GROWTH:NONE:LOCAL_PLANT_MAT:FRUIT]
  [GROWTH_DENSITY:1000]
- [GROWTH_HOST_TILE:BRANCHES_AND_TWIGS]
  [GROWTH_TIMING:120000:200000]
  [GROWTH_DROPS_OFF_NO_CLOUD]
  [GROWTH_PRINT:'%':'%':6:0:0:120000:200000:3]
  [GROWTH_HAS_SEED]
 }"
>
<map
addon="Base"
file="plant_standard.txt"
diff="@@ -211,8 +211,9 @@
  [USE_MATERIAL_TEMPLATE:STRUCTURAL:STRUCTURAL_PLANT_TEMPLATE]
  [MATERIAL_VALUE:2]
  [EDIBLE_VERMIN]
  [ITEM_REACTION_PRODUCT:BAG_ITEM:PLANT_GROWTH:LEAVES:LOCAL_PLANT_MAT:LEAF]
+ [MATERIAL_REACTION_PRODUCT:SEED_MAT:LOCAL_PLANT_MAT:SEED]
  [BASIC_MAT:LOCAL_PLANT_MAT:STRUCTURAL]
  [PICKED_TILE:5][PICKED_COLOR:7:0:0]
  [GROWDUR:500][VALUE:2]
  [USE_MATERIAL_TEMPLATE:OIL:PLANT_OIL_TEMPLATE]"
>
<map
addon="Base"
file="reaction_other.txt"
diff="@@ -322,7 +322,9 @@
  [REAGENT:bag:1:BOX:NONE:NONE:NONE]
  [EMPTY]
  [BAG]
  [PRESERVE_REAGENT]
+ [DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
  [PRODUCT:100:5:GET_ITEM_DATA_FROM_REAGENT:plant:BAG_ITEM]
  [PRODUCT_TO_CONTAINER:bag]
+ [PRODUCT:100:1:SEEDS:NONE:GET_MATERIAL_FROM_REAGENT:plant:SEED_MAT]
  [SKILL:PROCESSPLANTS]"
>
>


(if (str:cmp [rubble:version] "4.5") {}{
(rubble:abort `This patch cannot be applied to this version, remove and try again.\n`)
})

# Just in case...
(rubble:setvar PATCH_A_APPLIED true)

(console:print "    Updating Rubble 4.5 for use with DF 40.9: (Patch A)\n")
(foreach [patches] block _ patch {
(console:print '      "' [patch addon] '": ' [patch file] '\n')

var addon = (rubble:fetchaddon [patch addon])
var content = (genii:bytes_string [addon Files [patch file] Content])
[content = (rubble:patch [content] [patch diff])]
[addon Files [patch file] Content = (genii:string_bytes [content])]
})
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

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: Rubble 4.5 - Now on DF 40.9 (with optional patch installed)!
« Reply #26 on: September 05, 2014, 02:02:46 pm »

4.6 will be up in a few short seconds!

4.6 brings a few minor updates as well as a rewrite of the tech class templates.

The core of he new functionality is !ENTITY_PLAYABLE (a new template) which interacts with ADDON_HOOKS (an old template that has been rewritten) in order to make who gets what reactions/buildings much more flexible and easier for addons to change. Basically you can remove reactions now, in particular you can remove them from the playable race without needing to know who that is and without needing the reaction in the ADDON_HOOK_PLAYABLE class.
If you don not understand that just accept that it is a big step up in functionality, and the default addons benefit greatly.
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

Nopenope

  • Bay Watcher
    • View Profile
Re: Rubble 4.6 - Now on DF 40.10 (cool new templates)!
« Reply #27 on: September 07, 2014, 12:38:00 am »

Trying to build Rubble for Linux 64-bit, getting this error:

Spoiler (click to show/hide)

Can't find the missing dctech package for the life of me, tried the go wiki, the go index, the go package repository and google gives a bunch of irrelevant results.
« Last Edit: September 07, 2014, 12:46:37 am by Nopenope »
Logged

Abadrausar

  • Bay Watcher
  • empowering ideas
    • View Profile
    • ♫♪♀HDFPS♂♪♫
Re: Rubble 4.6 - Now on DF 40.10 (cool new templates)!
« Reply #28 on: September 09, 2014, 07:33:10 am »

Nice work Milo keep on it!

Some little contribution:

Spoiler (click to show/hide)

Spoiler (click to show/hide)

Some background http://www.bay12forums.com/smf/index.php?topic=59411.0

The nanofort.exe and just_embark.com utilities have been integrated into the dfhack embark-tools plugin, you only need to add to your dfhack.ini

Code: [Select]
embark-tools enable anywhere nano sand sticky
Now using Rubble you can also substitute the noexotic.exe utility in any of his two variants, which is cool if you are getting pretty annoyed at having nothing useful to do with the animals you caught, due to the bugs surrounding the Dungeon Master...

2nd spoiler sort of work in my tests but the 1st gives the error
Code: [Select]
Running Postscripts...
  noExotics.post.rex
Works like old util noexotics.exe
 Offering a whole lot more of animals to buy in the embark screen
 strike today your dreamed ranch!
This reduces the limitations of the retired Overseer noble position
    Replacing tags PET_EXOTIC and MOUNT_EXOTIC with PET and MOUNT for each creature
      creature_amphibians.txt
      creature_annelids.txt
      creature_birds.txt
Error: Script Error: Index out of range. Near: noExotics.post.rex|L:24|C:41
  Near tissue_template_default.txt|L:1

it seems that the two kinds of raw parsers df:raw:walk  and df:raw:parse are being somewhat elusive for me



 


« Last Edit: September 09, 2014, 07:36:04 am by Abadrausar »
Logged
::: Humble Dwarf Fortress Publishing System ♫♪♀HDFPS♂♪♫ Mods Push Published in DFFD are auto updated in local Players Catalog :::

palu

  • Bay Watcher
  • Viva la resolution
    • View Profile
Re: Rubble 4.6 - Now on DF 40.10 (cool new templates)!
« Reply #29 on: September 09, 2014, 07:35:05 pm »

...You do realize the dungeon master doesn't exist anymore, and we've had a working animal taming system for over two years now, right?
Logged
Hmph, palu showing off that reading-the-instructions superpower.
The internet encourages thoughtful, intelligent discussion and if you disagree I hate you.
DFHack DF2015 progress:
Pages: 1 [2] 3 4 ... 11