aboutsummaryrefslogtreecommitdiff
path: root/assets/manual_img
ModeNameSize
-rw-r--r--Bildschirmfoto_2016-09-17_09-43-29.png9345logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-45-38.png16695logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-46-21.png18834logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-48-54.png14032logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-50-27.png4246logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-51-02.png3704logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-52-17.png13788logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-52-40.png13889logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-53-01.png15473logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-56-34.png2789logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-58-20.png10375logplain
-rw-r--r--Bildschirmfoto_2016-09-17_09-58-39.png6880logplain
-rw-r--r--Bildschirmfoto_2016-09-17_10-04-12.png72813logplain
-rw-r--r--Bildschirmfoto_2016-09-17_10-04-57.png105448logplain
-rw-r--r--Bildschirmfoto_2016-09-17_10-05-51.png93538logplain
-rw-r--r--Bildschirmfoto_2016-09-17_10-07-13.png83521logplain
-rw-r--r--Bildschirmfoto_2016-09-17_10-08-02.png107762logplain
-rw-r--r--Bildschirmfoto_2016-09-17_10-09-01.png112579logplain
-rw-r--r--Bildschirmfoto_2016-09-17_10-10-15.png114075logplain
-rw-r--r--Bildschirmfoto_2016-12-13_19-25-26.png15044logplain
-rw-r--r--Bildschirmfoto_2017-03-09_11-33-09.png3496logplain
-rw-r--r--Bildschirmfoto_2017-03-09_11-42-49.png25657logplain
-rw-r--r--screenshot_20161203_223055.png824772logplain
-rw-r--r--screenshot_20161203_223328.png526640logplain
-rw-r--r--screenshot_20161203_230644.png610738logplain
-rw-r--r--screenshot_20161203_230648.png555494logplain
-rw-r--r--screenshot_20161203_231622.png108256logplain
-rw-r--r--screenshot_20161203_232335.png1607786logplain
-rw-r--r--screenshot_20161203_232545.png1527310logplain
ass="hl str">"advtrains_dtrack", models_prefix="advtrains_dtrack", models_suffix=".obj", shared_texture="advtrains_dtrack_shared.png", second_texture="default_gravel.png", description=attrans("Track"), formats={vst1={true, false, true}, vst2={true, false, true}, vst31={true}, vst32={true}, vst33={true}}, }, advtrains.ap.t_30deg_slope) minetest.register_craft({ type = "shapeless", output = 'advtrains:dtrack_slopeplacer 2', recipe = { "advtrains:dtrack_placer", "advtrains:dtrack_placer", "default:gravel", }, }) --bumpers advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_bumper", texture_prefix="advtrains_dtrack_bumper", models_prefix="advtrains_dtrack_bumper", models_suffix=".b3d", shared_texture="advtrains_dtrack_rail.png", --bumpers still use the old texture until the models are redone. description=attrans("Bumper"), formats={}, }, advtrains.ap.t_30deg_straightonly) minetest.register_craft({ output = 'advtrains:dtrack_bumper_placer 2', recipe = { {'group:wood', 'dye:red'}, {'default:steel_ingot', 'default:steel_ingot'}, {'advtrains:dtrack_placer', 'advtrains:dtrack_placer'}, }, }) --legacy bumpers for _,rot in ipairs({"", "_30", "_45", "_60"}) do minetest.register_alias("advtrains:dtrack_bumper"..rot, "advtrains:dtrack_bumper_st"..rot) end -- atc track advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_atc", texture_prefix="advtrains_dtrack_atc", models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_atc.png", description=attrans("ATC controller"), formats={}, get_additional_definiton = advtrains.atc_function }, advtrains.trackpresets.t_30deg_straightonly) -- Tracks for loading and unloading trains -- Copyright (C) 2017 Gabriel Pérez-Cerezo <gabriel@gpcf.eu> local function get_far_node(pos) local node = minetest.get_node(pos) if node.name == "ignore" then minetest.get_voxel_manip():read_from_map(pos, pos) node = minetest.get_node(pos) end return node end local function train_load(pos, train_id, unload) local train=advtrains.trains[train_id] local below = get_far_node({x=pos.x, y=pos.y-1, z=pos.z}) if not string.match(below.name, "chest") then atprint("this is not a chest! at "..minetest.pos_to_string(pos)) return end local inv = minetest.get_inventory({type="node", pos={x=pos.x, y=pos.y-1, z=pos.z}}) if inv and train.velocity < 2 then for k, v in ipairs(train.trainparts) do local i=minetest.get_inventory({type="detached", name="advtrains_wgn_"..v}) if i then if not unload then for _, item in ipairs(inv:get_list("main")) do if i:get_list("box") and i:room_for_item("box", item) then i:add_item("box", item) inv:remove_item("main", item) end end else for _, item in ipairs(i:get_list("box")) do if inv:get_list("main") and inv:room_for_item("main", item) then i:remove_item("box", item) inv:add_item("main", item) end end end end end end end advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_unload", texture_prefix="advtrains_dtrack_unload", models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_unload.png", description=attrans("Unloading Track"), formats={}, get_additional_definiton = function(def, preset, suffix, rotation) return { after_dig_node=function(pos) advtrains.invalidate_all_paths() advtrains.ndb.clear(pos) end, advtrains = { on_train_enter = function(pos, train_id) train_load(pos, train_id, true) end, }, } end }, advtrains.trackpresets.t_30deg_straightonly) advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_load", texture_prefix="advtrains_dtrack_load", models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_load.png", description=attrans("Loading Track"), formats={}, get_additional_definiton = function(def, preset, suffix, rotation) return { after_dig_node=function(pos) advtrains.invalidate_all_paths() advtrains.ndb.clear(pos) end, advtrains = { on_train_enter = function(pos, train_id) train_load(pos, train_id, false) end, }, } end }, advtrains.trackpresets.t_30deg_straightonly) if mesecon then advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_detector_off", texture_prefix="advtrains_dtrack_detector", models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_detector_off.png", description=attrans("Detector Rail"), formats={}, get_additional_definiton = function(def, preset, suffix, rotation) return { mesecons = { receptor = { state = mesecon.state.off, rules = advtrains.meseconrules } }, advtrains = { on_train_enter=function(pos, train_id) advtrains.ndb.swap_node(pos, {name="advtrains:dtrack_detector_on".."_"..suffix..rotation, param2=advtrains.ndb.get_node(pos).param2}) mesecon.receptor_on(pos, advtrains.meseconrules) end } } end }, advtrains.ap.t_30deg_straightonly) advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_detector_on", texture_prefix="advtrains_dtrack", models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_detector_on.png", description="Detector(on)(you hacker you)", formats={}, get_additional_definiton = function(def, preset, suffix, rotation) return { mesecons = { receptor = { state = mesecon.state.on, rules = advtrains.meseconrules } }, advtrains = { on_train_leave=function(pos, train_id) advtrains.ndb.swap_node(pos, {name="advtrains:dtrack_detector_off".."_"..suffix..rotation, param2=advtrains.ndb.get_node(pos).param2}) mesecon.receptor_off(pos, advtrains.meseconrules) end } } end }, advtrains.ap.t_30deg_straightonly_noplacer) minetest.register_craft({ type="shapeless", output = 'advtrains:dtrack_detector_off_placer', recipe = { "advtrains:dtrack_placer", "mesecons:wire_00000000_off" }, }) end --TODO legacy --I know lbms are better for this purpose for name,rep in pairs({swl_st="swlst", swr_st="swrst", swl_cr="swlcr", swr_cr="swrcr", }) do minetest.register_abm({ -- In the following two fields, also group:groupname will work. nodenames = {"advtrains:track_"..name}, interval = 1.0, -- Operation interval in seconds chance = 1, -- Chance of trigger per-node per-interval is 1.0 / this action = function(pos, node, active_object_count, active_object_count_wider) minetest.set_node(pos, {name="advtrains:track_"..rep, param2=node.param2}) end, }) minetest.register_abm({