aboutsummaryrefslogtreecommitdiff
path: root/textures/base/pack
ModeNameSize
-rw-r--r--blank.png95logplain
-rw-r--r--camera_btn.png789logplain
-rw-r--r--chat_btn.png777logplain
-rw-r--r--debug_btn.png960logplain
-rw-r--r--dirt_bg.png1586logplain
-rw-r--r--down.png1917logplain
-rw-r--r--down_arrow.png843logplain
-rw-r--r--drop_btn.png561logplain
-rw-r--r--fast_btn.png935logplain
-rw-r--r--fly_btn.png783logplain
-rw-r--r--halo.png194logplain
-rw-r--r--inventory_btn.png733logplain
-rw-r--r--jump_btn.png621logplain
-rw-r--r--left_arrow.png742logplain
-rw-r--r--logo.png12190logplain
-rw-r--r--menu_header.png133115logplain
-rw-r--r--minimap_mask_round.png4081logplain
-rw-r--r--minimap_mask_square.png1951logplain
-rw-r--r--minimap_overlay_round.png20630logplain
-rw-r--r--minimap_overlay_square.png2889logplain
-rw-r--r--no_screenshot.png476logplain
-rw-r--r--noclip_btn.png1151logplain
-rw-r--r--player_marker.png3885logplain
-rw-r--r--rangeview_btn.png1604logplain
-rw-r--r--right_arrow.png770logplain
-rw-r--r--server_flags_creative.png273logplain
-rw-r--r--server_flags_damage.png774logplain
-rw-r--r--server_flags_pvp.png1056logplain
-rw-r--r--smoke_puff.png1334logplain
-rw-r--r--sunrisebg.png4587logplain
-rw-r--r--unknown_item.png294logplain
-rw-r--r--unknown_node.png193logplain
-rw-r--r--unknown_object.png254logplain
-rw-r--r--up_arrow.png704logplain
span class="hl str">"_"..((conns.conn2+4*i)%16)]={name=nodename, param2=i} tp.tracks[nnprefix].double_conn[((conns.conn2+4*i)%16).."_"..((conns.conn1+4*i)%16)]={name=nodename, param2=i} tp.tracks[nnprefix].double_conn_1[((conns.conn1+4*i)%16).."_"..((conns.conn2+4*i)%16)]={name=nodename, param2=i} tp.tracks[nnprefix].double_conn_2[((conns.conn2+4*i)%16).."_"..((conns.conn1+4*i)%16)]={name=nodename, param2=i} end tp.tracks[nnprefix].modify[nodename]=true end function tp.add_single_conn(nnprefix, suffix, rotation, conns) local nodename=nnprefix.."_"..suffix..rotation for i=0,3 do tp.tracks[nnprefix].single_conn[((conns.conn1+4*i)%16)]={name=nodename, param2=i} tp.tracks[nnprefix].single_conn[((conns.conn2+4*i)%16)]={name=nodename, param2=i} tp.tracks[nnprefix].single_conn_1[((conns.conn1+4*i)%16)]={name=nodename, param2=i} tp.tracks[nnprefix].single_conn_2[((conns.conn2+4*i)%16)]={name=nodename, param2=i} end tp.tracks[nnprefix].modify[nodename]=true end function tp.add_worked(nnprefix, suffix, rotation, cycle_follows) tp.tracks[nnprefix].twcycle[suffix]=cycle_follows if not tp.tracks[nnprefix].twrotate[suffix] then tp.tracks[nnprefix].twrotate[suffix]={} end table.insert(tp.tracks[nnprefix].twrotate[suffix], rotation) end --[[ rewrite algorithm. selection criteria: these will never be changed or even selected: - tracks being already connected on both sides - tracks that are already connected on one side but are not bendable to the desired position the following situations can occur: 1. there are two more than two rails around 1.1 there is one or more subset(s) that can be directly connected -> choose the first possibility 2.2 not -> choose the first one and orient straight 2. there's exactly 1 rail around -> choose and orient straight 3. there's no rail around -> set straight ]] local function istrackandbc(pos_p, conn) local tpos = pos_p local cnode=minetest.get_node(advtrains.dirCoordSet(tpos, conn.c)) if advtrains.is_track_and_drives_on(cnode.name, advtrains.all_tracktypes) then local cconns=advtrains.get_track_connections(cnode.name, cnode.param2) return advtrains.conn_matches_to(conn, cconns) end --try the same 1 node below tpos = {x=tpos.x, y=tpos.y-1, z=tpos.z} cnode=minetest.get_node(advtrains.dirCoordSet(tpos, conn.c)) if advtrains.is_track_and_drives_on(cnode.name, advtrains.all_tracktypes) then local cconns=advtrains.get_track_connections(cnode.name, cnode.param2) return advtrains.conn_matches_to(conn, cconns) end return false end function tp.find_already_connected(pos) local dnode=minetest.get_node(pos) local dconns=advtrains.get_track_connections(dnode.name, dnode.param2) local found_conn for connid, conn in ipairs(dconns) do if istrackandbc(pos, conn) then if found_conn then --we found one in previous iteration return true, true --signal that it's connected else found_conn = conn.c end end end return found_conn end function tp.rail_and_can_be_bent(originpos, conn) local pos=advtrains.dirCoordSet(originpos, conn) local newdir=(conn+8)%16 local node=minetest.get_node(pos) if not advtrains.is_track_and_drives_on(node.name, advtrains.all_tracktypes) then return false end local ndef=minetest.registered_nodes[node.name] local nnpref = ndef and ndef.at_nnpref if not nnpref then return false end local tr=tp.tracks[nnpref] if not tr then return false end if not tr.modify[node.name] then --we actually can use this rail, but only if it already points to the desired direction. if advtrains.is_track_and_drives_on(node.name, advtrains.all_tracktypes) then local cconns=advtrains.get_track_connections(node.name, node.param2) return advtrains.conn_matches_to(conn, cconns) end end -- If the rail is not allowed to be modified, also only use if already in desired direction if not advtrains.can_dig_or_modify_track(pos) then local cconns=advtrains.get_track_connections(node.name, node.param2) return advtrains.conn_matches_to(conn, cconns) end --rail at other end? local adj1, adj2=tp.find_already_connected(pos) if adj1 and adj2 then return false--dont destroy existing track elseif adj1 and not adj2 then if tr.double_conn[adj1.."_"..newdir] then return true--if exists, connect new rail and old end end return false else if tr.single_conn[newdir] then--just rotate old rail to right orientation return true end return false end end function tp.bend_rail(originpos, conn) local pos=advtrains.dirCoordSet(originpos, conn) local newdir=advtrains.oppd(conn) local node=minetest.get_node(pos) local ndef=minetest.registered_nodes[node.name] local nnpref = ndef and ndef.at_nnpref if not nnpref then return false end local tr=tp.tracks[nnpref] if not tr then return false end --is rail already connected? no need to bend. local conns=advtrains.get_track_connections(node.name, node.param2) if advtrains.conn_matches_to(conn, conns) then return end --rail at other end? local adj1, adj2=tp.find_already_connected(pos) if adj1 and adj2 then return false--dont destroy existing track elseif adj1 and not adj2 then if tr.double_conn[adj1.."_"..newdir] then advtrains.ndb.swap_node(pos, tr.double_conn[adj1.."_"..newdir]) return true--if exists, connect new rail and old end end return false else if tr.single_conn[newdir] then--just rotate old rail to right orientation advtrains.ndb.swap_node(pos, tr.single_conn[newdir]) return true end return false end end function tp.placetrack(pos, nnpref, placer, itemstack, pointed_thing, yaw) --1. find all rails that are likely to be connected local tr=tp.tracks[nnpref] local p_rails={} local p_railpos={} for i=0,15 do if tp.rail_and_can_be_bent(pos, i, nnpref) then p_rails[#p_rails+1]=i p_railpos[i] = pos else local upos = {x=pos.x, y=pos.y-1, z=pos.z} if tp.rail_and_can_be_bent(upos, i, nnpref) then p_rails[#p_rails+1]=i p_railpos[i] = upos end end end -- try double_conn if #p_rails > 1 then --iterate subsets for k1, conn1 in ipairs(p_rails) do for k2, conn2 in ipairs(p_rails) do if k1~=k2 then local dconn1 = tr.double_conn_1 local dconn2 = tr.double_conn_2 if not (advtrains.yawToDirection(yaw, conn1, conn2) == conn1) then dconn1 = tr.double_conn_2 dconn2 = tr.double_conn_1 end -- Checks are made this way round so that dconn1 has priority (this will make arrows of atc rails -- point in the right direction) local using if (dconn2[conn1.."_"..conn2]) then using = dconn2[conn1.."_"..conn2] end if (dconn1[conn1.."_"..conn2]) then using = dconn1[conn1.."_"..conn2] end if using then -- has found a fitting rail in either direction -- if not, continue loop tp.bend_rail(p_railpos[conn1], conn1, nnpref) tp.bend_rail(p_railpos[conn2], conn2, nnpref) advtrains.ndb.swap_node(pos, using) local nname=using.name if minetest.registered_nodes[nname] and minetest.registered_nodes[nname].after_place_node then minetest.registered_nodes[nname].after_place_node(pos, placer, itemstack, pointed_thing)