aboutsummaryrefslogtreecommitdiff
path: root/games/minimal/mods/default/textures
ModeNameSize
-rw-r--r--crack.png1076logplain
-rw-r--r--default_apple.png203logplain
-rw-r--r--default_book.png292logplain
-rw-r--r--default_bookshelf.png597logplain
-rw-r--r--default_brick.png604logplain
-rw-r--r--default_cactus_side.png279logplain
-rw-r--r--default_cactus_top.png236logplain
-rw-r--r--default_chest_front.png167logplain
-rw-r--r--default_chest_lock.png224logplain
-rw-r--r--default_chest_side.png151logplain
-rw-r--r--default_chest_top.png142logplain
-rw-r--r--default_clay.png613logplain
-rw-r--r--default_clay_brick.png249logplain
-rw-r--r--default_clay_lump.png210logplain
-rw-r--r--default_cloud.png118logplain
-rw-r--r--default_coal_lump.png933logplain
-rw-r--r--default_cobble.png830logplain
-rw-r--r--default_dirt.png1586logplain
-rw-r--r--default_fence.png539logplain
-rw-r--r--default_furnace_front.png246logplain
-rw-r--r--default_furnace_side.png236logplain
-rw-r--r--default_glass.png978logplain
-rw-r--r--default_grass.png874logplain
-rw-r--r--default_grass_footsteps.png856logplain
-rw-r--r--default_grass_side.png878logplain
-rw-r--r--default_gravel.png591logplain
-rw-r--r--default_iron_lump.png936logplain
-rw-r--r--default_junglegrass.png672logplain
-rw-r--r--default_jungletree.png502logplain
-rw-r--r--default_jungletree_top.png507logplain
-rw-r--r--default_ladder.png395logplain
-rw-r--r--default_lava.png357logplain
-rw-r--r--default_leaves.png1689logplain
-rw-r--r--default_mese.png203logplain
-rw-r--r--default_mineral_coal.png952logplain
-rw-r--r--default_mineral_iron.png1614logplain
-rw-r--r--default_mossycobble.png965logplain
-rw-r--r--default_nc_back.png303logplain
-rw-r--r--default_nc_front.png410logplain
-rw-r--r--default_nc_rb.png203logplain
-rw-r--r--default_nc_side.png260logplain
-rw-r--r--default_paper.png242logplain
-rw-r--r--default_papyrus.png366logplain
-rw-r--r--default_rail.png507logplain
-rw-r--r--default_rail_crossing.png555logplain
-rw-r--r--default_rail_curved.png545logplain
-rw-r--r--default_rail_t_junction.png542logplain
-rw-r--r--default_sand.png1381logplain
-rw-r--r--default_sandstone.png772logplain
-rw-r--r--default_sapling.png502logplain
-rw-r--r--default_scorched_stuff.png233logplain
-rw-r--r--default_sign_wall.png489logplain
-rw-r--r--default_steel_block.png219logplain
-rw-r--r--default_steel_ingot.png207logplain
-rw-r--r--default_stick.png182logplain
-rw-r--r--default_stone.png806logplain
-rw-r--r--default_tnt_bottom.png161logplain
-rw-r--r--default_tnt_side.png186logplain
-rw-r--r--default_tnt_top.png264logplain
-rw-r--r--default_tool_mesepick.png252logplain
-rw-r--r--default_tool_steelaxe.png927logplain
-rw-r--r--default_tool_steelpick.png271logplain
-rw-r--r--default_tool_steelshovel.png216logplain
-rw-r--r--default_tool_steelsword.png291logplain
-rw-r--r--default_tool_stoneaxe.png931logplain
-rw-r--r--default_tool_stonepick.png262logplain
-rw-r--r--default_tool_stoneshovel.png203logplain
-rw-r--r--default_tool_stonesword.png301logplain
-rw-r--r--default_tool_woodaxe.png927logplain
-rw-r--r--default_tool_woodpick.png245logplain
-rw-r--r--default_tool_woodshovel.png203logplain
-rw-r--r--default_tool_woodsword.png255logplain
-rw-r--r--default_torch.png925logplain
-rw-r--r--default_torch_on_ceiling.png913logplain
-rw-r--r--default_torch_on_floor.png917logplain
-rw-r--r--default_tree.png1445logplain
-rw-r--r--default_tree_top.png1024logplain
-rw-r--r--default_water.png518logplain
-rw-r--r--default_wood.png1400logplain
-rw-r--r--heart.png308logplain
-rw-r--r--player.png212logplain
-rw-r--r--player_back.png201logplain
-rw-r--r--treeprop.png1055logplain
-rw-r--r--wieldhand.png384logplain
pan class="hl str">"button[3 ,"..(offset+1.5)..";2.5,1;"..btnpref.."_remove;Remove from section]" end else tcbs.ts_id = nil form = form.."label[0.5,"..offset..";Side "..btnpref..": ".."End of interlocking]" form = form.."button[0.5,"..(offset+0.5)..";5,1;"..btnpref.."_makeil;Create Interlocked Track Section]" --if tcbs.section_free then --form = form.."button[0.5,"..(offset+1.5)..";5,1;"..btnpref.."_setlocked;Section is free]" --else --form = form.."button[0.5,"..(offset+1.5)..";5,1;"..btnpref.."_setfree;Section is blocked]" --end end if tcbs.signal then form = form.."button[0.5,"..(offset+2.5)..";5,1;"..btnpref.."_sigdia;Signalling]" else form = form.."button[0.5,"..(offset+2.5)..";5,1;"..btnpref.."_asnsig;Assign a signal]" end return form end function advtrains.interlocking.show_tcb_form(pos, pname) if not minetest.check_player_privs(pname, "interlocking") then minetest.chat_send_player(pname, "Insufficient privileges to use this!") return end local tcb = ildb.get_tcb(pos) if not tcb then return end local form = "size[6,9] label[0.5,0.5;Track Circuit Break Configuration]" form = form .. mktcbformspec(tcb[1], "A", 1, pname) form = form .. mktcbformspec(tcb[2], "B", 5, pname) minetest.show_formspec(pname, "at_il_tcbconfig_"..minetest.pos_to_string(pos), form) advtrains.interlocking.show_tcb_marker(pos) end --helper: length of nil table is 0 local function nlen(t) if not t then return 0 end return #t end minetest.register_on_player_receive_fields(function(player, formname, fields) local pname = player:get_player_name() if not minetest.check_player_privs(pname, "interlocking") then return end local pts = string.match(formname, "^at_il_tcbconfig_(.+)$") local pos if pts then pos = minetest.string_to_pos(pts) end if pos and not fields.quit then local tcb = ildb.get_tcb(pos) if not tcb then return end local f_gotots = {fields.A_gotots, fields.B_gotots} local f_update = {fields.A_update, fields.B_update} local f_remove = {fields.A_remove, fields.B_remove} local f_makeil = {fields.A_makeil, fields.B_makeil} local f_setlocked = {fields.A_setlocked, fields.B_setlocked} local f_setfree = {fields.A_setfree, fields.B_setfree} local f_asnsig = {fields.A_asnsig, fields.B_asnsig} local f_sigdia = {fields.A_sigdia, fields.B_sigdia} for connid=1,2 do local tcbs = tcb[connid] if tcbs.ts_id then if f_gotots[connid] then advtrains.interlocking.show_ts_form(tcbs.ts_id, pname) return end if f_update[connid] then ildb.sync_tcb_neighbors(pos, connid) end if f_remove[connid] then ildb.remove_from_interlocking({p=pos, s=connid}) end else if f_makeil[connid] then -- try sinc_tcb_neighbors first ildb.sync_tcb_neighbors(pos, connid) -- if that didn't work, create new section if not tcbs.ts_id then ildb.create_ts({p=pos, s=connid}) ildb.sync_tcb_neighbors(pos, connid) end end -- non-interlocked if f_setfree[connid] then tcbs.section_free = true end if f_setlocked[connid] then tcbs.section_free = nil end end if f_asnsig[connid] and not tcbs.signal then minetest.chat_send_player(pname, "Configuring TCB: Please punch the signal to assign.") players_assign_signal[pname] = {p=pos, s=connid} minetest.close_formspec(pname, formname) return end if f_sigdia[connid] and tcbs.signal then advtrains.interlocking.show_signalling_form({p=pos, s=connid}, pname) return end end advtrains.interlocking.show_tcb_form(pos, pname) end end) -- TS Formspec -- textlist selection temporary storage local ts_pselidx = {} function advtrains.interlocking.show_ts_form(ts_id, pname, sel_tcb) if not minetest.check_player_privs(pname, "interlocking") then minetest.chat_send_player(pname, "Insufficient privileges to use this!") return end local ts = ildb.get_ts(ts_id) if not ts_id then return end local form = "size[10,10]label[0.5,0.5;Track Section Detail - "..ts_id.."]" form = form.."field[0.8,2;5.2,1;name;Section name;"..minetest.formspec_escape(ts.name).."]" form = form.."button[5.5,1.7;1,1;setname;Set]" local hint local strtab = {} for idx, sigd in ipairs(ts.tc_breaks) do strtab[#strtab+1] = minetest.formspec_escape(sigd_to_string(sigd)) advtrains.interlocking.show_tcb_marker(sigd.p) end form = form.."textlist[0.5,3;5,3;tcblist;"..table.concat(strtab, ",").."]" if ildb.may_modify_ts(ts) then if players_link_ts[pname] then local other_id = players_link_ts[pname] local other_ts = ildb.get_ts(other_id) if other_ts then if ildb.may_modify_ts(other_ts) then form = form.."button[5.5,3;3.5,1;mklink;Join with "..minetest.formspec_escape(other_ts.name).."]" form = form.."button[9 ,3;0.5,1;cancellink;X]" end end else form = form.."button[5.5,3;4,1;link;Join into other section]" hint = 1 end form = form.."button[5.5,4;4,1;dissolve;Dissolve Section]" form = form.."tooltip[dissolve;This will remove the track section and set all its end points to End Of Interlocking]" if sel_tcb then form = form.."button[5.5,5;4,1;del_tcb;Unlink selected TCB]" hint = 2 end else hint=3 end if ts.route then form = form.."label[0.5,6.1;Route is set: "..ts.route.rsn.."]" elseif ts.route_post then form = form.."label[0.5,6.1;Section holds "..#(ts.route_post.lcks or {}).." route locks.]" end -- occupying trains if ts.trains and #ts.trains>0 then form = form.."label[0.5,7.1;Trains on this section:]" form = form.."textlist[0.5,7.7;3,2;trnlist;"..table.concat(ts.trains, ",").."]" else form = form.."label[0.5,7.1;No trains on this section.]" end form = form.."button[5.5,7;4,1;reset;Reset section state]" if hint == 1 then form = form.."label[0.5,0.75;Use the 'Join' button to designate rail crosses and link not listed far-away TCBs]" elseif hint == 2 then form = form.."label[0.5,0.75;Unlinking a TCB will set it to non-interlocked mode.]" elseif hint == 3 then form = form.."label[0.5,0.75;You cannot modify track sections when a route is set or a train is on the section.]" --form = form.."label[0.5,1;Trying to unlink a TCB directly connected to this track will not work.]" end ts_pselidx[pname]=sel_tcb minetest.show_formspec(pname, "at_il_tsconfig_"..ts_id, form) end minetest.register_on_player_receive_fields(function(player, formname, fields) local pname = player:get_player_name() if not minetest.check_player_privs(pname, "interlocking") then return end -- independent of the formspec, clear this whenever some formspec event happens local tpsi = ts_pselidx[pname] ts_pselidx[pname] = nil local ts_id = string.match(formname, "^at_il_tsconfig_(.+)$") if ts_id and not fields.quit then local ts = ildb.get_ts(ts_id) if not ts then return end local sel_tcb if fields.tcblist then local tev = minetest.explode_textlist_event(fields.tcblist) sel_tcb = tev.index ts_pselidx[pname] = sel_tcb elseif tpsi then sel_tcb = tpsi end if ildb.may_modify_ts(ts) then if players_link_ts[pname] then if fields.cancellink then players_link_ts[pname] = nil elseif fields.mklink then ildb.link_track_sections(players_link_ts[pname], ts_id) players_link_ts[pname] = nil end end if fields.del_tcb and sel_tcb and sel_tcb > 0 and sel_tcb <= #ts.tc_breaks then if not ildb.remove_from_interlocking(ts.tc_breaks[sel_tcb]) then minetest.chat_send_player(pname, "Please unassign signal first!") end sel_tcb = nil end if fields.link then players_link_ts[pname] = ts_id end if fields.dissolve then ildb.dissolve_ts(ts_id) minetest.close_formspec(pname, formname) return end end if fields.setname then ts.name = fields.name if ts.name == "" then ts.name = "Section "..ts_id end end if fields.reset then -- User requested resetting the section -- Show him what this means... local form = "size[7,5]label[0.5,0.5;Reset track section]" form = form.."label[0.5,1;This will clear the list of trains\nand the routesetting status of this section.\nAre you sure?]" form = form.."button_exit[0.5,2.5; 5,1;reset;Yes]" form = form.."button_exit[0.5,3.5; 5,1;cancel;Cancel]" minetest.show_formspec(pname, "at_il_tsreset_"..ts_id, form) return end advtrains.interlocking.show_ts_form(ts_id, pname, sel_tcb) return end ts_id = string.match(formname, "^at_il_tsreset_(.+)$") if ts_id and fields.reset then local ts = ildb.get_ts(ts_id) if not ts then return end ts.trains = {} if ts.route_post then advtrains.interlocking.route.free_route_locks(ts_id, ts.route_post.locks) end ts.route_post = nil ts.route = nil for _, sigd in ipairs(ts.tc_breaks) do local tcbs = ildb.get_tcbs(sigd) advtrains.interlocking.update_signal_aspect(tcbs) end minetest.chat_send_player(pname, "Reset track section "..ts_id.."!") end end) -- TCB marker entities -- table with objectRefs local markerent = {} minetest.register_entity("advtrains_interlocking:tcbmarker", { visual = "mesh", mesh = "trackplane.b3d", textures = {"at_il_tcb_marker.png"}, collisionbox = {-1,-0.5,-1, 1,-0.4,1}, visual_size = {x=10, y=10}, on_punch = function(self) self.object:remove() end, on_rightclick = function(self, player) if self.tcbpos and player then advtrains.interlocking.show_tcb_form(self.tcbpos, player:get_player_name()) end end, get_staticdata = function() return "STATIC" end, on_activate = function(self, sdata) if sdata=="STATIC" then self.object:remove() end end, static_save = false, }) function advtrains.interlocking.show_tcb_marker(pos) --atdebug("showing tcb marker",pos) local tcb = ildb.get_tcb(pos) if not tcb then return end local node_ok, conns, rhe = advtrains.get_rail_info_at(pos, advtrains.all_tracktypes) if not node_ok then return end local yaw = advtrains.conn_angle_median(conns[2].c, conns[1].c) local itex = {} for connid=1,2 do local tcbs = tcb[connid] local ts if tcbs.ts_id then ts = ildb.get_ts(tcbs.ts_id) end if ts then itex[connid] = ts.name else itex[connid] = "--EOI--" end end local pts = advtrains.roundfloorpts(pos) if markerent[pts] then markerent[pts]:remove() end local obj = minetest.add_entity(pos, "advtrains_interlocking:tcbmarker") if not obj then return end obj:set_yaw(yaw) obj:set_properties({ infotext = "A = "..itex[1].."\nB = "..itex[2] }) local le = obj:get_luaentity() if le then le.tcbpos = pos end markerent[pts] = obj end -- Signalling formspec - set routes a.s.o -- textlist selection temporary storage local sig_pselidx = {} -- Players having a signalling form open local p_open_sig_form = {} function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte) if not minetest.check_player_privs(pname, "train_operator") then minetest.chat_send_player(pname, "Insufficient privileges to use this!") return end local hasprivs = minetest.check_player_privs(pname, "interlocking") local tcbs = ildb.get_tcbs(sigd) if not tcbs.signal then return end if not tcbs.signal_name then tcbs.signal_name = "Signal at "..minetest.pos_to_string(sigd.p) end if not tcbs.routes then tcbs.routes = {} end local form = "size[7,10]label[0.5,0.5;Signal at "..minetest.pos_to_string(sigd.p).."]" form = form.."field[0.8,1.5;5.2,1;name;Signal name;"..minetest.formspec_escape(tcbs.signal_name).."]" form = form.."button[5.5,1.2;1,1;setname;Set]" if tcbs.routeset then local rte = tcbs.routes[tcbs.routeset] if not rte then atwarn("Unknown route set from signal!") tcbs.routeset = nil return end form = form.."label[0.5,2.5;A route is requested from this signal:]"