Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - milo christiansen

Pages: 1 ... 230 231 [232] 233 234 ... 258
3466
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.

3467
DF Dwarf Mode Discussion / Re: Possible bug with the trade
« on: August 27, 2014, 06:56:51 pm »
It is to a bug! Insane dwarves shouldn't be able to do anything AFAIK.

3468
Utilities and 3rd Party Applications / Re: Mod Tool Merger
« on: August 27, 2014, 06:03:30 pm »
Well, good luck :) Any workable solution (that handles all the edge cases) will be a tremendous amount of work.

A tool that is designed for modders to use when merging would be much easier, but anything meant for use by the average idiot will be far too hard due to not being able to count on the user to make intelligent decisions when merging conflicts and the like.

3469
DF Modding / Re: Community Mods and utilities list.
« on: August 27, 2014, 05:24:47 pm »
The entry for Rubble should be replaced with the new version for 40.x (link in sig), also the entry for Better Dorfs (which directly follows Rubble) should be removed.

New description: Rubble: An all-in-one modding utility and mod loader, comes with a large collection (over 50) of mini-mods, ready to install and use.
(or something like that anyway)

3470
DF Suggestions / Re: Workshops can have a wheelbarrow
« on: August 27, 2014, 03:04:22 pm »
This would solve the biggest issue I have with masons shops, eg they are very slow unless you stockpile stone right next to them.

3471
Feel free to lift anything you want from Rubble, it has a very kobold like saurian civ and a bunch of possibly useful industries (better pottery anyone?).

3472
Utilities and 3rd Party Applications / Re: Mod Tool Merger
« on: August 27, 2014, 02:47:49 pm »
OK, I give up, no matter what I come up with it fails in one edge case or another. Diffs are simply too fragile to work without needing user intervention. I guess I will stick with custom scripts, they always work, even if they can't be created automatically (and I already have a small library of programmable scripts for common tasks).

I did end up deciding that a tag level diff is much less useful than it sounds, what worked best was an object level diff that used a standard text diff for the object body and a custom system for selecting the object and modifying whole objects (removing, adding, ect), but even that had problems...

3473
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])]
})

3474
Utilities and 3rd Party Applications / Re: Mod Tool Merger
« on: August 22, 2014, 01:06:31 pm »
I got so busy with Prison Architect and the Rubble encoder that I didn't get anything done with tag-wise diffs, but that's next on my todo list :)

For now a few thoughts:
Any such system need to keep objects in mind, this should be easy once a list of all object types is compiled (I know I have one somewhere...)
Line numbers are of no consequence, tag order matters much more.
Modders should spend much less time tacking new stuff to existing files and just add a new file :p

Maybe it would be better to make a programmable raw parser with an easy to use command system that allows you to add tags to an object with one line, oh wait:{SHARED_OBJECT_ADD;TEMPLATE_WOOD;[REACTION_CLASS:WOOD_MAT]}.
Too bad that Rubble template requires a special set of raws to work, maybe with a good parser/diff system I can relax that requirement :)

The more I think about it the less useful a traditional diff system looks, there is just too many problems associated with merging many mods without requiring user interaction, traditional diffs are just to fragile. Maybe I can come up with something useful and generic, I guess there is no way to know without trying :)

3475
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.

3476
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 :)

3477
Utilities and 3rd Party Applications / Re: Mod Tool Merger
« on: August 15, 2014, 07:02:58 pm »
I could play around with tag-wise diffs some when I get home, maybe I can come up with a nice algorithm and plain text representation :)

Maybe I can come up with something that gives you some nice ideas, I guess we'll see.

It seems that there is a lot of interest in a DF-centric diff format lately...

3478
I still think that Rubble is just a good GUI away from solving the problem, and for those who are stuck on diffs Rubble can (as of 4.4) apply standard format patches.

It is easy to look at Rubble as a modding tool, but I designed it as a general purpose mod installer first and a modding tool second. The only drawback is that mods need to be prepared to work with it, you cannot just drop any old mod in and expect it to work.

If someone comes up with a general purpose mini-mod format that does not depend on a specific scripting system or other host I would be happy to add Rubble support for it, just post in the Rubble thread when finalized.

3479
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"])

3480
One word: Rubble.

The only real lack is a cross platform GUI, but that is just the front end, the actual tool works on all OS's.

Pages: 1 ... 230 231 [232] 233 234 ... 258