Commit Graph

51 Commits

Author SHA1 Message Date
gregorycu
ed7c9c4cb8 Settings fixes Make the GameGlobalShaderConstantSetter use the settings callback (8% perf improvement in game loop) Ensure variable is set Ensure settings callback is threadsafe 2015-01-25 15:23:37 +10:00
Craig Robbins
2c4a5e1861 Revert "Make the GameGlobalShaderConstantSetter use the settings callback (8% perf improvement in game loop)"
This reverts commit a555e2d9b0ccee452996381a44677b8bec210036.
2015-01-25 01:19:40 +10:00
gregorycu
a555e2d9b0 Make the GameGlobalShaderConstantSetter use the settings callback (8% perf improvement in game loop)
Amend the settings callback to support userdata
2015-01-23 21:27:51 -05:00
kwolekr
d3dc88fe6b Settings: Fail on invalid sequence and throw exception for LuaSettings 2014-12-12 00:44:17 -05:00
kwolekr
b0c4fd6d3f Settings: Sanitize value for multiline terminator tokens 2014-12-11 23:26:13 -05:00
kwolekr
88c28414f4 Settings: Sanitize setting name everywhere, not just LuaSettings 2014-12-09 23:52:13 -05:00
kwolekr
f2c18511a4 Settings: Make setting entry group and values mutually exclusive
This greatly reduces the complexity of Settings code.
Additionally, several memory leaks were fixed.
2014-12-09 23:29:34 -05:00
kwolekr
f0cd59034c Settings: Various setting group fixes and enhancements
- Remove blank setting values when setting has a group
 - Pair setting values with groups in file when possible
 - Preserve user-set whitespace in setting objects
 - Delete setting value when setting NoiseParams group
 - Delete overwritten groups outside of lock
2014-12-04 03:20:07 -05:00
kwolekr
68c799bf99 Use setting groups for NoiseParams
Add format example to minetest.conf.example
Add Settings::setU16()
Throw exception on attempted access of NULL settings groups
2014-12-02 04:03:37 -05:00
kwolekr
360660947b LuaSettings: Sanitize setting name strings 2014-11-30 19:01:54 -05:00
kwolekr
175b7a28e5 settings: Add setting groups and multiline entries 2014-11-30 16:11:21 -05:00
sapier
dceb9f7d60 Implement proper font handling 2014-11-30 17:50:09 +01:00
ShadowNinja
6bc4cad0ed Split settings into seperate source and header files
This also cleans up settings a bit
2014-09-21 14:39:35 -04:00
ShadowNinja
2ae5d3f3ab Fix Settings locking 2014-09-21 14:39:35 -04:00
ShadowNinja
cd64a92a8c Use const references for Settings methods
Also check for (this == &other) before locking mutexes.
2014-09-21 14:39:35 -04:00
Craig Robbins
b97c9c6577 Make getters of the Settings class const
Also removed 2 unused functions.
2014-09-21 14:39:35 -04:00
sapier
eda9214f81 Bunch of small fixes (coding style, very unlikely errors, warning messages) 2014-04-19 11:56:19 +02:00
kwolekr
3570f3e396 Add minetest.set_noiseparam_defaults() Lua API 2014-02-15 19:13:14 -05:00
kwolekr
83bafbe08b Make flag strings clear specified flag with 'no' prefix
Remove flagmask field from set_mapgen_params table
Add small bits of needed documentation
2014-02-08 17:50:59 -05:00
kwolekr
7f743178db Remove blank default values for emergequeue_limit_* settings
Add checks for invalid user input for important settings
Rename Settings::tryGet* to Settings::get*NoEx for consistency
2014-02-05 00:17:53 -05:00
kwolekr
c6c5edd73a Revert "Fix settings to honor numeric conversion errors"
This reverts commit 3f376a092e1c16429fb52f24736e9da98aff4cd5.
2014-02-05 00:05:58 -05:00
sapier
3f376a092e Fix settings to honor numeric conversion errors
Rename try* non exceptioning functions to *NoEx
2014-02-04 22:14:13 -05:00
kwolekr
a439343844 Settings: Add no-exception variants of each get method 2014-02-03 22:47:40 -05:00
sapier
04e9a9d541 Cleanup jthread and fix win32 build 2013-12-01 16:25:46 +01:00
kwolekr
d308352dbd Always use builtin JThread library 2013-09-15 23:00:01 -04:00
Kahrl
4e1f50035e Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
PilzAdam
d718b0b34e Dont write directly to files but rather write and copy a tmp file 2013-08-13 22:05:45 +02:00
kwolekr
93474c4218 Remove no virtual dtor warnings, make MapgenParams contain actual NoiseParams 2013-05-19 12:22:20 -04:00
proller
165498cecf initial mapgen indev version with farscale feature and huge caves 2013-03-16 21:48:32 -04:00
Ilya Zhuravlev
6a1670dbc3 Migrate to STL containers/algorithms. 2013-03-11 19:08:39 -04:00
Sfan5
6d0ea26c2d Update Copyright Years 2013-02-24 20:15:24 +01:00
PilzAdam
497ff1ecd6 Change Minetest-c55 to Minetest 2013-02-24 18:49:03 +01:00
kwolekr
97260d09a8 Add flag string settings, flat map option 2013-02-06 16:52:48 -05:00
Jürgen Doser
f099861245 Make sure that settings are written to config file when settings are removed.
Previously, settings where only written when a value has changed, and
removal of a setting value didn't count as a change.
2013-01-22 19:05:46 +01:00
kwolekr
b55fb4f2f6 Last set of minor cleanups 2013-01-21 21:41:37 +02:00
kwolekr
631a835e07 Finish and clean up mapgen configuration 2013-01-21 21:41:37 +02:00
kwolekr
45cf32afc5 Add Settings::getStruct and Settings::setStruct 2013-01-21 21:41:37 +02:00
kwolekr
11afcbff69 The new mapgen, noise functions, et al. 2013-01-21 21:41:33 +02:00
Jürgen Doser
6af8a34d91 Basic support for configuring which mods to load for each world
settings.h: added function to return all keys used in settings, and a
function to remove a setting

mods.{h,cpp}: added class ModConfiguration that represents a subset of the installed mods.

server.{h,cpp}: server does not load add-on mods that are disabled in
the world.mt file. mods are disabled by a setting of the form
"load_mod_<modname> = false". if no load_mod_<modname> = ... setting
is found, the mod is loaded anyways for backwards compatibilty. server
also complains to errorstream about mods with unstatisfied
dependencies and about mods that are not installed.

guiConfigureWorld.{h,cpp}: shows a treeview of installed add-on mods
and modpacks with little icons in front of their name indicating their
status: a checkmark for enabled mods, a cross for disabled mods, a
question mark for "new" mods

Mods can be enabled/disabled by a checkbox. Mods also show a list of
dependencies and reverse dependencies. double-click on a mod in
dependency or reverse dependency listbox selects the corresponding
mod. Enabling a mod also enables all its dependencies. Disabling a mod
also disables all its reverse dependencies.

For modpacks, show buttons to enable/disable all mods (recursively,
including their dependencies) in it.

Button "Save" saves the current settings to the world.mt file and
returns to the main menu. Button "Cancel" returns to main menu without
saving.

basic keyboard controls (if the proper widget has keyboard focus):

up/down: scroll through tree of mods
left/right: collaps/expand a modpack
space: enable/disable the selected mod
2013-01-21 17:31:50 +02:00
Perttu Ahola
9f031a6759 Optimize headers 2012-06-17 04:03:39 +03:00
Perttu Ahola
d0ea6f9920 Properly and efficiently use split utility headers 2012-06-17 02:40:36 +03:00
Perttu Ahola
037b259197 Switch the license to be LGPLv2/later, with small parts still remaining as GPLv2/later, by agreement of major contributors 2012-06-05 18:54:07 +03:00
Perttu Ahola
49d9745dc4 Comment out unnecessary debug output in Settings 2012-05-20 17:19:48 +03:00
Perttu Ahola
71a3c2fcd1 Allow directly supplying world as a parameter, including world.mt 2012-03-13 01:46:19 +02:00
Perttu Ahola
f1d9880006 Clean up log messages everywhere 2012-03-11 04:15:45 +02:00
Perttu Ahola
6ec447a1aa Do not print errors when searching for usable configuration file 2012-03-11 01:09:27 +02:00
Perttu Ahola
b485fac33e Fix configuration file behaviour
- Do not rewrite if nothing needs to be changed
- Update at program exit, in addition to updating when continuing from main menu to game
2012-03-11 00:54:51 +02:00
Perttu Ahola
c8211ceb3e Some MSVC fixes 2011-11-29 19:13:57 +02:00
Perttu Ahola
b65a5aceb0 Use the logger; also, default to not showing much crap in console. Use --info-on-stderr to enable crap. 2011-10-16 14:57:53 +03:00
Perttu Ahola
43a28f04fa mobv2 2011-10-15 02:28:57 +03:00