aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_particles.cpp
Commit message (Collapse)AuthorAge
* Move client-specific files to 'src/client' (#7902)Quentin Bazin2018-11-28
| | | | | Update Android.mk Remove 'src/client' from include_directories
* Particles: Make collision with objects optional (#7682)Paramat2018-09-08
| | | | | | Also set it to false for node dig particles, as they are often created and high in number. Improve particle documentation.
* Modernize lua read (part 2 & 3): C++ templating assurance (#7410)Loïc Blot2018-06-30
| | | | | | | | | * Modernize lua read (part 2 & 3): C++ templating assurance Implement the boolean reader Implement the string reader Also remove unused & unimplemented script_error_handler Add a reader with default value
* Code modernization: subfolders (#6283)Loïc Blot2017-08-19
| | | | | | | | | | | | | * Code modernization: subfolders Modernize various code on subfolders client, network, script, threading, unittests, util * empty function * default constructor/destructor * for range-based loops * use emplace_back instead of push_back * C++ STL header style * Make connection.cpp readable in a pointed place + typo
* Initialize TileAnimationParams to prevent crashes/bugs for legacy ↵sfan52017-01-24
| | | | invocations of add_particle{,spawner} (fixes #5108)
* Add particle animation, glowsfan52017-01-18
| | | | | This is implemented by reusing and extending the TileAnimation code for the methods used by particles.
* Revert "Adding particle blend, glow and animation (#4705)"sfan52016-11-14
| | | | This reverts commit 93e3555eae2deaeca69ee252cfa9cc9c3e0e49ef.
* Adding particle blend, glow and animation (#4705)Foghrye42016-11-15
|
* Attached particle spawnersraymoo2016-10-13
|
* Particles: Add option to remove particles on collisionAuke Kok2016-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | Adds the particle option `collision_removal = bool` Some particles are hard to use right now since they either go through solid blocks (without collision detection), and with collision detection enabled they (e.g. raindrops) would just stop dead on the floor and sit there until they expire, or worse, scrape along a wall or ceiling. We can solve the problem by adding a boolean flag that tells the particle to be removed if it ever collides with something. This will make it easier to add rain that doesn't fall through your roof or stick on the top of it. Or clouds and smoke that don't go through trees. Particles that collide with this flag are marked expired unconditionally, causing them to be treated like normal expired particles and cleaned up normally. Documentation is adjusted accordingly. An added bonus of this patch is that particles can potentially collide many times with nodes, and this reduces the amount of collisions to 1 (max), which may end up reducing particle load on the client.
* SAPI: Mark all Lua API functions requiring envlockkwolekr2015-10-25
|
* Cleanup server addparticle(spawner) by merge two identical functions.Loic Blot2015-07-25
|
* Refactor particle code to remove the while loopsTeTpaAka2015-07-18
| | | | Replaces while loops with proper getfield calls
* Make acc and vel deprecated in add_particle and search for acceleration and ↵TeTpaAka2015-07-18
| | | | | | velocity instead The doc and the actual behaviour differed.
* Add proper lua api deprecated handlingsapier2014-04-29
|
* Allow vertical axis particle rotation constraintkhonkhortisan2014-01-13
| | | | | | | Use tables for adding particles, deprecate former way. separate particles(pawner) definition, add default values, work with no arguments
* Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl2013-08-14
|
* Move scriptapi to separate folder (by sapier)sapier2013-05-25
On the lua side, notably minetest.env:<function>(<args>) should now be replaced by minetest.<function>(<args>). The old way is and will stay supported for a long time. Also: Update and clean up lua_api.txt (by celeron55) Move EnvRef to lua and remove add_rat and add_firefly (by kahrl) Add separate src/util/CMakeLists.txt, other minor fixes (by kahrl)
l str">"field[2.8,5.2;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" .. core.formspec_escape(core.setting_get("port")) .. "]" else retval = retval .. "field[0.55,5.2;3.5,0.5;te_serverport;" .. fgettext("Server Port") .. ";" .. core.formspec_escape(core.setting_get("port")) .. "]" end retval = retval .. "textlist[4,0.25;7.5,3.7;srv_worlds;" .. menu_render_worldlist() .. ";" .. index .. "]" return retval end -------------------------------------------------------------------------------- local function main_button_handler(this, fields, name, tabdata) local world_doubleclick = false if fields["srv_worlds"] ~= nil then local event = core.explode_textlist_event(fields["srv_worlds"]) local selected = core.get_textlist_index("srv_worlds") menu_worldmt_legacy(selected) if event.type == "DCL" then world_doubleclick = true end if event.type == "CHG" then core.setting_set("mainmenu_last_selected_world", menudata.worldlist:get_raw_index(core.get_textlist_index("srv_worlds"))) return true end end if menu_handle_key_up_down(fields,"srv_worlds","mainmenu_last_selected_world") then return true end if fields["cb_creative_mode"] then core.setting_set("creative_mode", fields["cb_creative_mode"]) local selected = core.get_textlist_index("srv_worlds") menu_worldmt(selected, "creative_mode", fields["cb_creative_mode"]) return true end if fields["cb_enable_damage"] then core.setting_set("enable_damage", fields["cb_enable_damage"]) local selected = core.get_textlist_index("srv_worlds") menu_worldmt(selected, "enable_damage", fields["cb_enable_damage"]) return true end if fields["cb_server_announce"] then core.setting_set("server_announce", fields["cb_server_announce"]) local selected = core.get_textlist_index("srv_worlds") menu_worldmt(selected, "server_announce", fields["cb_server_announce"]) return true end if fields["start_server"] ~= nil or world_doubleclick or fields["key_enter"] then local selected = core.get_textlist_index("srv_worlds") gamedata.selected_world = menudata.worldlist:get_raw_index(selected) if selected ~= nil and gamedata.selected_world ~= 0 then gamedata.playername = fields["te_playername"] gamedata.password = fields["te_passwd"] gamedata.port = fields["te_serverport"] gamedata.address = "" core.setting_set("port",gamedata.port) if fields["te_serveraddr"] ~= nil then core.setting_set("bind_address",fields["te_serveraddr"]) end --update last game local world = menudata.worldlist:get_raw_element(gamedata.selected_world) if world then local game, index = gamemgr.find_by_gameid(world.gameid) core.setting_set("menu_last_game", game.id) end core.start() else gamedata.errormessage = fgettext("No world created or selected!") end return true end if fields["world_create"] ~= nil then local create_world_dlg = create_create_world_dlg(true) create_world_dlg:set_parent(this) create_world_dlg:show() this:hide() return true end if fields["world_delete"] ~= nil then local selected = core.get_textlist_index("srv_worlds") if selected ~= nil and selected <= menudata.worldlist:size() then local world = menudata.worldlist:get_list()[selected] if world ~= nil and world.name ~= nil and world.name ~= "" then local index = menudata.worldlist:get_raw_index(selected) local delete_world_dlg = create_delete_world_dlg(world.name,index) delete_world_dlg:set_parent(this) delete_world_dlg:show() this:hide() end end return true end if fields["world_configure"] ~= nil then local selected = core.get_textlist_index("srv_worlds") if selected ~= nil then local configdialog = create_configure_world_dlg( menudata.worldlist:get_raw_index(selected)) if (configdialog ~= nil) then configdialog:set_parent(this) configdialog:show() this:hide() end end return true end return false end -------------------------------------------------------------------------------- return { name = "server", caption = fgettext("Server"), cbf_formspec = get_formspec, cbf_button_handler = main_button_handler, on_change = nil }