aboutsummaryrefslogtreecommitdiff
path: root/src/script/cpp_api
Commit message (Expand)AuthorAge
* Add min_y and max_y checks for Active Block Modifiers (ABM) (#11333)sfence2021-06-20
* Isolate library tables between sandbox and insecure envsfan52021-04-18
* Degrotate support for mesh nodes (#7840)Vitaliy2021-03-30
* Fix minetest.dig_node returning true when node isn't diggable (#10890)rubenwardy2021-01-31
* Rework use_texture_alpha to provide three opaque/clip/blend modessfan52021-01-29
* Remove dead code (#10845)rubenwardy2021-01-22
* Implement on_rightclickplayer callback (#10775)JDiaz2021-01-11
* Add on_deactivate callback for luaentities (#10723)hecks2021-01-02
* Fix some minor code issues all over the placesfan52020-12-24
* Fix CSMs on arm64 (#10553)luk3yx2020-10-25
* Fix Lua panic when error() message is not a stringPaul Ouellette2020-06-07
* Value copy / allocation optimizations mostly in server, SAO and serialize codesfan52020-05-27
* Add on_authplayer callback and 'last_login' to on_joinplayer (#9574)sorcerykid2020-05-23
* Expose collision information to LuaEntity on_stepsfan52020-04-27
* script: Put getGuiEngine() inside a client-only #ifdefsfan52020-04-27
* Drop content_sao.{cpp,h}Loic Blot2020-04-11
* Move PlayerSAO to dedicated filesLoic Blot2020-04-11
* Move serveractiveobject & unitsaoLoic Blot2020-04-11
* Work around LuaJIT issues on aarch64 (#9614)sfan52020-04-08
* Overall improvements to log messages (#9598)sfan52020-04-08
* Script API: Document ObjectRef handling in a commentsfan52020-02-23
* [CSM] Expose more env functionssfan52019-11-11
* Call on_secondary_use when object is right-clickedsfan52019-11-10
* Load client mods into memory before execution.sfan52019-11-09
* Refactor loading of Lua code with mod securitysfan52019-11-09
* CSM: Fix itemstack:get_meta() 'metadata' indexing errorSmallJoker2019-09-14
* Load CSM environment after the restrictions are knownSmallJoker2019-09-14
* Merge pull request #8776 from osjc/FixGetNodeJozef Behran2019-08-10
* Allow customizing chat message format (#8529)ANAND2019-08-08
* Move the clamping of hp/breath when their maximums change to read_object_prop...Beha2019-07-30
* Check for 'action' field in ABMs & LBMsSmallJoker2019-07-27
* Removed debug.upvaluejoin to prevent leak of insecure environmenty2019-07-24
* Add node field to PlayerHPChangeReason table (#8368)Paul Ouellette2019-04-11
* HPChange Reason: Fix push after free, and type being overwritten (#8359)rubenwardy2019-03-12
* Consistent HP and damage types (#8167)SmallJoker2019-02-10
* Fix wrong code comment (#8061)DS2019-01-06
* Move client-specific files to 'src/client' (#7902)Quentin Bazin2018-11-28
* Raycast: export exact pointing location (#6304)Dániel Juhász2018-08-16
* Add a MSVC / Windows compatible snprintf function (#7353)nOOb31672018-07-22
* Modernize lua read (part 2 & 3): C++ templating assurance (#7410)Loïc Blot2018-06-30
* CSM/SSM: Add on_mods_loaded callback (#7411)Loïc Blot2018-06-06
* Fix builtin inventory list crash when size = 0 (#7297)SmallJoker2018-05-05
* Allow damage for attached objects, add attach/detach callbacks (#6786)SmallJoker2018-04-30
* Add online content repositoryrubenwardy2018-04-19
* Run callback in IDropAction, refactor function argumentsSmallJoker2018-04-02
* Add player inventory callbacksSmallJoker2018-04-02
* LINT: add clang-tidy step (#6295)Loïc Blot2018-04-01
* Fix a warning reported by clangLoic Blot2018-03-29
* Add reasons to on_dieplayer and on_hpchangeAndrew Ward2018-03-28
* Add `on_auth_fail` callback (#7039)red-0012018-02-15
_signals_ks:ra_shuntd_"..rot, param2 = node.param2}) else advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:ra_danger_"..rot, param2 = node.param2}) end local meta = minetest.get_meta(pos) if meta then meta:set_string("infotext", minetest.serialize(asp)) end end end local suppasp_ra = { main = { free = true, }, dst = { free = nil, speed = nil, }, shunt = { free = nil, proceed_as_main = false, }, info = { call_on = false, dead_end = false, w_speed = nil, } } advtrains.trackplacer.register_tracktype("advtrains_signals_ks:hs") advtrains.trackplacer.register_tracktype("advtrains_signals_ks:ra") advtrains.trackplacer.register_tracktype("advtrains_signals_ks:sign") advtrains.trackplacer.register_tracktype("advtrains_signals_ks:mast") for _, rtab in ipairs({ {rot = "0", sbox = {-1/8, -1/2, -1/2, 1/8, 1/2, -1/4}, ici=true}, {rot = "30", sbox = {-3/8, -1/2, -1/2, -1/8, 1/2, -1/4},}, {rot = "45", sbox = {-1/2, -1/2, -1/2, -1/4, 1/2, -1/4},}, {rot = "60", sbox = {-1/2, -1/2, -3/8, -1/4, 1/2, -1/8},}, }) do local rot = rtab.rot for typ, prts in pairs({ danger = {asp = advtrains.interlocking.DANGER, n = "slow", ici=true}, slow = {asp = { main = { free = true, speed = 6 }, shunt = {proceed_as_main = true}} , n = "free"}, free = {asp = { main = { free = true, speed = -1 }, shunt = {proceed_as_main = true}} , n = "shunt"}, shunt = {asp = { main = {free = false}, shunt = {free = true} } , n = "danger"}, }) do minetest.register_node("advtrains_signals_ks:hs_"..typ.."_"..rot, { description = "Ks Main Signal", drawtype = "mesh", mesh = "advtrains_signals_ks_main_smr"..rot..".obj", tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_ltm_"..typ..".png"}, paramtype="light", sunlight_propagates=true, light_source = 4, paramtype2 = "facedir", selection_box = { type = "fixed", fixed = {rtab.sbox, {-1/4, -1/2, -1/4, 1/4, -7/16, 1/4}} }, groups = { cracky = 2, advtrains_signal = 2, not_blocking_trains = 1, save_in_at_nodedb = 1, not_in_creative_inventory = (rtab.ici and prts.ici) and 0 or 1, }, drop = "advtrains_signals_ks:hs_danger_0", inventory_image = "advtrains_signals_ks_hs_inv.png", sounds = default.node_sound_stone_defaults(), advtrains = { set_aspect = setaspectf(rot), supported_aspects = suppasp, get_aspect = function(pos, node) return prts.asp end, }, on_rightclick = advtrains.interlocking.signal_rc_handler, can_dig = advtrains.interlocking.signal_can_dig, }) -- rotatable by trackworker advtrains.trackplacer.add_worked("advtrains_signals_ks:hs", typ, "_"..rot, prts.n) end --Rangiersignale: for typ, prts in pairs({ danger = {asp = { main = {free = true}, shunt = {free = false} }, n = "shuntd", ici=true}, shuntd = {asp = { main = {free = true}, shunt = {free = true} } , n = "danger"}, }) do minetest.register_node("advtrains_signals_ks:ra_"..typ.."_"..rot, { description = "Ks Shunting Signal", drawtype = "mesh", mesh = "advtrains_signals_ks_sht_smr"..rot..".obj", tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_ltm_"..typ..".png"}, paramtype="light", sunlight_propagates=true, light_source = 4, paramtype2 = "facedir", selection_box = { type = "fixed", fixed = {-1/4, -1/2, -1/4, 1/4, 0, 1/4} }, groups = { cracky = 2, advtrains_signal = 2, not_blocking_trains = 1, save_in_at_nodedb = 1, not_in_creative_inventory = (rtab.ici and prts.ici) and 0 or 1, }, drop = "advtrains_signals_ks:ra_danger_0", inventory_image = "advtrains_signals_ks_ra_inv.png", sounds = default.node_sound_stone_defaults(), advtrains = { set_aspect = setaspectf_ra(rot), supported_aspects = suppasp_ra, get_aspect = function(pos, node) return prts.asp end, }, on_rightclick = advtrains.interlocking.signal_rc_handler, can_dig = advtrains.interlocking.signal_can_dig, }) -- rotatable by trackworker advtrains.trackplacer.add_worked("advtrains_signals_ks:ra", typ, "_"..rot, prts.n) end --Schilder: for typ, prts in pairs({ -- Speed restrictions: ["8"] = {asp = { main = {free = true, speed = 8}, shunt = {free = true} }, n = "12", ici=true}, ["12"] = {asp = { main = {free = true, speed = 12}, shunt = {free = true} }, n = "16"}, ["16"] = {asp = { main = {free = true, speed = 16}, shunt = {free = true} }, n = "e"}, -- Speed restriction lifted ["e"] = {asp = { main = {free = true, speed = -1}, shunt = {free = true} }, n = "hfs"}, -- Halt for shunt moves: ["hfs"] = {asp = { main = {free = true}, shunt = {free = false} }, n = "8"}, }) do minetest.register_node("advtrains_signals_ks:sign_"..typ.."_"..rot, { description = "Signal Sign", drawtype = "mesh", mesh = "advtrains_signals_ks_sign_smr"..rot..".obj", tiles = {"advtrains_signals_ks_signpost.png", "advtrains_signals_ks_sign_"..typ..".png"}, paramtype="light", sunlight_propagates=true, light_source = 4, paramtype2 = "facedir", selection_box = { type = "fixed", fixed = {rtab.sbox, {-1/4, -1/2, -1/4, 1/4, -7/16, 1/4}} }, groups = { cracky = 2, advtrains_signal = 2, not_blocking_trains = 1, save_in_at_nodedb = 1, not_in_creative_inventory = (rtab.ici and prts.ici) and 0 or 1, }, drop = "advtrains_signals_ks:sign_e_0", inventory_image = "advtrains_signals_ks_sign_8.png", sounds = default.node_sound_stone_defaults(), advtrains = { -- This is a static signal! No set_aspect get_aspect = function(pos, node) return prts.asp end, }, on_rightclick = advtrains.interlocking.signal_rc_handler, can_dig = advtrains.interlocking.signal_can_dig, }) -- rotatable by trackworker advtrains.trackplacer.add_worked("advtrains_signals_ks:sign", typ, "_"..rot, prts.n) end minetest.register_node("advtrains_signals_ks:mast_mast_"..rot, { description = "Ks Mast", drawtype = "mesh", mesh = "advtrains_signals_ks_mast_smr"..rot..".obj", tiles = {"advtrains_signals_ks_mast.png"}, paramtype="light", sunlight_propagates=true, --light_source = 4, paramtype2 = "facedir", selection_box = { type = "fixed", fixed = {rtab.sbox, {-1/4, -1/2, -1/4, 1/4, -7/16, 1/4}} }, groups = { cracky = 2, not_blocking_trains = 1, not_in_creative_inventory = (rtab.ici) and 0 or 1, }, drop = "advtrains_signals_ks:mast_mast_0", sounds = default.node_sound_stone_defaults(), }) advtrains.trackplacer.add_worked("advtrains_signals_ks:mast","mast", "_"..rot) end