Commit Graph

215 Commits (95fa9f3d7a72fc14134db1c5658062637b73c3c5)

Author SHA1 Message Date
KlonZK 29f6131e26
fix custom animation tables
move "local frames" from inside the block to outside.
2018-07-16 10:39:05 +02:00
Pauli 57dd9e944e Fix crafts advanced constraints in workflow
Fixes #1247
2018-07-04 19:10:51 +03:00
lethosor 862fa08ba6 Merge remote-tracking branch 'cppcooper/cxxrandom-rel' into develop 2018-06-20 11:00:43 -04:00
lethosor 5f81cac3b7 dwarfmonitor.lua: use dmerror() consistently 2018-05-21 21:23:52 -04:00
Daniel Brooks d15f87715e update comments 2018-05-08 13:04:14 -07:00
Daniel Brooks 554814920b this allows the blueprint plugin to be called from lua 2018-05-08 11:42:41 -07:00
Josh Cooper bc32d15bea [Release] cxxrandom v2.0
Major Revision
update v2.0
=-=-=-=-=
Native functions(exported to lua):
-GenerateEngine:  returns engine id              (args: seed)
-DestroyEngine:   destroys corresponding engine  (args: rngID)
-NewSeed          re-seeds engine                (args: rngID, seed)
-rollInt          generates random integer       (args: rngID, min, max)
-rollDouble       generates random double        (args: rngID, min, max)
-rollNormal       generates random normal[gaus.] (args: rngID, avg, stddev)
-rollBool         generates random boolean       (args: rngID, chance)
-MakeNumSequence  returns sequence id            (args: start, end)
-AddToSequence    adds a number to the sequence  (args: seqID, num)
-ShuffleSequence  shuffles the number sequence   (args: rngID, seqID)
-NextInSequence   returns the next number in seq.(args: seqID)

Lua plugin functions:
-MakeNewEngine    returns engine id              (args: seed)

Lua plugin classes:
-crng
    methods:
        -init(id, df, dist)     :: constructor
            id                           - Reference ID of engine to use in RNGenerations
            df (optional)                - bool indicating whether to destroy the Engine when the crng object is garbage collected
            dist (optional)              - lua number distribution to use
        -__gc()                 :: destructor
        -changeSeed(seed)       :: alters engine's seed value
        -setNumDistrib(distrib) :: set's the number distribution crng object should use
            distrib                      - number distribution object to use in RNGenerations
        -next()                 :: returns the next number in the distribution
        -shuffle()              :: effectively shuffles the number distribution
-normal_distribution
    methods:
        -init(avg, stddev)      :: constructor
        -next(id)               :: returns next number in the distribution
            id                           - engine ID to pass to native function
-real_distribution
    methods:
        -init(min, max)         :: constructor
        -next(id)               :: returns next number in the distribution
            id                           - engine ID to pass to native function
-int_distribution
    methods:
        -init(min, max)         :: constructor
        -next(id)               :: returns next number in the distribution
            id                           - engine ID to pass to native function
-bool_distribution
    methods:
        -init(min, max)         :: constructor
        -next(id)               :: returns next boolean in the distribution
            id                           - engine ID to pass to native function
-num_sequence
    methods:
        -init(a, b)             :: constructor
        -add(num)               :: adds num to the end of the number sequence
        -shuffle()              :: shuffles the sequence of numbers
        -next()                 :: returns next number in the sequence

Adds missing function exports.

Fixes numerous problems I won't go into
2018-04-29 21:08:44 -07:00
Josh Cooper 23b2d5eba5 Merge branch cxxrandom
Implements helper functions for random number generation.
Implemented using C++11 <random> library.

Exported Lua Functions:
- seedRNG(seed)
- rollInt(min, max)
- rollDouble(min, max)
- rollNormal(mean, std_deviation)
- rollBool(chance_for_true)
- resetIndexRolls(string, array_length)  --String identifies the instance of SimpleNumDistribution to reset
- rollIndex(string, array_length)        --String identifies the instance of SimpleNumDistribution to use
                                         --(Shuffles a vector of indices, Next() increments through then reshuffles when end() is reached)

 On branch cxxrandom-rel
 Changes to be committed:
   modified:   plugins/CMakeLists.txt
   new file:   plugins/cxxrandom.cpp
   new file:   plugins/lua/cxxrandom.lua

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Squashed commit of the following:

commit 3a7ef70d45f3e0c2fe367141dd0349dddaaff60d
Merge: fd9f1982 7aa0608c
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Fri Dec 22 22:17:27 2017 -0800

    Merge remote-tracking branch 'origin/temp' into cxxrandom

commit 7aa0608cb85dcf82686193db7a6e9d1318f5f2a5
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Thu Dec 21 21:43:35 2017 -0800

    Revises cxxrandom plugin

    New functions:
    - seedRNG(ushort seed)
        --lua exported
    - GetDistribContainer()
        --internal singleton
    - RNG()
        --internal singleton

    Summary:
    - Removed class CXXRNG
        --Refactored functions that used CXXRNG

     Changes to be committed:
            modified:   plugins/cxxrandom.cpp

commit b42979818a01c1121eace7b1ac14676f5ad5d8b2
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Wed Dec 20 13:21:49 2017 -0800

    Fixes plugin_init()

    Misread the lines indicated by lethosor to be excluded, had broken the plugin in the process.
     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp

commit 753a00a14d9e6519d299638e014abf30509940af
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Wed Dec 20 12:36:17 2017 -0800

    Cleans up cxxrandom.cpp

    DFHack contributions specifies:
    -spaces instead of tabs, so tabs were converted.
    -C++ headers before dfhack stuff, so it was done

    *Also added author name, creation date, and last updated date.

     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp

commit 498ebe4b8fdccc01ac1f169269f3093c830a8a10
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Tue Dec 19 22:51:58 2017 -0800

    Updates cxxrandom, fixes instance leak

    deleted header
    moved definition to cpp file #lethosor

    fixed singleton instance, no longer a pointer
    commented out dfhack commands, now only init/shutdown and exported lua functions

    	modified:   cxxrandom.cpp
    	deleted:    cxxrandom.h

commit 821044bef2a0201d0d74192e445c7b29766b42a1
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Sun Dec 17 04:01:11 2017 -0800

    Fixes RollIndex and Renames RollNormal

    Renamed the Normal Distribution RNG function to fit the standard.
    Now named RollNormal(m,s)

    Fixed some wonky white space in the lua macro export block.

    Fixed a stupid mistake with the RollIndex output. (it was outputting 0's)

    Updated usage details.

     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp

commit 1536f43d137b6bc55d55759b43bdccf6ff429b33
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Fri Dec 15 08:50:08 2017 -0800

    Fixes/Improves cxxrandom

    Modified return types
    Corrected index distribution code

commit 8629c7e1509522cb0cc4b649914b90d033cb4763
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Thu Dec 14 19:02:29 2017 -0800

    Implements SimpleNumDistribution

    Exported additional functions to lua.
    Functions allow the generation of random 0-N index values.
    Generation promises all unique values [0,N] will be returned once each when generation is run N times.

     On branch cxxrandom
     Changes to be committed:
    	modified:   plugins/cxxrandom.cpp
    	modified:   plugins/cxxrandom.h

commit f035f3d20415790542cf83e5e696261661d911f3
Author: Josh Cooper <cooper.s.josh@gmail.com>
Date:   Wed Dec 13 23:55:39 2017 -0800

    Implements cxxrandom

    cxxrandom was implemented using a singleton.
    This singleton provides an interface for generating uniform numbers, or numbers in a normal distribution, and also booleans(given the probability for the true outcome)
    The singleton interface is wrapped in functions which are exposed for lua usage.

    Integrated into plugins/CMakeLists.txt

     On branch dev
     Changes to be committed:
    	modified:   CMakeLists.txt
    	new file:   cxxrandom.cpp
    	new file:   cxxrandom.h
    	new file:   lua/cxxrandom.lua
2018-04-29 21:08:44 -07:00
lethosor db95796d4c Many build fixes 2018-03-10 16:53:45 -05:00
Warmist e48e2e6534 A twbt utils plugin for misc stuff used in twbt by mifki.
Currently only render map function.
2017-12-31 13:57:37 +02:00
Warmist 620cfcc8bd Fix luasocket receive with byte count
Did not correctly detect when you typed in a number instead of pattern.
2017-08-12 15:42:56 +03:00
lethosor 2d07e5edea Add new "pathable" plugin 2017-07-05 23:54:55 -04:00
lethosor aea76b7ef3 stockflow: make sure that manager order amounts are integers
Fixes #1044
2017-03-18 17:56:06 -04:00
Lethosor ba48afe908 stockflow: Simplify calculation
See #1046

Use math.floor() for now until we can get Lua 5.3 working on Travis
2016-12-16 14:22:00 -05:00
Kelly Kinkade 1419d58b9a stockflow: Use "floor division"
Per suggestion by @dscorbett
2016-12-16 13:04:51 -06:00
Kelly Kinkade 5be77fa63d stockflow: Fix "integer expected" problem in stockflow 2016-12-16 08:09:53 -06:00
Eric Wald 060331de37 Stockflow reaction updates
SpinThread jobs now get the proper material category flag, and metal mechanisms can be ordered.
2016-06-26 19:22:53 -06:00
Eric Wald 3f0857bff3 Incrementing the manager order id properly.
There's a chance that not doing so could lead to a crash, somehow.
2016-05-16 19:48:52 -06:00
Eric Wald 2df41e6bad Clearing the active flag for new stockflow orders.
It's not entirely clear what this flag does when there aren't any conditions on the order, but new manual orders start as Ready instead of Active.
2016-05-15 22:06:20 -06:00
Eric Wald 0b1004f2b8 Notice resizing immediately, instead of on next key press 2016-05-15 09:14:30 -06:00
Eric Wald 6add87b358 Simplifying key strings 2016-05-15 08:58:45 -06:00
Eric Wald 6575f5f412 Removing the quantity limit on stockflow orders. 2016-05-14 23:40:01 -06:00
Eric Wald 3e8d4f9257 New command for clearing the stockpile order.
Shift-Space by default, using the SETUPGAME_SAVE_PROFILE_ABORT key.
2016-05-14 23:35:07 -06:00
Eric Wald 8c7d5366c9 Switching to the new manager order flags 2016-05-14 23:33:38 -06:00
Eric Wald 02e0b9e721 Manager interface now uses the full height.
Its navigation behavior has also changed, and it now has key hints for navigation.
2016-05-14 22:42:49 -06:00
lethosor 2399539990 Merge remote-tracking branches 'warmist/patch-7', 'warmist/patch-8' and 'warmist/patch-9' into develop 2016-04-10 11:58:48 -04:00
Warmist 812f6df272 Fix building-hacks color for auto_gears option
Now it should select the gear color correctly
2016-04-10 16:55:08 +03:00
Warmist c4c452c288 Show sidebar when moving from screen to screen
When both are from lua the old logic failed.
2016-04-10 16:51:58 +03:00
Warmist 29f08cd20d Fix eventful trying to show sidebar
It should not try to do that if e.g. showing buildingitems. Maybe later we will have more valid focus strings (e.g. custom item view for some buildings) but for now just use vanilla (or callback function not a class)
2016-04-10 14:58:03 +03:00
Warmist 9c9f710d5b Fix eventful not showing sidebar sometimes
E.g. when destroying buildings
2016-04-10 14:47:33 +03:00
expwnent b71c1b9e7c Merge pull request #751 from PeridexisErrant/remove-dfusion
Remove dfusion, df2mc, mapexport, dwarfexport
2016-03-13 08:22:07 -04:00
Warmist bc02e2a844 Add auto-gears mode for building hacks for automatic animation and gear positions. 2016-03-13 13:37:36 +02:00
Eric Wald 8ce115646a Updating Stockflow for version 42.06
The manager can now specify each type of craft individually, as well as in general.
There may be a better justification for not allowing pearl and shell scepters, though.
2016-02-23 22:09:26 -07:00
lethosor f4ce45deae Disable confirm note-delete in name entry
Fixes #820
2016-02-11 22:56:33 -05:00
lethosor a9ad2f40f1 Add a location retirement confirmation 2015-12-25 11:18:55 -05:00
Eric Wald 4dc94a565f Adjusting stockflow order numbers where possible.
Loading 0.40 saves in 0.42 results in a different list of reactions.  Fortunately, all but the instruments should still work.
2015-12-18 07:02:29 -07:00
Eric Wald 45625318bb Stockflow reaction list repairs.
Mostly, instruments and their pieces are made through generated custom reactions, instead of as tools.
Depends on df-structures commit e551233 for full potency.
2015-12-17 22:02:30 -07:00
lethosor af92b3ae1f Fix some confirm plugin issues and add a simple configuration UI
- Detect null pointers in trade-related functions
- Fix typo/issues pointed out by @dscorbett
- Reorder includes
2015-11-21 20:58:49 -05:00
lethosor b7dd93b6e8 Implement most of the confirm plugin in Lua
This should make resolving future issues easier, although implementing
new confirmations in lua isn't possible yet (each one requires a line
in confirm.cpp).

This also resolves an issue with note-delete and route-delete, with
dfhack/df-structures@1bc4f61
2015-11-21 19:01:35 -05:00
PeridexisErrant 80e4b8d3df Remove DFusion plugin and script system
It's been four years since meaningful updates, and in that time
alternatives have emerged to almost everything.  Any remaining
functionality to replace is on the issue tracker.

Simpler is better, for users and developers, and removing a legacy
system makes it easier to understand how DFHack works.
2015-11-17 11:13:19 +09:30
expwnent fabcfcd921 Fixed trailing whitespace. 2015-09-21 17:42:30 -04:00
Warmist 80fd4b1365 Some additions and fixes.
Added new functions: select, set(non)blocking, isBlocking.
Set default to non-blocking. Added "would block" to ignored errors.
2015-09-16 09:57:22 +03:00
warmist 7639420455 Update luasocket.lua 2015-08-17 10:07:20 +03:00
Warmist d9c50d677f A lua interface for csockets in a spirit of luasocket 2015-08-15 15:09:12 +03:00
lethosor a90f3c3d67 stockpiles: Restrict characters in filenames when saving
Previously, it was possible to save outside of the stocksettings
directory or fail to save in a nonexistent subdirectory (e.g. when
a stockpile name had slashes in it).

Resolves #621
2015-07-29 14:17:14 -04:00
lethosor 8145a04944 dwarfmonitor: Add mouse cursor widget
Suggested by @ragundo
2015-06-15 13:42:29 -04:00
lethosor 7581bda7d5 Update dwarfmonitor documentation and NEWS 2015-06-13 21:50:15 -04:00
lethosor 93c9a41a3a Reimplement dwarfmonitor widgets in Lua (and improve customizability)
Widget positions and a few other options (e.g. date formats) can be
specified in dfhack-config/dwarfmonitor.json on a per-instance basis.

Related changes:
* Fixed an issue loading JSON files from Lua
* JSON files in dfhack-config (only dwarfmonitor.json currently) are
  no longer copied into the DF directory when building DFHack. This
  keeps developers' personal settings intact, but will require
  copying over changes made to DFHack's copies manually.
* Fixed incorrect config path in dwarfmonitor help
2015-06-13 21:15:43 -04:00
Ross Morgan-Linial 3001053cef Change tabs to spaces. 2015-05-07 21:51:03 -07:00
Ross Morgan-Linial 7aac9a8fb8 Improve workflow handling of plant reactions
Makes workflow understand "seeds of any plant", "thread of any plant",
"drink of any plant", "powder of any plant", and "liquid of any plant"
when counting items.

Changes workflow's handling of the built-in plant reactions to
understand that they always produce plant products, and that they also
produce seeds.

This means that you can set a target for, for example, "powder of any
plant", and workflow will use a milling job to produce that.
2015-05-07 20:49:29 -07:00
Ben Lubar d182b6c1c3 only create the stocksettings directory when it is requested 2015-03-24 17:46:49 -05:00
Eric Wald 23707db1d3 Fixed ballistic arrow head orders 2015-03-15 16:38:59 -06:00
Eric Wald 6bfaa8d35d Better way to handle obsolete job types. 2015-03-15 16:37:35 -06:00
Eric Wald 81c2a6e79f Refactoring a table insert into reaction_entry. 2015-03-15 16:02:29 -06:00
Eric Wald 11d65b4f2d Always clear reactions when loading.
This removes a minor potential for memory leaks.
2015-03-15 15:43:46 -06:00
Eric Wald d18bd3e2a5 Preventing a stockflow error message in Arena mode 2015-03-15 14:08:47 -06:00
lethosor 0b912f54be Fix field name in lua/stockflow.lua
From DFHack/df-structures#39
2015-03-01 17:32:25 -05:00
Warmist e9ab892369 Building hacks changes.
Fixed buildings not consuming correct value of power. Added way to ignore unpowered state. Added setPower/getPower to change how much power building uses on the fly.
2015-02-24 15:37:38 +02:00
lethosor 10cfef0553 Fix whitespace issues 2015-02-14 22:53:06 -05:00
expwnent e5e0d93ef1 Added modtools/reaction-product-trigger. 2015-02-02 02:39:05 -05:00
Casey Link b0e0bbda9b stockpiles: show proper cased names in filter list 2014-12-05 16:53:19 +01:00
Casey Link 52f4cb3fc1 stockpiles: load prompt uses typing + filtering 2014-12-05 14:49:40 +01:00
Casey Link 332566f6a1 stockpiles: disable gui/script when plugin is disabled 2014-12-05 13:27:58 +01:00
Casey Link 7e6066daf2 stockpiles: user friendly error handling
* display errors in the GUI when necessary
* handle older versions of DFHack without the persist module
2014-12-05 12:35:24 +01:00
Casey Link b6118d272c stockpiles: integrate gui plugin into dfhack.init-example 2014-12-05 12:35:24 +01:00
Casey Link 1cde8cffa4 stockpiles: implement GUI controls 2014-12-05 12:35:19 +01:00
expwnent c927f0fa3c Merge remote-tracking branch 'lethosor/patch-5' 2014-09-16 17:25:28 -04:00
Lethosor 1ea1b50790 job_material_category -> dfhack_material_category
Fixes #330 - submitted by @finndibaenn
2014-09-14 11:13:26 -04:00
Eric Wald 83b1317173 Switching stockflow to the internal getStockpileContents.
This should speed it up over checking each space individually, but no longer counts spaces with empty assigned bins and barrels as empty.
2014-09-07 15:07:57 -06:00
Eric Wald 1ce07c063d Canonical way to find the stockpile by id. 2014-09-07 14:55:34 -06:00
Quietust 5c0588dd34 Merge pull request #299 from eswald/stockflow-40
Stockflow Repairs
2014-08-28 14:56:04 -05:00
Eric Wald 632b0b85bd Speeding up the stockpile item count.
kr0pper reports two orders of magnitude speed improvement for check_pile() by using the map tile item cache.
2014-08-23 17:49:03 -06:00
Eric Wald 8495bddc2d Removing an obsolete workaround 2014-08-23 17:46:35 -06:00
Warmist f04b93210a Bug fixing.
Fixes for "tab" in hacked buildings.
2014-08-16 16:58:09 +03:00
Warmist 6868cab1fe Exposed dfhack.jobs.linkIntoWorld. Simplified eventful and gui.dwarfmode for sidebar use/creation. 2014-08-16 16:58:01 +03:00
Eric Wald f5d50adf0d Removing the leaves check for stockpile acceptability.
That item type no longer exists in DF 0.40; such items will now always be considered properly stored by any stockpile they're on.
2014-08-15 21:41:23 -06:00
Eric Wald 2ebebaf62f Deleting old stockflow records.
Once a stockpile has been removed or abandoned, its persistent configuration is obsolete.
2014-08-03 15:07:04 -06:00
Eric Wald 1b1475fb94 Warning about mismatched stockflow entries.
For the most part, mismatches should only happen if the reaction list has changed between world loads, which means either the raw files or the plugin files have been changed.  For now, such entries are ignored, though in some cases it might be possible to recover a new order number by searching through the reaction list.
2014-08-03 15:04:28 -06:00
Eric Wald 2db1c9d722 Moving the global job_types cache into the two functions that use it.
It's mostly an artifact of a misunderstanding, anyway.
2014-08-03 14:57:20 -06:00
Eric Wald 1aafa206bc Localizing a few Lua variables.
It seems like the globals could be localized, too, but I'm not quite sure what that would accomplish.
2014-08-02 18:08:13 -06:00
Eric Wald ad4d545036 Ignoring the removed job types for DF 0.40+
The version check allows the plugin to work with DF 0.34, just in case.
2014-08-02 17:58:36 -06:00
expwnent 81c87d0921 EventManager: INTERACTION event for unit interactions. 2014-07-03 04:55:12 -04:00
expwnent fe875f7c02 Cleaned up eventful.lua.eventType. 2014-06-30 03:16:45 -04:00
expwnent 961d033ade EventManager: unload event for convenience. 2014-06-29 10:03:55 -04:00
expwnent 8e7e87ac73 Added UNIT_ATTACK event to EventManager and exposed it to Lua. 2014-06-28 02:31:34 -04:00
expwnent 7313c18a2a EventManager/eventful: added ON_REPORT event and exposed it to Lua. 2014-06-23 09:15:46 -04:00
Alexander Gavrilov 63254df6dd Fix obvious issues in stockflow.
- Duplicate definition of a function now in uicommon.h
- Assertion failure due to missing core suspend claim.
- Incorrect way of accessing the civ entity.
- Accessing nil objects in the lua module if filter matches nothing.
- Lua module breaking on reload('plugins.stockflow').
2014-06-03 12:57:45 +04:00
Alexander Gavrilov e7292379f7 Merge branch 'stockflow' of git://github.com/eswald/dfhack into develop 2014-06-03 12:13:56 +04:00
Alexander Gavrilov ae8d630cfa Merge remote-tracking branch 'warmist/dev-rendermax' into develop 2014-05-11 15:44:29 +04:00
Eric Wald 144eff4cf2 Clearing the center column.
The official order selection screen has an extra space to the left of the orders on the right-hand side.
2014-05-04 15:36:42 -06:00
Eric Wald 4fc850445d Magic Number Reduction: Display placement constants 2014-05-04 15:28:53 -06:00
Eric Wald 767badbfb9 Magic number reduction: Clothing flags
Bone and shell are used to construct BARRED and SCALED armor/clothing items, for some reason.
2014-05-04 15:13:25 -06:00
Eric Wald bdb22235af Magic number reduction: Job types 2014-05-04 15:02:12 -06:00
Eric Wald 2d5f7e4022 Magic number reduction: Persistent storage
Replaces explicit indices into the ints field of Stockflow persistent storage objects with enumerated values.
2014-05-04 12:55:00 -06:00
Eric Wald 723cfcf28e Attempting to repair an order object leak.
Now frees manager_order objects in the reaction_list when the plugin is disabled or the world unloaded.  However, there may still be orders leaked elsewhere.
2014-05-04 12:35:10 -06:00
Alexander Gavrilov 13584f08c5 Merge remote-tracking branch 'warmist/dev-buildings' into develop 2014-05-04 19:52:01 +04:00
Alexander Gavrilov 63d256c1e9 Adjust siege engine targeting weights.
Stop shooting at leaving caravan guards for one.
2014-04-17 22:10:43 +04:00
Alexander Gavrilov 55cea36c76 Use the new API to produce combat reports for aimed siege engine attacks.
This requires exposing the actual operator unit to lua code.
2014-04-15 19:50:23 +04:00
Eric Wald b9ed7a5cc2 Stockflow plugin v1.0 2014-04-13 15:19:03 -06:00
Warmist eb999cd0ad Another file forgotten 2014-03-07 19:58:27 +02:00