diff options
117 files changed, 16811 insertions, 3149 deletions
diff --git a/.build.yml b/.build.yml new file mode 100644 index 0000000..c4c697f --- /dev/null +++ b/.build.yml @@ -0,0 +1,23 @@ +image: debian/stable +packages: +- git +- lua-busted +- luajit +sources : +- https://git.sr.ht/~gpcf/advtrains + +tasks: + +- run_unit_tests : | + cd advtrains/advtrains + busted + cd ../advtrains_interlocking + busted + cd ../serialize_lib + busted + +- test_po_files : | + cd advtrains/advtrains + for f in po/*.po; do + luajit -e 'require("poconvert").from_string("advtrains", io.input():read("*a"))' < $f + done diff --git a/.dir-locals.el b/.dir-locals.el new file mode 100644 index 0000000..57aae07 --- /dev/null +++ b/.dir-locals.el @@ -0,0 +1,5 @@ +((nil (tab-width . 8)) + (lua-mode (indent-tabs-mode . t) + (lua-indent-level . 8) + (lua-indent-close-paren-align . nil) + (lua-indent-nested-block-content-align . nil))) @@ -1,3 +1,5 @@ ## Eclipse project files & directories .project .settings +advtrains/locale/*.tr +advtrains/po/*~ diff --git a/README.md b/README.md new file mode 100644 index 0000000..e80e4b5 --- /dev/null +++ b/README.md @@ -0,0 +1,108 @@ + +# ADVTRAINS – realistic trains in Minetest! +by orwell96 and contributors (see below) + +[![builds.sr.ht status](https://builds.sr.ht/~gpcf/advtrains/commits/.build.yml.svg)](https://builds.sr.ht/~gpcf/advtrains/commits/.build.yml?) + +For up-to-date information, visit <https://advtrains.de/> + +License of code: GNU AGPL version 3 +License of media: CC-BY-SA 3.0 + +(up to commit 1bb1d8 (2020-02-14), the license has been LGPL 2.1) + +## Installation + +To use advtrains, you need to install a mod providing trains. *Note +that advtrains no longer comes bundled with any trains out of the +box*. Some selected train mods by the authors of advtrains are: + +* [Basic trains](https://git.bananach.space/basic_trains.git/) by + orwell96, mbblp et al. The classic selection of trains for + advtrains, formerly included in the mod. +* [Moretrains](https://git.bananach.space/moretrains.git) by rbduck, + with improvements by gpcf and Marnack. +* [dlxtrains](https://github.com/Marnack/dlxtrains_modpack) by Marnack + + +Further information is available on the [wiki](https://advtrains.de/wiki/). + + +## How to contribute + +* [Bug tracker](https://bugs.linux-forks.de/advtrains) +* [Discussion and Support mailing list][srht-discuss] +* Send patches via [git-send-email][gsm] to the [dev mailing + list][srht-devel] + + + +[srht-discuss]: https://lists.sr.ht/~gpcf/advtrains-discuss +[srht-devel]: https://lists.sr.ht/~gpcf/advtrains-devel +[gsm]: https://git-send-email.io/ + + +## Credits + +### Coding + +Various features and bugfixes have been contributed by: + +- gpcf +- Blockhead +- ywang + +Small code contributions: + +- hlqkj +- Maverick2797 +- AntumDeluge +- lemon-melon +- mbblp +- Andrey K +- Hume2 +- Linus Jahn +- Pedro Gimeno +- Relatio +- Thomas Rudin +- h-v-smacker +- imcasper +- rubenwardy +- techniX + + + +### Assets: + +* Gravel Texture : from Minetest Game +* Initial rail model/texture : DS-minetest +* Models for signals/bumpers : mbb +* Steam engine / wagon texture: mbb +* Detailed Steam engine : mbb / Krokoschlange(animation) +* Industrial engine/wagons : mbb +* Inventory images : mbb +* Node texture for LuaATC controller: Jeija (from Mesecons) +* Mod Description : hajo +* 45 degree platforms design : Och_Noe + +#### Sounds: + +* advtrains\_crossing\_bell : Codesound +* advtrains\_japan\_horn : Codesound +* advtrains\_steam\_whistle : googol +* advtrains\_subway\_horn : https://freesound.org/people/Mullumbimby/sounds/385283/ +* advtrains\_subway\_\* : Gabriel (gbl08ma) + + +### Testers: + +* gpcf (Linuxforks server) +* imcasper (tss Branch) +* Cato (C&C Servers) + + +If I forgot someone please punish me for that. Also see the Git commit +log. + +You can see this mod in action on various minetest servers, including +the Linuxforks minetest server. diff --git a/advtrains/api_doc.txt b/advtrains/api_doc.txt index 8ac4986..5668ba3 100644 --- a/advtrains/api_doc.txt +++ b/advtrains/api_doc.txt @@ -75,9 +75,23 @@ advtrains.register_wagon(name, prototype, description, inventory_image) ^- Getting on by walking in then takes effect. ^- Positive values mean front, negative ones back. Resulting position is automatically shifted to the right side. + coupler_types_front = {scharfenberg=true}, + coupler_types_back = {chain=true}, + ^- Defines the available coupler types on this wagon on the front and back side. Wagon will only couple to wagons that have a matching coupler. (this property does not have any visual impact) + ^- Default: not given (nil) - causes the wagon to couple to any other wagon regardless of coupler type. + ^- Empty table ({}): This wagon does not couple to any other wagon (e.g. for Linetrack vehicles) + ^- Register coupler types using ''advtrains.register_coupler_type(type, name)''. advtrains defines the default types "chain" (Buffer and Chain) and "scharfenberg" (Scharfenberg coupler). + wagon_span=2, ^- How far this wagon extends from its base position. Is the half of the wagon length. ^- Used to determine in which distance the other wagons have to be positioned. Will require tweaking. + wheel_positions = {1.5, -1.5}, + ^- Optional: if defined, the wagon will be placed so that these 2 wheel positions are on the track + ^- This parameter is recommended for long wagons (wagon_span >= 2). + ^- The position is a distance relative to the center of the wagon. + ^- Must have exactly 2 entries, corresponding to the front (1) and rear (2) wheel of the wagon object. 1st must be greater than 2nd. + ^- If not provided, the simple 1-position positioning logic will be used (wagon is positioned with the center on the track) + extent_h = 1, ^- Determines the collision box extent in x/z direction. Defaults to 1 (=3x3) ^- The actual bounding box size is (extent_h*2)+1, so 0 means 1x1, 1 means 3x3 and 2 means 5x5 diff --git a/advtrains/atc.lua b/advtrains/atc.lua index 64cdcec..b572cdc 100644 --- a/advtrains/atc.lua +++ b/advtrains/atc.lua @@ -93,6 +93,7 @@ function atc.train_reset_command(train, keep_tarvel) train.atc_delay=nil train.atc_brake_target=nil train.atc_wait_finish=nil + train.atc_wait_autocouple=nil train.atc_arrow=nil if not keep_tarvel then train.tarvelocity=nil @@ -105,7 +106,7 @@ local apn_func=function(pos) -- FIX for long-persisting ndb bug: there's no node in parameter 2 of this function! local meta=minetest.get_meta(pos) if meta then - meta:set_string("infotext", attrans("ATC controller, unconfigured.")) + meta:set_string("infotext", attrans("Unconfigured ATC controller")) meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta)) end end @@ -199,10 +200,16 @@ local matchptn={ return #match+1 end, ["B([0-9]+)"]=function(id, train, match) - if train.velocity>tonumber(match) then - train.atc_brake_target=tonumber(match) - if not train.tarvelocity or train.tarvelocity>train.atc_brake_target then - train.tarvelocity=train.atc_brake_target + local btar = tonumber(match) + if train.velocity>btar then + train.atc_brake_target=btar + if not train.tarvelocity or train.tarvelocity>btar then + train.tarvelocity=btar + end + else + -- independent of brake target, must make sure that tarvelocity is not greater than it + if train.tarvelocity and train.tarvelocity>btar then + train.tarvelocity=btar end end return #match+1 @@ -226,7 +233,7 @@ local matchptn={ advtrains.train_ensure_init(id, train) -- no one minds if this failed... this shouldn't even be called without train being initialized... else - atwarn(sid(id), attrans("ATC Reverse command warning: didn't reverse train, train moving!")) + atwarn(sid(id), attrans("ATC Reverse command warning: didn't reverse train, train moving.")) end return 1 end, @@ -238,11 +245,11 @@ local matchptn={ end, ["K"] = function(id, train) if train.door_open == 0 then - atwarn(sid(id), attrans("ATC Kick command warning: Doors closed")) + atwarn(sid(id), attrans("ATC Kick command warning: doors are closed.")) return 1 end if train.velocity > 0 then - atwarn(sid(id), attrans("ATC Kick command warning: Train moving")) + atwarn(sid(id), attrans("ATC Kick command warning: train moving.")) return 1 end local tp = train.trainparts @@ -267,6 +274,10 @@ local matchptn={ advtrains.interlocking.ars_set_disable(train, match=="0") return 2 end, + ["Cpl"]=function(id, train) + train.atc_wait_autocouple=true + return 3 + end, } eval_conditional = function(command, arrow, speed) @@ -358,11 +369,13 @@ function atc.execute_atc_command(id, train) local match=string.match(command, "^"..pattern) if match then local patlen=func(id, train, match) - - atprint("Executing: "..string.sub(command, 1, patlen)) - + --atdebug("Executing: "..string.sub(command, 1, patlen)) + --atdebug("Train ATC State: tvel=",train.tarvelocity,"brktar=",train.atc_brake_target,"delay=",train.atc_delay,"wfinish=",train.atc_wait_finish,"wacpl=",train.atc_wait_autocouple) + train.atc_command=string.sub(command, patlen+1) - if train.atc_delay<=0 and not train.atc_wait_finish then + if train.atc_delay<=0 + and not train.atc_wait_finish + and not train.atc_wait_autocouple then --continue (recursive, cmds shouldn't get too long, and it's a end-recursion.) atc.execute_atc_command(id, train) end diff --git a/advtrains/copytool.lua b/advtrains/copytool.lua index 0b2aa52..ca5cae1 100644 --- a/advtrains/copytool.lua +++ b/advtrains/copytool.lua @@ -26,7 +26,7 @@ minetest.register_tool("advtrains:copytool", { return itemstack end if not minetest.check_player_privs(placer, {train_operator = true }) then - minetest.chat_send_player(pname, attrans("You don't have the train_operator privilege.")) + minetest.chat_send_player(pname, S("You do not have the @1 privilege.", "train_operator")) return itemstack end if not minetest.check_player_privs(placer, {train_admin = true }) and minetest.is_protected(pointed_thing.under, placer:get_player_name()) then @@ -38,7 +38,7 @@ minetest.register_tool("advtrains:copytool", { local prevpos = advtrains.get_adjacent_rail(pointed_thing.under, tconns, plconnid, {default=true}) if not prevpos then - minetest.chat_send_player(pname, attrans("The track you are trying to place the wagon on is not long enough!")) + minetest.chat_send_player(pname, attrans("The track you are trying to place the wagon on is not long enough.")) return end @@ -89,19 +89,19 @@ minetest.register_tool("advtrains:copytool", { local le = pointed_thing.ref:get_luaentity() if (le == nil) then - minetest.chat_send_player(user:get_player_name(), attrans("No such lua entity!")) + minetest.chat_send_player(user:get_player_name(), attrans("No such lua entity.")) return end local wagon = advtrains.wagons[le.id] if (not (le.id and advtrains.wagons[le.id])) then - minetest.chat_send_player(user:get_player_name(), attrans("No such wagon: @1", le.id)) + minetest.chat_send_player(user:get_player_name(), attrans("No such wagon: @1.", le.id)) return end local train = advtrains.trains[wagon.train_id] if (not train) then - minetest.chat_send_player(user:get_player_name(), attrans("No such train: @1", wagon.train_id)) + minetest.chat_send_player(user:get_player_name(), attrans("No such train: @1.", wagon.train_id)) return end @@ -177,7 +177,7 @@ minetest.register_tool("advtrains:copytool", { return end meta:set_string("clipboard", minetest.serialize(clipboard)) - minetest.chat_send_player(user:get_player_name(), attrans("Train copied!")) + minetest.chat_send_player(user:get_player_name(), attrans("Train copied.")) return itemstack end }) diff --git a/advtrains/couple.lua b/advtrains/couple.lua index 3dc336f..9474dcf 100644 --- a/advtrains/couple.lua +++ b/advtrains/couple.lua @@ -1,14 +1,407 @@ --couple.lua ---defines couple entities. +--Handles coupling and discoupling of trains, and defines the coupling entities +--Rework June 2021 - some functions from trainlogic.lua have been moved here ---advtrains:discouple ---set into existing trains to split them when punched. ---they are attached to the wagons. ---[[fields -wagon +-- COUPLING -- +-- During coupling rework, the behavior of coupling was changed to make automation easier. It is now as follows: +-- Coupling is only ever initiated when a train is standing somewhere (not moving) and another train drives onto one of its ends +-- with a speed greater than 0 +-- "stationary" train is the one standing there - in old code called "train2" +-- "initiating" train is the one that approached it and bumped into it - typically an engine - in old code called "train1" +-- When the initiating train has autocouple set, trains are immediately coupled +-- When not, a couple entity is spawned and coupling commences on click +-- Coupling MUST preserve the train ID of the initiating train, so it is done like this: + -- index of initiating train is set so that it matches the front pos of stationary train + -- remove stationary train + -- wagons of stationary train are inserted at the beginning of initiating train (considers direction of stat_train and inserts reverse if required) -wagons keep their couple entity minetest-internal id inside the field discouple_id. if it refers to nowhere, they will spawn a new one if player is near -]] +-- train.couple_* contain references to ObjectRefs of couple objects, which contain all relevant information +-- These objectRefs will delete themselves once the couples no longer match (see below) + +advtrains.coupler_types = {} + +function advtrains.register_coupler_type(code, name) + advtrains.coupler_types[code] = name +end + +-- Register some default couplers +advtrains.register_coupler_type("chain", attrans("Buffer and Chain Coupler")) +advtrains.register_coupler_type("scharfenberg", attrans("Scharfenberg Coupler")) + + +local function create_couple_entity(pos, train1, t1_is_front, train2, t2_is_front) + local id1 = train1.id + local id2 = train2.id + + -- delete previous couple entities + if t1_is_front then + if train1.cpl_front then train1.cpl_front:remove() end + else + if train1.cpl_back then train1.cpl_back:remove() end + end + if t2_is_front then + if train2.cpl_front then train2.cpl_front:remove() end + else + if train2.cpl_back then train2.cpl_back:remove() end + end + + local obj=minetest.add_entity(pos, "advtrains:couple") + if not obj then error("Failed creating couple object!") return end + local le=obj:get_luaentity() + le.train_id_1=id1 + le.t1_is_front=t1_is_front + le.train_id_2=id2 + le.t2_is_front=t2_is_front + --atdebug("created couple between",train1.id,train2.id,t2_is_front) + + if t1_is_front then + train1.cpl_front = obj + else + train2.cpl_back = obj + end + if t2_is_front then + train2.cpl_front = obj + else + train2.cpl_back = obj + end +end + +-- Old static couple checking. Never used for autocouple, only used for standing trains if train did not approach +local CPL_CHK_DST = -1 +local CPL_ZONE = 2 +function advtrains.train_check_couples(train) + --atdebug("rechecking couples") + if train.cpl_front then + if not train.cpl_front:get_yaw() then + -- objectref is no longer valid. reset. + train.cpl_front = nil + end + end + if not train.cpl_front then + -- recheck front couple + local pos = advtrains.path_get(train, atround(train.index) + CPL_CHK_DST) + if advtrains.is_node_loaded(pos) then -- if the position is loaded... + local front_trains = advtrains.occ.reverse_lookup_sel(pos, "in_train") + for tid, idx in pairs(front_trains) do + local other_train = advtrains.trains[tid] + if not advtrains.train_ensure_init(tid, other_train) then + atwarn("Train",tid,"is not initialized! Couldn't check couples!") + return + end + --atdebug(train.id,"front: ",idx,"on",tid,atround(other_train.index),atround(other_train.end_index)) + if other_train.velocity == 0 then + if idx>=other_train.index and idx<=other_train.index + CPL_ZONE then + create_couple_entity(pos, train, true, other_train, true) + break + end + if idx<=other_train.end_index and idx>=other_train.end_index - CPL_ZONE then + create_couple_entity(pos, train, true, other_train, false) + break + end + end + end + end + end + if train.cpl_back then + if not train.cpl_back:get_yaw() then + -- objectref is no longer valid. reset. + train.cpl_back = nil + end + end + if not train.cpl_back then + -- recheck back couple + local pos = advtrains.path_get(train, atround(train.end_index) - CPL_CHK_DST) + if advtrains.is_node_loaded(pos) then -- if the position is loaded... + local back_trains = advtrains.occ.reverse_lookup_sel(pos, "in_train") + for tid, idx in pairs(back_trains) do + local other_train = advtrains.trains[tid] + if not advtrains.train_ensure_init(tid, other_train) then + atwarn("Train",tid,"is not initialized! Couldn't check couples!") + return + end + --atdebug(train.id,"back: ",idx,"on",tid,atround(other_train.index),atround(other_train.end_index)) + if other_train.velocity == 0 then + if idx>=other_train.index and idx<=other_train.index + CPL_ZONE then + create_couple_entity(pos, train, false, other_train, true) + break + end + if idx<=other_train.end_index and idx>=other_train.end_index - CPL_ZONE then + create_couple_entity(pos, train, false, other_train, false) + break + end + end + end + end + end +end + +-- Deletes couple entities from the train +function advtrains.couple_invalidate(train) + if train.cpl_back then + train.cpl_back:remove() + train.cpl_back = nil + end + if train.cpl_front then + train.cpl_front:remove() + train.cpl_front = nil + end + train.couples_up_to_date = nil +end + +-- Called from train_step_b() when the current train (init_train) just stopped at one of the end indices of another train (stat_train) +-- Depending on autocouple, either couples immediately or spawns a couple entity +function advtrains.couple_initiate_with(init_train, stat_train, stat_is_front) + --atdebug("Couple init autocouple=",init_train.autocouple,"atc_w_acpl=",init_train.atc_wait_autocouple) + if init_train.autocouple or init_train.atc_wait_autocouple then + local cplmatch, msg = advtrains.check_matching_coupler_types(init_train, true, stat_train, stat_is_front) + if cplmatch then + advtrains.couple_trains(init_train, false, stat_train, stat_is_front) + -- clear atc couple waiting blocker + init_train.atc_wait_autocouple = nil + return + end + end + -- get here if either autocouple is not on or couples dont match + local pos = advtrains.path_get_interpolated(init_train, init_train.index) + create_couple_entity(pos, init_train, true, stat_train, stat_is_front) + -- clear ATC command on collision + advtrains.atc.train_reset_command(init_train) + +end + +-- check if the player has permission for the first/last wagon of the train +local function check_twagon_owner(train, b_first, pname) + local wtp = b_first and 1 or #train.trainparts + local wid = train.trainparts[wtp] + local wdata = advtrains.wagons[wid] + if wdata then + return advtrains.check_driving_couple_protection(pname, wdata.owner, wdata.whitelist) + end + return false +end + +-- Perform coupling, but check if the player is authorized to couple +function advtrains.safe_couple_trains(train1, t1_is_front, train2, t2_is_front, pname) + + if pname and not minetest.check_player_privs(pname, "train_operator") then + minetest.chat_send_player(pname, S("You are not allowed to couple trains without the train_operator privilege.")) + return false + end + + local wck_t1, wck_t2 + if pname then + wck_t1 = check_twagon_owner(train1, t1_is_front, pname) + wck_t2 = check_twagon_owner(train2, t2_is_front, pname) + end + if (wck_t1 or wck_t2) or not pname then + + local cplmatch, msg = advtrains.check_matching_coupler_types(train1, t1_is_front, train2, t2_is_front) + if cplmatch then + advtrains.couple_trains(train1, not t1_is_front, train2, t2_is_front) + else + minetest.chat_send_player(pname, msg) + end + end +end + +-- Actually performs the train coupling. Always retains train ID of train1 +function advtrains.couple_trains(init_train, invert_init_train, stat_train, stat_train_opposite) + --atdebug("Couple trains init=",init_train.id,"initinv=",invert_init_train,"stat=",stat_train.id,"statreverse=",stat_train_opposite) + + if not advtrains.train_ensure_init(init_train.id, init_train) then + atwarn("Coupling: initiating train",init_train.id,"is not initialized! Operation aborted!") + return + end + if not advtrains.train_ensure_init(stat_train.id, stat_train) then + atwarn("Coupling: stationary train",stat_train.id,"is not initialized! Operation aborted!") + return + end + + -- only used with the couple entity + if invert_init_train then + advtrains.invert_train(init_train.id) + end + + local itp = init_train.trainparts + local init_wagoncnt = #itp + local stp = stat_train.trainparts + local stat_wagoncnt = #stp + local stat_trainlen = stat_train.trainlen -- save the train length of stat train, to be added to index + + -- sanity check, prevent coupling if train would be longer than 20 after coupling + local tot_len = init_wagoncnt + stat_wagoncnt + if tot_len > advtrains.TRAIN_MAX_WAGONS then + atwarn("Cannot couple",stat_train.id,"and",init_train.id,"- train would have length",tot_len,"which is above the limit of",advtrains.TRAIN_MAX_WAGONS) + return + end + + if stat_train_opposite then + -- insert wagons in inverse order and set their wagon_flipped state + for i=1,stat_wagoncnt do + table.insert(itp, 1, stp[i]) + local wdata = advtrains.wagons[stp[i]] + if wdata then + wdata.wagon_flipped = not wdata.wagon_flipped + else + atwarn("While coupling, wagon",stp[i],"of stationary train",stat_train.id,"not found!") + end + end + else + --insert wagons in normal order + for i=stat_wagoncnt,1,-1 do + table.insert(itp, 1, stp[i]) + end + end + + -- TODO: migrate some of the properties from stat_train to init_train? + + advtrains.remove_train(stat_train.id) + + -- Set train index forward + init_train.index = advtrains.path_get_index_by_offset(init_train, init_train.index, stat_trainlen) + + advtrains.update_trainpart_properties(init_train.id) + advtrains.update_train_start_and_end(init_train) + + advtrains.couple_invalidate(init_train) + return true +end + +-- Couple types matching check +-- returns: true, nil if OK +-- false, errmsg if there is an error +function advtrains.check_matching_coupler_types(t1, t1_front, t2, t2_front) + -- 1. get wagons + local t1_wid + if t1_front then + t1_wid = t1.trainparts[1] + else + t1_wid = t1.trainparts[#t1.trainparts] + end + local t2_wid + if t2_front then + t2_wid = t2.trainparts[1] + else + t2_wid = t2.trainparts[#t2.trainparts] + end + + --atdebug("CMCT: t1_wid",t1_wid,"t2_wid",t2_wid,"") + + if not t1_wid or not t2_wid then + return false, "Unable to retrieve wagons from train"--note: no translation needed, case should not occur + end + + local t1_wagon = advtrains.wagons[t1_wid] + local t2_wagon = advtrains.wagons[t2_wid] + + if not t1_wagon or not t2_wagon then + return false, "At least one of wagons "..t1_wagon.." or "..t2_wagon.." does not exist"--note: no translation needed, case should not occur + end + + -- these calls do not fail, they may return placeholder - doesn't matter + local _,t1_wpro = advtrains.get_wagon_prototype(t1_wagon) + local _,t2_wpro = advtrains.get_wagon_prototype(t2_wagon) + + -- get correct couplers table (front/back) + local t1_cplt + if not t1_front == not t1_wagon.wagon_flipped then --fancy XOR + t1_cplt = t1_wpro.coupler_types_back + else + t1_cplt = t1_wpro.coupler_types_front + end + local t2_cplt + if not t2_front == not t2_wagon.wagon_flipped then --fancy XOR + t2_cplt = t2_wpro.coupler_types_back + else + t2_cplt = t2_wpro.coupler_types_front + end + + --atdebug("CMCT: t1",t1_cplt,"t2",t2_cplt,"") + + -- if at least one of the trains has no couplers table, it always couples (fallback behavior and mode for universal shunters) + if not t1_cplt or not t2_cplt then + return true + end + + -- have common coupler? + for typ,_ in pairs(t1_cplt) do + if t2_cplt[typ] then + --atdebug("CMCT: Matching type",typ) + return true + end + end + --no match, give user an info + local t1_cplhr, t2_cplhr = {},{} + for typ,_ in pairs(t1_cplt) do + table.insert(t1_cplhr, advtrains.coupler_types[typ] or typ) + end + if #t1_cplhr==0 then t1_cplhr[1]=attrans("<No coupler>") end + for typ,_ in pairs(t2_cplt) do + table.insert(t2_cplhr, advtrains.coupler_types[typ] or typ) + end + if #t2_cplhr==0 then t2_cplhr[1]=attrans("<No coupler>") end + return false, attrans("Can not couple: The couplers of the trains do not match (@1 and @2).", table.concat(t1_cplhr, ","), table.concat(t2_cplhr, ",")) +end + +-- DECOUPLING -- +function advtrains.split_train_at_fc(train, count_empty, length_limit) + -- splits train at first different current FC by convention, + -- locomotives have empty FC so are ignored + -- count_empty is used to split off locomotives + -- length_limit limits the length of the first train to length_limit wagons + local train_id = train.id + local fc = false + local ind = 0 + for i = 1, #train.trainparts do + local w_id = train.trainparts[i] + local data = advtrains.wagons[w_id] + if length_limit and i > length_limit then + ind = i + break + end + if data then + local wfc = advtrains.get_cur_fc(data) + if wfc ~= "" or count_empty then + if fc then + if fc ~= wfc then + ind = i + break + end + else + fc = wfc + end + end + end + end + if ind > 0 then + return advtrains.split_train_at_index(train, ind), fc + end + if fc then + return nil, fc + end +end + +function advtrains.train_step_fc(train) + for i=1,#train.trainparts do + local w_id = train.trainparts[i] + local data = advtrains.wagons[w_id] + if data then + advtrains.step_fc(data) + end + end +end + + +-- split_train_at_index() is in trainlogic.lua because it needs access to two local functions + +function advtrains.split_train_at_wagon(wagon_id) + --get train + local data = advtrains.wagons[wagon_id] + advtrains.split_train_at_index(advtrains.trains[data.train_id], data.pos_in_trainparts) +end + + +-- COUPLE ENTITIES -- local couple_max_dist=3 @@ -36,8 +429,6 @@ minetest.register_entity("advtrains:discouple", { if pname and pname~="" and self.wagon then if advtrains.safe_decouple_wagon(self.wagon.id, pname) then self.object:remove() - else - minetest.add_entity(self.object:getpos(), "advtrains:lockmarker") end end end, @@ -60,10 +451,6 @@ minetest.register_entity("advtrains:discouple", { -- advtrains:couple -- Couple entity -local function lockmarker(obj) - minetest.add_entity(obj:get_pos(), "advtrains:lockmarker") - obj:remove() -end minetest.register_entity("advtrains:couple", { visual="sprite", @@ -75,107 +462,71 @@ minetest.register_entity("advtrains:couple", { is_couple=true, static_save = false, on_activate=function(self, staticdata) - if staticdata=="COUPLE" then - --couple entities have no right to exist further... - atprint("Couple loaded from staticdata, destroying") - self.object:remove() - return - end - self.object:set_armor_groups({immmortal=1}) + if staticdata=="COUPLE" then + --couple entities have no right to exist further... + --atdebug("Couple loaded from staticdata, destroying") + self.object:remove() + return + end + self.object:set_armor_groups({immmortal=1}) end, get_staticdata=function(self) return "COUPLE" end, on_rightclick=function(self, clicker) - if not self.train_id_1 or not self.train_id_2 then return end - - local pname=clicker - if type(clicker)~="string" then pname=clicker:get_player_name() end - - if advtrains.safe_couple_trains(self.train_id_1, self.train_id_2, self.t1_is_front, self.t2_is_front, pname) then - self.object:remove() - else - lockmarker(self.object) - end + if not self.train_id_1 or not self.train_id_2 then return end + + local pname=clicker + if type(clicker)~="string" then pname=clicker:get_player_name() end + + local train1=advtrains.trains[self.train_id_1] + local train2=advtrains.trains[self.train_id_2] + + advtrains.safe_couple_trains(train1, self.t1_is_front, train2, self.t2_is_front, pname) + self.object:remove() end, on_step=function(self, dtime) - if advtrains.wagon_outside_range(self.object:getpos()) then - self.object:remove() - return - end + if advtrains.wagon_outside_range(self.object:getpos()) then + --atdebug("Couple Removing outside range") + self.object:remove() + return + end - if not self.train_id_1 or not self.train_id_2 then atprint("Couple: train ids not set!") self.object:remove() return end - local train1=advtrains.trains[self.train_id_1] - local train2=advtrains.trains[self.train_id_2] - if not train1 or not train2 then - atprint("Couple: trains missing, destroying") - self.object:remove() - return - end - - --shh, silence here, this is an on-step callback! - if not advtrains.train_ensure_init(self.train_id_1, train1) then - --atwarn("Train",self.train_id_1,"is not initialized! Operation aborted!") - return - end - if not advtrains.train_ensure_init(self.train_id_2, train2) then - --atwarn("Train",self.train_id_2,"is not initialized! Operation aborted!") - return - end - - if train1.velocity>0 or train2.velocity>0 then - if not self.position_set then --ensures that train stands a single time before check fires. Using flag below - return - end - atprint("Couple: train is moving, destroying") - self.object:remove() - return + if not self.train_id_1 or not self.train_id_2 then + --atdebug("Couple Removing ids missing") + self.object:remove() + return + end + local train1=advtrains.trains[self.train_id_1] + local train2=advtrains.trains[self.train_id_2] + if not train1 or not train2 then + --atdebug("Couple Removing trains missing") + self.object:remove() + return + end + + if self.position_set and train1.velocity>0 or train2.velocity>0 then + --atdebug("Couple: train is moving, destroying") + self.object:remove() + return + end + + if not self.position_set then + local tp1 + if self.t1_is_front then + tp1=advtrains.path_get_interpolated(train1, train1.index) + else + tp1=advtrains.path_get_interpolated(train1, train1.end_index) end - - if not self.position_set then - local tp1 - if self.t1_is_front then - tp1=advtrains.path_get_interpolated(train1, train1.index) - else - tp1=advtrains.path_get_interpolated(train1, train1.end_index) - end - local tp2 - if self.t2_is_front then - tp2=advtrains.path_get_interpolated(train2, train2.index) - else - tp2=advtrains.path_get_interpolated(train2, train2.end_index) - end - local pos_median=advtrains.pos_median(tp1, tp2) - if not vector.equals(pos_median, self.object:getpos()) then - self.object:set_pos(pos_median) - end - self.position_set=true + local tp2 + if self.t2_is_front then + tp2=advtrains.path_get_interpolated(train2, train2.index) + else + tp2=advtrains.path_get_interpolated(train2, train2.end_index) end - advtrains.atprint_context_tid=nil - end, -}) -minetest.register_entity("advtrains:lockmarker", { - visual="sprite", - textures = {"advtrains_cpl_lock.png"}, - collisionbox = {-0.3,-0.3,-0.3, 0.3,0.3,0.3}, - visual_size = {x=0.7, y=0.7}, - initial_sprite_basepos = {x=0, y=0}, - - is_lockmarker=true, - static_save = false, - on_activate=function(self, staticdata) - if staticdata=="COUPLE" then - --couple entities have no right to exist further... - atprint("Couple loaded from staticdata, destroying") - self.object:remove() - return + local pos_median=advtrains.pos_median(tp1, tp2) + if not vector.equals(pos_median, self.object:getpos()) then + self.object:set_pos(pos_median) end - self.object:set_armor_groups({immmortal=1}) - self.life=5 - end, - get_staticdata=function(self) return "COUPLE" end, - on_step=function(self, dtime) - self.life=(self.life or 5)-dtime - if self.life<0 then - self.object:remove() + self.position_set=true end end, -}) +}) diff --git a/advtrains/craft_items.lua b/advtrains/craft_items.lua index 0e693eb..1188b64 100644 --- a/advtrains/craft_items.lua +++ b/advtrains/craft_items.lua @@ -6,7 +6,7 @@ core.register_craftitem("advtrains:boiler", { core.register_craftitem("advtrains:driver_cab", { - description = attrans("driver's cab"), + description = attrans("Driver's cab"), inventory_image = "advtrains_driver_cab.png", }) diff --git a/advtrains/debugitems.lua b/advtrains/debugitems.lua index e672308..e598216 100644 --- a/advtrains/debugitems.lua +++ b/advtrains/debugitems.lua @@ -51,3 +51,33 @@ minetest.register_chatcommand("atyaw", end end, }) + +minetest.register_tool("advtrains:wagonpos_tester", +{ + description = "Wagon position tester", + groups = {cracky=1}, -- key=name, value=rating; rating=1..3. + inventory_image = "drwho_screwdriver.png", + wield_image = "drwho_screwdriver.png", + stack_max = 1, + range = 7.0, + + on_place = function(itemstack, placer, pointed_thing) + + end, + --[[ + ^ Shall place item and return the leftover itemstack + ^ default: minetest.item_place ]] + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type=="node" then + local pos = pointed_thing.under + local trains = advtrains.occ.get_trains_at(pos) + for train_id, index in pairs(trains) do + local wagon_num, wagon_id, wagon_data, offset_from_center = advtrains.get_wagon_at_index(train_id, index) + if wagon_num then + atdebug(wagon_num, wagon_id, offset_from_center) + end + end + end + end, +} +) diff --git a/advtrains/doc/advtrains_speed_lessp.3advtrains.md b/advtrains/doc/advtrains_speed_lessp.3advtrains.md new file mode 100644 index 0000000..663aa42 --- /dev/null +++ b/advtrains/doc/advtrains_speed_lessp.3advtrains.md @@ -0,0 +1,15 @@ +% advtrains_speed_lessp(3advtrains) | Advtrains Developer's Manual + +# NAME +`advtrains.speed.lessp`, `advtrains.speed.greaterp`, `advtrains.speed.not_lessp`, `advtrains.speed_not_greaterp`, `advtrains.speed.equalp`, `advtrains.speed.not_equalp`, `advtrains.speed.max`, `advtrains.speed.min` - speed restriction comparison functions + +# SYNOPSIS +Each function takes two arguments and returns a boolean or (for `advtrains.speed.max` and `advtrains.speed.min`) a valid speed limit + +# DESCRIPTION + +The functions above correspond to the arithmetic `<`, `>`, `>=`, `<=`, `==`, `~=` operators and the `math.max` and `math.min` functions, respectively. The constants `nil` and `false` are treated as -1. + +# NOTES + +These functions are trivial to implement and the implementation can be easily embedded into existing code. They are simply provided for convenience. diff --git a/advtrains/doc/advtrains_speed_set_restriction.3advtrains.md b/advtrains/doc/advtrains_speed_set_restriction.3advtrains.md new file mode 100644 index 0000000..b3183c6 --- /dev/null +++ b/advtrains/doc/advtrains_speed_set_restriction.3advtrains.md @@ -0,0 +1,18 @@ +% advtrains_speed_set_restriction(3advtrains) | Advtrains Developer's Manual + +# NAME +`advtrains.speed.set_restriction`, `advtrains.speed.merge_aspect` - modify speed restriction + +# SYNOPSIS +* `advtrains.speed.set_restriction(train, rtype, rval)` +* `advtrains.speed.merge_aspect(train, asp)` + +# DESCRIPTION + +The `advtrains.speed.set_restriction` function sets the speed restriction of type `rtype` of `train` to `rval` and updates the speed restriction value to the strictest speed restriction in the table, or `nil` if all speed restrictions are `nil` or `-1`. If the speed restriction table does not exist, it is created with the `"main"` speed restriction being the speed restriction value of `train`. + +The `advtrains.speed.merge_aspect` function merges the main aspect of `asp` into the speed restriction table with the same procedure described above. If the signal aspect table does not provide the type of speed restriction, the restriction type `"main"` is assumed. + +# SIDE EFFECTS + +Both functions modify `train.speed_restriction` and `train.speed_restrictions_t`. diff --git a/advtrains/doc/signal_aspect.7advtrains.md b/advtrains/doc/signal_aspect.7advtrains.md new file mode 100644 index 0000000..827760d --- /dev/null +++ b/advtrains/doc/signal_aspect.7advtrains.md @@ -0,0 +1,24 @@ +% signal_aspect(7advtrains) | Advtrains Developer's Manual + +# DESCRIPTION + +The signal aspect table used by advtrains has the following fields: + +* `main`: The main speed restriction +* `dst`: The `main` aspect of the distant signal (not implemented) +* `type`: The type of speed restriction given by the signal +* `shunt`: Whether shunting is allowed +* `proceed_as_main`: Whether to proceed without shunting + +The `main` and `dst` fields may contain the following values: +* `-1`: No speed restriction +* `nil`: No information is available + +The `type` field can be any valid table index, but it should usually be one of the following values: +* "main": The main signal aspect used before the introduction of speed restriction types. This is the default value if the `type` field is absent. +* "line": The speed limit for the physical line. +* "temp": The speed limit that is temporarily introduced. + +# NOTES + +A signal with the `main` aspect of zero should not provide distant signal aspect. diff --git a/advtrains/init.lua b/advtrains/init.lua index 96352df..a7fbc3f 100644 --- a/advtrains/init.lua +++ b/advtrains/init.lua @@ -22,9 +22,6 @@ Copyright (C) 2016-2020 Moritz Blei (orwell96) and contributors local lot = os.clock() minetest.log("action", "[advtrains] Loading...") --- There is no need to support 0.4.x anymore given that the compatitability with it is already broken by 1bb1d825f46af3562554c12fba35a31b9f7973ff -attrans = minetest.get_translator ("advtrains") - --advtrains advtrains = {trains={}, player_to_train_mapping={}} @@ -48,6 +45,9 @@ advtrains.IGNORE_WORLD = false local NO_SAVE = false -- Do not save any data to advtrains save files +advtrains.TRAIN_MAX_WAGONS = 20 +-- Limit on the maximum number of wagons that may be in a train + -- ========================================================================== -- Use a global slowdown factor to slow down train movements. Now a setting @@ -178,7 +178,7 @@ function assertt(var, typ) end end -dofile(advtrains.modpath.."/helpers.lua"); +dofile(advtrains.modpath.."/helpers.lua") --dofile(advtrains.modpath.."/debugitems.lua"); advtrains.meseconrules = @@ -198,6 +198,12 @@ advtrains.meseconrules = advtrains.fpath=minetest.get_worldpath().."/advtrains" +advtrains.poconvert = dofile(advtrains.modpath.."/poconvert.lua") +advtrains.poconvert.from_flat("advtrains") +attrans = minetest.get_translator("advtrains") + +advtrains.speed = dofile(advtrains.modpath.."/speed.lua") + dofile(advtrains.modpath.."/path.lua") dofile(advtrains.modpath.."/trainlogic.lua") dofile(advtrains.modpath.."/trainhud.lua") @@ -227,7 +233,6 @@ end dofile(advtrains.modpath.."/lzb.lua") - --load/save -- backup variables, used if someone should accidentally delete a sub-mod @@ -467,8 +472,8 @@ advtrains.avt_save = function(remove_players_from_wagons) "trainparts", "recently_collided_with_env", "atc_brake_target", "atc_wait_finish", "atc_command", "atc_delay", "door_open", "text_outside", "text_inside", "line", "routingcode", - "il_sections", "speed_restriction", "is_shunt", - "points_split", "autocouple", "ars_disable", + "il_sections", "speed_restriction", "speed_restrictions_t", "is_shunt", + "points_split", "autocouple", "atc_wait_autocouple", "ars_disable", }) --then save it tmp_trains[id]=v @@ -569,11 +574,13 @@ advtrains.mainloop_runcnt=0 advtrains.global_slowdown = 1 local t = 0 +local within_mainstep = false minetest.register_globalstep(function(dtime_mt) if no_action then -- the advtrains globalstep is skipped by command. Return immediately return end + within_mainstep = true advtrains.mainloop_runcnt=advtrains.mainloop_runcnt+1 --atprint("Running the main loop, runcnt",advtrains.mainloop_runcnt) @@ -586,6 +593,7 @@ minetest.register_globalstep(function(dtime_mt) if GENERATE_ATRICIFIAL_LAG then dtime = HOW_MANY_LAG if os.clock()<t then + within_mainstep = false return end @@ -616,7 +624,7 @@ minetest.register_globalstep(function(dtime_mt) if advtrains.lines then advtrains.lines.step(dtime) end - + --trigger a save when necessary save_timer=save_timer-dtime if save_timer<=0 then @@ -626,6 +634,9 @@ minetest.register_globalstep(function(dtime_mt) save_timer = advtrains.SAVE_INTERVAL atprintbm("saving", t) end + + within_mainstep = false + end) --if something goes wrong in these functions, there is no help. no pcall here. @@ -678,7 +689,13 @@ function advtrains.save(remove_players_from_wagons) --TODO very simple yet hacky workaround for the "green signals" bug advtrains.invalidate_all_paths() end -minetest.register_on_shutdown(advtrains.save) +minetest.register_on_shutdown(function() + if within_mainstep then + atwarn("Crash during advtrains main step - skipping the shutdown save operation to not save inconsistent data!") + else + advtrains.save() + end +end) -- This chat command provides a solution to the problem known on the LinuxWorks server -- There are many players that joined a single time, got on a train and then left forever @@ -741,6 +758,16 @@ minetest.register_chatcommand("at_disable_step", end, }) +minetest.register_chatcommand("at_status", + { + params = "", + description = "Print advtrains status info", + privs = {train_operator = true}, + func = function(name, param) + return true, advtrains.print_concat_table({"Advtrains Status: no_action",no_action,"slowdown",advtrains.global_slowdown,"(log",math.log(advtrains.global_slowdown),")"}) + end, +}) + advtrains.is_no_action = function() return no_action end diff --git a/advtrains/locale/README.md b/advtrains/locale/README.md index 7a414bc..61e473c 100644..120000 --- a/advtrains/locale/README.md +++ b/advtrains/locale/README.md @@ -1,10 +1 @@ -# Translations -Please read this document before working on any translations. - -## Getting Started -If there is a translation file for your language (e.g. German), you can edit the file directly. Please read https://minetest.gitlab.io/minetest/translations/#translation-file-format for more information. -If the translation file for your language needs to be created, create it by copying `template.txt` to `advtrains.XX.tr`, where `XX` is replaced by the language code. - -## Translation Notes -* Translations should be consistent. Use translations in the Minetest as a reference. -* Replacement sequences (`@1`, `@2`, etc) should not be translated.
\ No newline at end of file +../po/README.md
\ No newline at end of file diff --git a/advtrains/locale/advtrains.de.tr b/advtrains/locale/advtrains.de.tr deleted file mode 100644 index 38a5560..0000000 --- a/advtrains/locale/advtrains.de.tr +++ /dev/null @@ -1,123 +0,0 @@ -# textdomain: advtrains - -# Advtrains Core (unorganized) -This wagon is owned by @1, you can't destroy it.=Dieser Waggon gehört @1, Sie dürfen ihn nicht abbauen. -Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon.=Warnung: Durch den Abbau des Waggons erhalten Sie nur etwas Stahl zurück. Nutzen Sie Schleichen+Linksklick, um dem Waggon abzubauen. -ATC controller, unconfigured.=Nicht konfiguierte Zugbeeinflussungsschiene -ATC controller=Zugbeeinflussungsschiene -ATC controller, mode @1@nChannel: @2=Zugbeeinflussungsschiene in Betriebsart „@1“@nKanal: @2 -ATC controller, mode @1@nCommand: @2=Zugbeeinflussungsschiene in Betriebsart „@1“@nBefehl: @2 -Command=Befehl -Command (on)=Befehl (wenn aktiviert) -Digiline channel=Digiline-Kanal -ATC Reverse command warning: didn't reverse train, train moving!=Zugbeeinflussung: der Befehl „R“ wurde nicht ausgeführt, Zug in Bewegung! -ATC command syntax error: I statement not closed: @1=Zugbeeinflussung: Unvollständiger I-Befehl: @1 -ATC command parse error: Unknown command: @1=Zugbeeinflussung: Unbekannter Befehl: @1 -This position is protected!=Diese Position ist geschützt! -You need to own at least one neighboring wagon to destroy this couple.=Sie müssen Besitzer eines angrenzenden Waggons sein, um hier abzukuppeln. -This node can't be rotated using the trackworker!=Dieser Block kann nicht mit dem Schienenwerkzeug gedreht werden. -This node can't be changed using the trackworker!=Dieser Block kann nicht mit dem Schienenwerkzeug bearbeitet werden. -Can't place: not pointing at node=Es kann nicht platziert werden: Sie zeigen nicht auf einem Block. -Can't place: space occupied!=Es kann nicht platziert werden: diese Position ist besetzt. -Can't place: protected position!=Es kann nicht platziert werden: diese Position ist geschützt. -Can't place: Not enough slope items left (@1 required)=Es kann nicht platziert werden: Sie haben nicht genug Steigungsblöcke, es werden insgesamt @1 benötigt. -Can't place: There's no slope of length @1=Es kann nicht platziert werden: die Steigung der Länge @1 ist nicht definiert. -Can't place: no supporting node at upper end.=Es kann nicht platziert werden: es gibt keinen unterstützenden Block am Ende der Steigung. -Deprecated Track=ausrangierte Schiene, nicht verwenden. -Can't get on: wagon full or doors closed!=Sie können nicht einsteigen: der Waggon ist voll oder die Türen sind geschlossen. -Use Sneak+rightclick to bypass closed doors!=Nutzen Sie Schleichen+Rechtsklick, um trotz geschlossener Türen einzusteigen. -Lock couples=Kupplungen sperren -Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!=Die Türen sind geschlossen. Nutzen Sie Schleichen+Rechtsklick, um trotz geschlossener Türen auszusteigen. -Access to @1=Zugang zu @1 -You don't have the train_operator privilege.=Ihnen fehlt das „train_operator“-Privileg. - -# Clipboard -The track you are trying to place the wagon on is not long enough!=Das Gleis, auf dem der Waggon platziert werden woll, ist zu kurz. -The clipboard couldn't access the metadata. Paste failed.=Wegen eines fehlgeschlagenen Zugriffs auf die Metadaten konnte eine Kopie des Zuges nicht eingefügt werden. -The clipboard couldn't access the metadata. Copy failed.=Wegen eines fehlgeschlagenen Zugriffs auf die Metadaten konnte der Zug nicht kopiert werden. -The clipboard is empty.=Das Clipboard ist leer. -Back of train would end up off track, cancelling.=Der hinterer Teil dez Zuges wäre nicht auf dem Gleis. -No such lua entity!=Sie zeigen nicht auf einem Objekt, das mit diesem Werkzeug kopiert werden kann. -No such wagon: @1=Es gibt keinen Waggon, der durch „@1“ identifiziert werden kann. -No such train: @1=Es gibt keinen Zug, der durch „@1“ identifiziert werden kann. -Train copied!=Sie können jetzt mit diesem Werkzeug Kopien dieses Zuges erstellen. - -# Protection -You are not allowed to build tracks without the track_builder privilege=Sie dürfen ohne das „track_builder“-Privileg keine Schiene bauen. -You are not allowed to build near tracks without the track_builder privilege=Sie dürfen ohne das „track_builder“-Privileg nicht an Schienen bauen. -You are not allowed to build tracks at this protected position=Sie dürfen an geschützten Stellen keine Schiene bauen. -You are not allowed to build near tracks at this protected position=Sie dürfen an geschützten Stellen nicht an Schienen bauen. -You are not allowed to operate turnouts and signals (missing railway_operator privilege)=Sie dürfen ohne das „railway_operator“-Privileg keine Bahnanlage operieren. - -# Train HUD/Formspecs -Speed:=Geschw.: -Target:=Zielges.: -Show Inventory=Inventar Zeigen -Select seat:=Wählen Sie einen Sitzplatz aus: -Wagon properties=Waggon-Einstellungen -Save wagon properties=Waggon-Einstellungen speichern -Text displayed outside on train=Äußere Anzeige -Text displayed inside train=Innere Anzeige -Line=Linie -Routingcode=Routingcode -Get off=Aussteigen -Get off (forced)=Ausstieg zwingen -(Doors closed)=(Türen geschlossen) - -# General -Save=Speichern -off=aus -on=ein - -# Line automation -Station Code=Code der Haltestelle -Station Name=Name der Haltestelle -Door Delay=Zeit für die Türschließung -Departure Speed=Zielgeschwindigkeit bei Abfahrt -Stop Time=Wartezeit - -# Items -Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc.=Schienenwerkzeug@n@nLinksklick: Schienentyp ändern, Rechtsklick: Objekt drehen. -Passive Component Naming Tool@n@nRight-click to name a passive component.=PC-Benennungswerkzeug@n@nRechtsklick zur Benennung der passiven Komponente -Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train=Werkzeug zur Erstellung von Zugkopien@n@nLinksklick: Zug ins Clipboard kopieren@nRight-click: Kopierten Zug einfügen -Track=Schiene -Perpendicular Diamond Crossing Track=Perpendicular Diamond Crossing Track -45/90 Degree Diamond Crossing Track=45/90 Degree Diamond Crossing Track -Unloading Track=Abladungsschiene -Loading Track=Beladungsschiene -Bumper=Prellbock -Detector Rail=Detektorschiene -@1 Slope=@1 Steigung -@1 Platform (low)=Niedriger @1-Bahnsteig -@1 Platform (high)=Hoher @1-Bahnsteig -@1 Platform (45 degree)=@1-Bahnsteig (45°) -Lampless Signal (@1)=Mechanisches Signal (@1) -Signal (@1)=Lichtsignal (@1) -Wallmounted Signal (l)=An der linken Seite montiertes Signal -Wallmounted Signal (r)=An der rechten Seite montiertes Signal -Wallmounted Signal (t)=An der Decke montiertes Signal -Andrew's Cross=Andrew's Cross -Boiler=Boiler -driver's cab=driver's cab -Wheel=Wheel -Chimney=Chimney - -# Seats -Default Seat=Standardsitzplatz -Default Seat (driver stand)=Standardsitzplatz (Führerstand) -Driver Stand=Führerstand -Driver Stand (left)=Führerstand Links -Driver Stand (right)=Führerstand Rechts - -# Wagon/engine types -Industrial Train Engine=Industrielle Lokomotive -Big Industrial Train Engine=Große Industrielle Lokomotive -Industrial tank wagon=Tankwaggon -Industrial wood wagon=Holztransportwaggon -Japanese Train Engine=Japanische Personenzug-Lokomotive -Japanese Train Wagon=Japanischer Personenzug-Passagierwaggon -Steam Engine=Dampflokomotive -Detailed Steam Engine=detaillierte Dampflokomotive -Passenger Wagon=Passagierwaggon -Box Wagon=Güterwaggon -Subway Passenger Wagon=U-Bahn-Waggon
\ No newline at end of file diff --git a/advtrains/locale/advtrains.zh_CN.tr b/advtrains/locale/advtrains.zh_CN.tr deleted file mode 100644 index 924b031..0000000 --- a/advtrains/locale/advtrains.zh_CN.tr +++ /dev/null @@ -1,124 +0,0 @@ -# textdomain: advtrains - -# Advtrains Core (unorganized) -This wagon is owned by @1, you can't destroy it.=这是@1的车厢,您不能摧毁它。 -Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon.=警告:如果您摧毁此车厢,您只能拿到一些钢方块。如果您确定要摧毁这个车厢,请按潜行键并左键单击此车厢。 -ATC controller, unconfigured.=ATC 控制器 (未配置) -ATC controller=ATC 控制器 -ATC controller, mode @1@nChannel: @2=ATC 控制器@n模式:@1@n频道:@2 -ATC controller, mode @1@nCommand: @2=ATC 控制器@n模式:@1@n命令:@2 -Command=命令 -Command (on)=命令 (激活时) -Digiline channel=Digiline 频道 -ATC Reverse command warning: didn't reverse train, train moving!=ATC 警告:未执行“R”命令,火车在移动 -ATC command syntax error: I statement not closed: @1=ATC 语法错误:“I”命令不完整:@1 -ATC command parse error: Unknown command: @1=ATC 语法错误:未知命令:@1 -This position is protected!=这里已被保护。 -You need to own at least one neighboring wagon to destroy this couple.=您必须至少拥有其中一个车厢才能解耦这两个车厢。 -This node can't be rotated using the trackworker!=您不能使用铁路调整工具旋转这个方块。 -This node can't be changed using the trackworker!=您不能使用铁路调整工具调整这个方块。 -Can't place: not pointing at node=无法放置:您没有选择任何方块。 -Can't place: space occupied!=无法放置:此区域已被占用。 -Can't place: protected position!=无法放置:此区域已被保护。 -Can't place: Not enough slope items left (@1 required)=无法放置:您没有足够的铁路斜坡放置工具 (您总共需要@1个) -Can't place: There's no slope of length @1=无法放置:advtrains 不支持长度为@1米的斜坡。 -Can't place: no supporting node at upper end.=无法放置:较高端没有支撑方块。 -Deprecated Track=请不要使用 -Can't get on: wagon full or doors closed!=无法上车:车门已关闭或车厢已满。 -Use Sneak+rightclick to bypass closed doors!=请使用潜行+右键上车。 -Lock couples=锁定连接处 -Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!=车门已关闭,请使用潜行+右键单击下车。 -Access to @1=可前往@1 -You don't have the train_operator privilege.=You don't have the train_operator privilege. - -# Clipboard -The track you are trying to place the wagon on is not long enough!=轨道太短。 -The clipboard couldn't access the metadata. Paste failed.=无法粘贴:剪贴板无法访问元数据。 -The clipboard couldn't access the metadata. Copy failed.=无法复制:剪贴板无法访问元数据。 -The clipboard is empty.=剪贴板是空的。 -Back of train would end up off track, cancelling.=火车后部不在轨道上。 -No such lua entity!=您没有指向一个可以用火车复制工具复制的物体。 -No such wagon: @1=ID 为“@1”的车厢不存在。 -No such train: @1=ID 为“@1”的列车不存在。 -Train copied!=已复制 - -# Protection -You are not allowed to build tracks without the track_builder privilege=您没有“train_operator”权限,不能在这里建造铁路。 -You are not allowed to build near tracks without the track_builder privilege=您没有“train_operator”权限,不能在铁路附近建任何东西。 -You are not allowed to build tracks at this protected position=这里已被保护,您不能在这里建造铁路。 -You are not allowed to build near tracks at this protected position=这里已被保护,您不能在这里的铁路附近建任何东西。 -You are not allowed to operate turnouts and signals (missing railway_operator privilege)=您没有“railway_operator”权限,不能使用铁路设施。 - -# Train HUD/Formspecs -Speed:=速度 -Target:=目标速度 -Show Inventory=显示物品栏 -Select seat:=请选择座位 -Wagon properties=车厢属性 -Save wagon properties=保存车厢属性 -Text displayed outside on train=车厢外部显示 -Text displayed inside train=车厢内部显示 -Line=火车线路 -Routingcode=路由码 -Get off=下车 -Get off (forced)=强制下车 -(Doors closed)=(车门已关闭) - -# General -Save=保存 -# "off" and "on" can be translated differently depending on the context and are therefore not translated. -off=off -on=on - -# Line automation -Station Code=车站代码 -Station Name=车站名称 -Door Delay=车门关闭时间 -Departure Speed=出发速度 -Stop Time=停站时间 - -# Items -Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc.=铁路调整工具@n@n左键单击:切换轨道类型@n右键单击:旋转方块 -Passive Component Naming Tool@n@nRight-click to name a passive component.=被动元件命名工具@n@n右键单击命名所选元件 -Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train=火车复制工具@n@n左键单击:复制@n右键单击:粘帖 -Track=铁轨 -Perpendicular Diamond Crossing Track=垂直交叉铁轨 -45/90 Degree Diamond Crossing Track=45度交叉铁轨 -Unloading Track=卸货铁轨 -Loading Track=装货铁轨 -Bumper=保险杠 -Detector Rail=探测铁轨 -@1 Slope=@1斜坡 -@1 Platform (low)=50cm 高的@1站台 -@1 Platform (high)=1m 高的@1站台 -@1 Platform (45 degree)=1m 高的@1站台 (45度) -Lampless Signal (@1)=臂板信号机 (@1) -Signal (@1)=信号灯 (@1) -Wallmounted Signal (l)=壁挂式信号灯 (左侧) -Wallmounted Signal (r)=壁挂式信号灯 (右侧) -Wallmounted Signal (t)=悬挂式信号灯 -Andrew's Cross=铁路道口信号灯 -Boiler=锅炉 -driver's cab=驾驶室 -Wheel=车轮 -Chimney=烟囱 - -# Seats -Default Seat=默认座位 -Default Seat (driver stand)=默认座位 (司机座位) -Driver Stand=司机座位 -Driver Stand (left)=左侧司机座位 -Driver Stand (right)=右侧司机座位 - -# Wagon/engine types -Industrial Train Engine=工业用火车头 -Big Industrial Train Engine=大型工业用火车头 -Industrial tank wagon=液体运输车厢 -Industrial wood wagon=木材运输车厢 -Japanese Train Engine=高速列车车头 -Japanese Train Wagon=高速列车车厢 -Steam Engine=蒸汽机车 -Detailed Steam Engine=精细的蒸汽机车 -Passenger Wagon=客车 -Box Wagon=货运车厢 -Subway Passenger Wagon=地铁车厢
\ No newline at end of file diff --git a/advtrains/locale/advtrains.zh_TW.tr b/advtrains/locale/advtrains.zh_TW.tr deleted file mode 100644 index 28a58ac..0000000 --- a/advtrains/locale/advtrains.zh_TW.tr +++ /dev/null @@ -1,124 +0,0 @@ -# textdomain: advtrains - -# Advtrains Core (unorganized) -This wagon is owned by @1, you can't destroy it.=這是@1的車廂,您不能摧毀它。 -Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon.=警告:如果您摧毀此車廂,您只能拿到一些鋼方塊。如果您確定要摧毀這個車廂,請按潛行鍵並左鍵單擊此車廂。 -ATC controller, unconfigured.=ATC 控制器 (未配置) -ATC controller=ATC 控制器 -ATC controller, mode @1@nChannel: @2=ATC 控制器@n模式:@1@n頻道:@2 -ATC controller, mode @1@nCommand: @2=ATC 控制器@n模式:@1@n命令:@2 -Command=命令 -Command (on)=命令 (啟用時) -Digiline channel=Digiline 頻道 -ATC Reverse command warning: didn't reverse train, train moving!=ATC 警告:未執行“R”命令,火車在移動 -ATC command syntax error: I statement not closed: @1=ATC 語法錯誤:“I”命令不完整:@1 -ATC command parse error: Unknown command: @1=ATC 語法錯誤:未知命令:@1 -This position is protected!=這裡已被保護。 -You need to own at least one neighboring wagon to destroy this couple.=您必須至少擁有其中一個車廂才能解耦這兩個車廂。 -This node can't be rotated using the trackworker!=您不能使用鐵路調整工具旋轉這個方塊。 -This node can't be changed using the trackworker!=您不能使用鐵路調整工具調整這個方塊。 -Can't place: not pointing at node=無法放置:您沒有選擇任何方塊。 -Can't place: space occupied!=無法放置:此區域已被佔用。 -Can't place: protected position!=無法放置:此區域已被保護。 -Can't place: Not enough slope items left (@1 required)=無法放置:您沒有足夠的鐵路斜坡放置工具 (您總共需要@1個) -Can't place: There's no slope of length @1=無法放置:advtrains 不支援長度為@1米的斜坡。 -Can't place: no supporting node at upper end.=無法放置:較高階沒有支撐方塊。 -Deprecated Track=請不要使用 -Can't get on: wagon full or doors closed!=無法上車:車門已關閉或車廂已滿。 -Use Sneak+rightclick to bypass closed doors!=請使用潛行+右鍵上車。 -Lock couples=鎖定連線處 -Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!=車門已關閉,請使用潛行+右鍵單擊下車。 -Access to @1=可前往@1 -You don't have the train_operator privilege.=You don't have the train_operator privilege. - -# Clipboard -The track you are trying to place the wagon on is not long enough!=軌道太短。 -The clipboard couldn't access the metadata. Paste failed.=無法貼上:剪貼簿無法訪問元資料。 -The clipboard couldn't access the metadata. Copy failed.=無法複製:剪貼簿無法訪問元資料。 -The clipboard is empty.=剪貼簿是空的。 -Back of train would end up off track, cancelling.=火車後部不在軌道上。 -No such lua entity!=您沒有指向一個可以用火車複製工具複製的物體。 -No such wagon: @1=ID 為“@1”的車廂不存在。 -No such train: @1=ID 為“@1”的列車不存在。 -Train copied!=已複製 - -# Protection -You are not allowed to build tracks without the track_builder privilege=您沒有“train_operator”許可權,不能在這裡建造鐵路。 -You are not allowed to build near tracks without the track_builder privilege=您沒有“train_operator”許可權,不能在鐵路附近建任何東西。 -You are not allowed to build tracks at this protected position=這裡已被保護,您不能在這裡建造鐵路。 -You are not allowed to build near tracks at this protected position=這裡已被保護,您不能在這裡的鐵路附近建任何東西。 -You are not allowed to operate turnouts and signals (missing railway_operator privilege)=您沒有“railway_operator”許可權,不能使用鐵路設施。 - -# Train HUD/Formspecs -Speed:=速度 -Target:=目標速度 -Show Inventory=顯示物品欄 -Select seat:=請選擇座位 -Wagon properties=車廂屬性 -Save wagon properties=儲存車廂屬性 -Text displayed outside on train=車廂外部顯示 -Text displayed inside train=車廂內部顯示 -Line=火車線路 -Routingcode=路由碼 -Get off=下車 -Get off (forced)=強制下車 -(Doors closed)=(車門已關閉) - -# General -Save=儲存 -# "off" and "on" can be translated differently depending on the context and are therefore not translated. -off=off -on=on - -# Line automation -Station Code=車站程式碼 -Station Name=車站名稱 -Door Delay=車門關閉時間 -Departure Speed=出發速度 -Stop Time=停站時間 - -# Items -Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc.=鐵路調整工具@n@n左鍵單擊:切換軌道型別@n右鍵單擊:旋轉方塊 -Passive Component Naming Tool@n@nRight-click to name a passive component.=被動元件命名工具@n@n右鍵單擊命名所選元件 -Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train=火車複製工具@n@n左鍵單擊:複製@n右鍵單擊:粘帖 -Track=鐵軌 -Perpendicular Diamond Crossing Track=垂直交叉鐵軌 -45/90 Degree Diamond Crossing Track=45度交叉鐵軌 -Unloading Track=卸貨鐵軌 -Loading Track=裝貨鐵軌 -Bumper=保險槓 -Detector Rail=探測鐵軌 -@1 Slope=@1斜坡 -@1 Platform (low)=50cm 高的@1站臺 -@1 Platform (high)=1m 高的@1站臺 -@1 Platform (45 degree)=1m 高的@1站臺 (45度) -Lampless Signal (@1)=臂板訊號機 (@1) -Signal (@1)=訊號燈 (@1) -Wallmounted Signal (l)=壁掛式訊號燈 (左側) -Wallmounted Signal (r)=壁掛式訊號燈 (右側) -Wallmounted Signal (t)=懸掛式訊號燈 -Andrew's Cross=鐵路道口訊號燈 -Boiler=鍋爐 -driver's cab=駕駛室 -Wheel=車輪 -Chimney=煙囪 - -# Seats -Default Seat=預設座位 -Default Seat (driver stand)=預設座位 (司機座位) -Driver Stand=司機座位 -Driver Stand (left)=左側司機座位 -Driver Stand (right)=右側司機座位 - -# Wagon/engine types -Industrial Train Engine=工業用火車頭 -Big Industrial Train Engine=大型工業用火車頭 -Industrial tank wagon=液體運輸車廂 -Industrial wood wagon=木材運輸車廂 -Japanese Train Engine=高速列車車頭 -Japanese Train Wagon=高速列車車廂 -Steam Engine=蒸汽機車 -Detailed Steam Engine=精細的蒸汽機車 -Passenger Wagon=客車 -Box Wagon=貨運車廂 -Subway Passenger Wagon=地鐵車廂
\ No newline at end of file diff --git a/advtrains/locale/template.txt b/advtrains/locale/template.txt deleted file mode 100644 index 67e54eb..0000000 --- a/advtrains/locale/template.txt +++ /dev/null @@ -1,123 +0,0 @@ -# textdomain: advtrains - -# Advtrains Core (unorganized) -This wagon is owned by @1, you can't destroy it.=This wagon is owned by @1, you can't destroy it. -Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon.=Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon. -ATC controller, unconfigured.=ATC controller, unconfigured. -ATC controller=ATC controller -ATC controller, mode @1@nChannel: @2=ATC controller, mode @1@nChannel: @2 -ATC controller, mode @1@nCommand: @2=ATC controller, mode @1@nCommand: @2 -Command=Command -Command (on)=Command (on) -Digiline channel=Digiline channel -ATC Reverse command warning: didn't reverse train, train moving!=ATC Reverse command warning: didn't reverse train, train moving! -ATC command syntax error: I statement not closed: @1=ATC command syntax error: I statement not closed: @1 -ATC command parse error: Unknown command: @1=ATC command parse error: Unknown command: @1 -This position is protected!=This position is protected! -You need to own at least one neighboring wagon to destroy this couple.=You need to own at least one neighboring wagon to destroy this couple. -This node can't be rotated using the trackworker!=This node can't be rotated using the trackworker! -This node can't be changed using the trackworker!=This node can't be changed using the trackworker! -Can't place: not pointing at node=Can't place: not pointing at node -Can't place: space occupied!=Can't place: space occupied! -Can't place: protected position!=Can't place: protected position! -Can't place: Not enough slope items left (@1 required)=Can't place: Not enough slope items left (@1 required) -Can't place: There's no slope of length @1=Can't place: There's no slope of length @1 -Can't place: no supporting node at upper end.=Can't place: no supporting node at upper end. -Deprecated Track=Deprecated Track -Can't get on: wagon full or doors closed!=Can't get on: wagon full or doors closed! -Use Sneak+rightclick to bypass closed doors!=Use Sneak+rightclick to bypass closed doors! -Lock couples=Lock couples -Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!=Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off! -Access to @1=Access to @1 -You don't have the train_operator privilege.=You don't have the train_operator privilege. - -# Clipboard -The track you are trying to place the wagon on is not long enough!=The track you are trying to place the wagon on is not long enough! -The clipboard couldn't access the metadata. Paste failed.=The clipboard couldn't access the metadata. Paste failed. -The clipboard couldn't access the metadata. Copy failed.=The clipboard couldn't access the metadata. Copy failed. -The clipboard is empty.=The clipboard is empty. -Back of train would end up off track, cancelling.=Back of train would end up off track, cancelling. -No such lua entity!=No such lua entity! -No such wagon: @1=No such wagon: @1 -No such train: @1=No such train: @1 -Train copied!=Train copied! - -# Protection -You are not allowed to build tracks without the track_builder privilege=You are not allowed to build tracks without the track_builder privilege -You are not allowed to build near tracks without the track_builder privilege=You are not allowed to build near tracks without the track_builder privilege -You are not allowed to build tracks at this protected position=You are not allowed to build tracks at this protected position -You are not allowed to build near tracks at this protected position=You are not allowed to build tracks at this protected position -You are not allowed to operate turnouts and signals (missing railway_operator privilege)=You are not allowed to operate turnouts and signals (missing railway_operator privilege) - -# Train HUD/Formspecs -Speed:=Speed: -Target:=Target: -Show Inventory=Show Inventory -Select seat:=Select seat: -Wagon properties=Wagon properties -Save wagon properties=Save wagon properties -Text displayed outside on train=Text displayed outside on train -Text displayed inside train=Text displayed inside train -Line=Line -Routingcode=Routingcode -Get off=Get off -Get off (forced)=Get off (forced) -(Doors closed)=(Doors closed) - -# General -Save=Save -off=off -on=on - -# Line automation -Station Code=Station Code -Station Name=Station Name -Door Delay=Door Delay -Departure Speed=Departure Speed -Stop Time=Stop Time - -# Items -Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc.=Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc. -Passive Component Naming Tool@n@nRight-click to name a passive component.=Passive Component Naming Tool@n@nRight-click to name a passive component. -Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train=Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train -Track=Track -Perpendicular Diamond Crossing Track=Perpendicular Diamond Crossing Track -45/90 Degree Diamond Crossing Track=45/90 Degree Diamond Crossing Track -Unloading Track=Unloading Track -Loading Track=Loading Track -Bumper=Bumper -Detector Rail=Detector Rail -@1 Slope=@1 Slope -@1 Platform (low)=@1 Platform (low) -@1 Platform (high)=@1 Platform (high) -@1 Platform (45 degree)=@1 Platform (45 degree) -Lampless Signal (@1)=Lampless Signal (@1) -Signal (@1)=Signal (@1) -Wallmounted Signal (l)=Wallmounted Signal (l) -Wallmounted Signal (r)=Wallmounted Signal (r) -Wallmounted Signal (t)=Wallmounted Signal (t) -Andrew's Cross=Andrew's Cross -Boiler=Boiler -driver's cab=driver's cab -Wheel=Wheel -Chimney=Chimney - -# Seats -Default Seat=Default Seat -Default Seat (driver stand)=Default Seat (driver stand) -Driver Stand=Driver Stand -Driver Stand (left)=Driver Stand (left) -Driver Stand (right)=Driver Stand (right) - -# Wagon/engine types -Industrial Train Engine=Industrial Train Engine -Big Industrial Train Engine=Big Industrial Train Engine -Industrial tank wagon=Industrial tank wagon -Industrial wood wagon=Industrial wood wagon -Japanese Train Engine=Japanese Train Engine -Japanese Train Wagon=Japanese Train Wagon -Steam Engine=Steam Engine -Detailed Steam Engine=Detailed Steam Engine -Passenger Wagon=Passenger Wagon -Box Wagon=Box Wagon -Subway Passenger Wagon=Subway Passenger Wagon diff --git a/advtrains/locale/update-l10n.lua b/advtrains/locale/update-l10n.lua deleted file mode 100644 index ae7d13b..0000000 --- a/advtrains/locale/update-l10n.lua +++ /dev/null @@ -1,46 +0,0 @@ -local lang = arg[1] or error("No language supplied") -local tfn = string.format("advtrains.%s.tr", lang) -local f = io.open(tfn, "rb") or error("Cannot read from translation file") -local tf = {} -for l in f:lines() do - tf[#tf+1] = l -end -f:close() - -local ot = {[0] = ""} -local f = io.open("template.txt", "rb") or error("Cannot read from translation template") -for l in f:lines() do - if l == "" then -- blank line - if ot[#ot] ~= l then ot[#ot+1] = l end - elseif l:find("^#") then -- comment - if ot[#ot] ~= l then ot[#ot+1] = l end - else - s = l:match("^(.+[^@]=)") - if s then - local found = false - for i = 1, #tf, 1 do - if tf[i]:find(s, 1, true) == 1 then - found = i - break - end - end - if found then - local fc = found-1 - while fc > 0 do - if not tf[fc]:find("^#") then break end - fc = fc-1 - end - for i = fc+1, found, 1 do - if ot[#ot] ~= tf[i] then ot[#ot+1] = tf[i] end - end - else - if ot[#ot] ~= l then ot[#ot+1] = l end - end - end - end -end -f:close() - -local f = io.open(tfn..".new", "wb") or error("Cannot write to translation file") -f:write(table.concat(ot,"\n")) -f:close()
\ No newline at end of file diff --git a/advtrains/lzb.lua b/advtrains/lzb.lua index cbdc422..64e4553 100644 --- a/advtrains/lzb.lua +++ b/advtrains/lzb.lua @@ -90,7 +90,7 @@ local function look_ahead(id, train) --local brake_i = advtrains.path_get_index_by_offset(train, train.index, brakedst + params.BRAKE_SPACE) -- worst case (don't use index_by_offset) local brake_i = atfloor(train.index + brakedst + params.BRAKE_SPACE) - atprint("LZB: looking ahead up to ", brake_i) + --atprint("LZB: looking ahead up to ", brake_i) --local aware_i = advtrains.path_get_index_by_offset(train, brake_i, AWARE_ZONE) @@ -134,7 +134,7 @@ local function call_runover_callbacks(id, train) local ckp = train.lzb.checkpoints while ckp[i] do if ckp[i].index <= idx then - atprint("LZB: checkpoint run over: i=",ckp[i].index,"s=",ckp[i].speed) + --atprint("LZB: checkpoint run over: i=",ckp[i].index,"s=",ckp[i].speed,"p=",ckp[i].pos) -- call callback local it = ckp[i] if it.callback then @@ -153,7 +153,7 @@ local function apply_checkpoint_to_path(train, checkpoint) if not checkpoint.speed then return end - atprint("LZB: applying checkpoint: i=",checkpoint.index,"s=",checkpoint.speed) + --atprint("LZB: applying checkpoint: i=",checkpoint.index,"s=",checkpoint.speed,"p=",checkpoint.pos) if checkpoint.speed == 0 then train.lzb.zero_checkpoint = true @@ -196,6 +196,9 @@ s = v0 * ------- + - * | ------- | = ----------- -- Removes all LZB checkpoints and restarts the traverser at the current train index function advtrains.lzb_invalidate(train) + --advtrains.atprint_context_tid = train.id + --atprint("LZB: invalidate") + --advtrains.atprint_context_tid = nil train.lzb = { trav_index = atfloor(train.index) + 1, checkpoints = {}, @@ -205,8 +208,11 @@ end -- LZB part of path_invalidate_ahead. Clears all checkpoints that are ahead of start_idx -- in contrast to path_inv_ahead, doesn't complain if start_idx is behind train.index, clears everything then function advtrains.lzb_invalidate_ahead(train, start_idx) + --advtrains.atprint_context_tid = train.id + --atprint("LZB: invalidate ahead i=",start_idx) if train.lzb then local idx = atfloor(start_idx) + --atprint("LZB: invalidate ahead p=",train.path[start_idx]) local i = 1 while train.lzb.checkpoints[i] do if train.lzb.checkpoints[i].index >= idx then @@ -225,6 +231,7 @@ function advtrains.lzb_invalidate_ahead(train, start_idx) apply_checkpoint_to_path(train, ckp) end end + --advtrains.atprint_context_tid = nil end -- Add LZB control point diff --git a/advtrains/nodedb.lua b/advtrains/nodedb.lua index 36b5dea..41ac089 100644 --- a/advtrains/nodedb.lua +++ b/advtrains/nodedb.lua @@ -302,7 +302,7 @@ ndb.run_lbm = function(pos, node) minetest.swap_node(pos, newnode) local ndef=minetest.registered_nodes[nodeid] if ndef and ndef.advtrains and ndef.advtrains.on_updated_from_nodedb then - ndef.advtrains.on_updated_from_nodedb(pos, newnode) + ndef.advtrains.on_updated_from_nodedb(pos, newnode, node) end return true end diff --git a/advtrains/occupation.lua b/advtrains/occupation.lua index db39991..6852dfa 100644 --- a/advtrains/occupation.lua +++ b/advtrains/occupation.lua @@ -86,9 +86,10 @@ end function o.set_item(train_id, pos, idx) local t = occgetcreate(pos) + assert(idx) local i = 1 while t[i] do - if t[i]==train_id then + if t[i]==train_id and t[i+1]==index then break end i = i + 2 @@ -98,25 +99,30 @@ function o.set_item(train_id, pos, idx) end -function o.clear_item(train_id, pos) +function o.clear_all_items(train_id, pos) local t = occget(pos) if not t then return end local i = 1 - local moving = false while t[i] do if t[i]==train_id then - if moving then - -- if, for some occasion, there should be a duplicate entry, erase this one too - atwarn("Duplicate occupation entry at",pos,"for train",train_id,":",t) - i = i - 2 - end - moving = true + table.remove(t, i) + table.remove(t, i) + else + i = i + 2 end - if moving then - t[i] = t[i+2] - t[i+1] = t[i+3] + end +end +function o.clear_specific_item(train_id, pos, index) + local t = occget(pos) + if not t then return end + local i = 1 + while t[i] do + if t[i]==train_id and t[i+1]==index then + table.remove(t, i) + table.remove(t, i) + else + i = i + 2 end - i = i + 2 end end @@ -143,64 +149,86 @@ function o.check_collision(pos, train_id) return false end --- Gets a mapping of train id's to indexes of trains that share this path item with this train --- The train itself will not be included. --- If the requested index position is off-track, returns {}. --- returns (table with train_id->index), position -function o.get_occupations(train, index) - local ppos, ontrack = advtrains.path_get(train, index) - if not ontrack then - atlog("Train",train.id,"get_occupations requested off-track",index) - return {}, ppos - end +-- Gets a mapping of train id's to indexes of trains that have a path item at this position +-- Note that the case where 2 or more indices are at a position only occurs if there is a track loop. +-- returns (table with train_id->{index1, index2...}) +function o.reverse_lookup(ppos) local pos = advtrains.round_vector_floor_y(ppos) local t = occget(pos) if not t then return {} end local r = {} local i = 1 - local train_id = train.id while t[i] do if t[i]~=train_id then - r[t[i]] = t[i+1] + if not r[t[i]] then r[t[i]] = {} end + table.insert(r[t[i]], t[i+1]) end i = i + 2 end - return r, pos + return r end --- Gets a mapping of train id's to indexes of trains that stand or drive over + +-- Gets a mapping of train id's to indexes of trains that have a path item at this position. +-- Quick variant: will only return one index per train (the latest one added) -- returns (table with train_id->index) -function o.get_trains_at(ppos) +function o.reverse_lookup_quick(ppos) local pos = advtrains.round_vector_floor_y(ppos) local t = occget(pos) if not t then return {} end local r = {} local i = 1 while t[i] do - local train = advtrains.trains[t[i]] - local idx = t[i+1] - if train.end_index - 0.5 <= idx and idx <= train.index + 0.5 then - r[t[i]] = idx - end + r[t[i]] = t[i+1] i = i + 2 end return r end --- Gets a mapping of train id's to indexes of trains that have a path --- generated over this node --- returns (table with train_id->index) -function o.get_trains_over(ppos) - local pos = advtrains.round_vector_floor_y(ppos) - local t = occget(pos) - if not t then return {} end +local OCC_CLOSE_PROXIMITY = 3 +-- Gets a mapping of train id's to index of trains that have a path item at this position. Selects at most one index based on a given heuristic, or even none if it does not match the heuristic criterion +-- returns (table with train_id->index), position +-- "in_train": first index that lies between train index and end index +-- "first_ahead": smallest index that is > current index +-- "before_end"(default): smallest index that is > end index +-- "close_proximity": within 3 indices close to the train index and end_index +-- "any": just output the first index found and do not check further (also occurs if both "in_train" and "first_ahead" heuristics have failed +function o.reverse_lookup_sel(pos, heuristic) + if not heuristic then heuristic = "before_end" end + local om = o.reverse_lookup(pos) local r = {} - local i = 1 - while t[i] do - local idx = t[i+1] - r[t[i]] = idx - i = i + 2 + for tid, idxs in pairs(om) do + r[tid] = idxs[1] + if heuristic~="any" then + --must run a heuristic + --atdebug("reverse_lookup_sel is running heuristic for", pos,heuristic,"idxs",table.concat(idxs,",")) + local otrn = advtrains.trains[tid] + advtrains.train_ensure_init(tid, otrn) + local h_value + for _,idx in ipairs(idxs) do + if heuristic == "first_ahead" and idx > otrn.index and (not h_value or h_value>idx) then + h_value = idx + end + if heuristic == "before_end" and idx > otrn.end_index and (not h_value or h_value>idx) then + h_value = idx + end + if heuristic == "in_train" and idx < otrn.index and idx > otrn.end_index then + h_value = idx + end + if heuristic == "close_proximity" and idx < (otrn.index + OCC_CLOSE_PROXIMITY) and idx > (otrn.end_index - OCC_CLOSE_PROXIMITY) then + h_value = idx + end + end + r[tid] = h_value + --atdebug(h_value,"chosen") + end end - return r + return r, pos +end +-- Gets a mapping of train id's to indexes of trains that stand or drive over +-- returns (table with train_id->index) +function o.get_trains_at(ppos) + local pos = advtrains.round_vector_floor_y(ppos) + return o.reverse_lookup_sel(pos, "in_train") end advtrains.occ = o diff --git a/advtrains/path.lua b/advtrains/path.lua index 714781a..7676947 100644 --- a/advtrains/path.lua +++ b/advtrains/path.lua @@ -119,7 +119,7 @@ function advtrains.path_invalidate(train, ignore_lock) if train.path then for i,p in pairs(train.path) do - advtrains.occ.clear_item(train.id, advtrains.round_vector_floor_y(p)) + advtrains.occ.clear_all_items(train.id, advtrains.round_vector_floor_y(p)) end end train.path = nil @@ -162,7 +162,7 @@ function advtrains.path_invalidate_ahead(train, start_idx, ignore_when_passed) -- leave current node in path, it won't change. What might change is the path onward from here (e.g. switch) local i = idx + 1 while train.path[i] do - advtrains.occ.clear_item(train.id, advtrains.round_vector_floor_y(train.path[i])) + advtrains.occ.clear_specific_item(train.id, advtrains.round_vector_floor_y(train.path[i]), i) i = i+1 end train.path_ext_f=idx @@ -375,12 +375,25 @@ function advtrains.path_get_index_by_offset(train, index, offset) return c_idx + frac end + +-- The path_dist[] table contains absolute distance values for every whole index. +-- Use this function to retrieve the correct absolute distance for a fractional index value (interpolate between floor and ceil index) +-- returns: absolute distance from path item 0 +function advtrains.path_get_path_dist_fractional(train, index) + local start_index_f = atfloor(index) + local frac = index - start_index_f + -- ensure path exists + advtrains.path_get_adjacent(train, index) + local dist1, dist2 = train.path_dist[start_index_f], train.path_dist[start_index_f+1] + return dist1 + (dist2-dist1)*frac +end + local PATH_CLEAR_KEEP = 4 function advtrains.path_clear_unused(train) local i for i = train.path_ext_b, train.path_req_b - PATH_CLEAR_KEEP do - advtrains.occ.clear_item(train.id, advtrains.round_vector_floor_y(train.path[i])) + advtrains.occ.clear_specific_item(train.id, advtrains.round_vector_floor_y(train.path[i]), i) train.path[i] = nil train.path_dist[i-1] = nil train.path_cp[i] = nil @@ -417,3 +430,43 @@ function advtrains.path_lookup(train, pos) end return nil end + +-- Projects the path of "train" onto the path of "onto_train_id", and returns the index on onto_train's path +-- that corresponds to "index" on "train"'s path, as well as whether both trains face each other +-- index may be fractional +-- heuristic: see advtrains.occ.reverse_lookup_sel() +-- returns: res_index, trains_facing +-- returns nil when path can not be projected, either because trains are on different tracks or +-- node at "index" happens to be on a turnout and it's the wrong direction +-- Note - duplicate with similar functionality is in train_step_b() - that code combines train detection with projecting +function advtrains.path_project(train, index, onto_train_id, heuristic) + local base_idx = atfloor(index) + local frac_part = index - base_idx + local base_pos = advtrains.path_get(train, base_idx) + local base_cn = train.path_cn[base_idx] + local otrn = advtrains.trains[onto_train_id] + -- query occupation + local occ = advtrains.occ.reverse_lookup_sel(base_pos, heuristic) + -- is wanted train id contained? + local ob_idx = occ[onto_train_id] + if not ob_idx then + return nil + end + + -- retrieve other train's cn and cp + local ocn = otrn.path_cn[ob_idx] + local ocp = otrn.path_cp[ob_idx] + + if base_cn == ocn then + -- same direction + return ob_idx + frac_part, false + elseif base_cn == ocp then + -- facing trains - subtract index frac + return ob_idx - frac_part, true + else + -- same path item but no common connections - deny + return nil + end +end + + diff --git a/advtrains/po/README.md b/advtrains/po/README.md new file mode 100644 index 0000000..3e94682 --- /dev/null +++ b/advtrains/po/README.md @@ -0,0 +1,70 @@ +# Translations +Please read this document before working on any translations. + +Unlike many other mods, Advtrains uses `.po` files for localization, +which are then automatically converted to `.tr` files when the mod is +loaded. Therefore, please submit patches that edit the `.po` files. + +## Getting Started +The translation files can be edited like any other `.po` file. + +If the translation file for your language does not exist, create it by +copying `template.txt` to `advtrains.XX.tr`, where `XX` is replaced by +the language code. + +Feel free to use the [discussion mailing list][srht-discuss] if you +have any questions regarding localization. + +You can share your `.po` file directly or [as a patch][gsm] to the [dev +mailing list][srht-devel]. The latter is encouraged, but, unlike code +changes, translation files sent directly are also accepted. + +[tr-format]: https://minetest.gitlab.io/minetest/translations/#translation-file-format +[srht-discuss]: https://lists.sr.ht/~gpcf/advtrains-discuss +[srht-devel]: https://lists.sr.ht/~gpcf/advtrains-devel +[gsm]: https://git-send-email.io + +## Translation Notes +* Translations should be consistent. You can use other entries or the +translations in Minetest as a reference. +* Translations do not have to fully correspond to the original text - +they only need to provide the same information. In particular, +translations do not need to have the same linguistical structure as the +original text. +* Replacement sequences (`@1`, `@2`, etc) should not be translated. +* Certain abbreviations or names, such as "Ks" or "Zs 3", should +generally not be translated. + +### (de) German +* Verwenden Sie die neue Rechtschreibung und die Sie-Form. +* Mit der deutschen Tastaturbelegung unter Linux können die +Anführungszeichen „“ mit AltGr-V bzw. AltGr-B eingegeben werden. + +### (zh) Chinese +(This section is written in English to avoid writing the note twice or +using only one of the variants, as most of this section applies to both +the traditional and simplified variants.) + +* Please use the 「」 quotation marks for Traditional Chinese and “” +for Simplified Chinese. +* Please use the fullwidth variants of: , 、 。 ? ! : ; +* Please use the halfwidth variants of: ( ) [ ] / \ | +* Please do not leave any space between Han characters (including +fullwidth punctuation marks). +* Please leave a space between Han characters (excluding fullwidth +punctuation marks) and characters from other scripts (including +halfwidth punctuation marks). However, do not leave any space between +Han characters and Arabic numerals. + +## Notes for developers +* The `update-translations.sh` script can be used to update the +translation files. However, please make sure to install the +`basic_trains` mod before running the script. +* Please make sure that the first argument to `S` (or `attrans`) _only_ +includes string literals without formatting or concatenation. This is +unfortunately a limitation of the `xgettext` utility. +* Avoid word-by-word translations. +* Avoid manipulating translated strings (except for concatenation). Use +server-side translations if you have to modify the text sent to users. +* Avoid truncating strings unless multibyte characters are handled +properly. diff --git a/advtrains/po/advtrains.pot b/advtrains/po/advtrains.pot new file mode 100644 index 0000000..6fda1d7 --- /dev/null +++ b/advtrains/po/advtrains.pot @@ -0,0 +1,632 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the advtrains package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2023-10-09 11:02+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: advtrains/atc.lua:109 +msgid "Unconfigured ATC controller" +msgstr "" + +#: advtrains/atc.lua:150 +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" + +#: advtrains/atc.lua:180 +msgid "Command" +msgstr "" + +#: advtrains/atc.lua:184 +msgid "Command (on)" +msgstr "" + +#: advtrains/atc.lua:187 +msgid "Digiline channel" +msgstr "" + +#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65 +#: advtrains_luaautomation/active_common.lua:48 +msgid "Save" +msgstr "" + +#: advtrains/atc.lua:236 +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "" + +#: advtrains/atc.lua:248 +msgid "ATC Kick command warning: doors are closed." +msgstr "" + +#: advtrains/atc.lua:252 +msgid "ATC Kick command warning: train moving." +msgstr "" + +#: advtrains/atc.lua:322 +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "" + +#: advtrains/atc.lua:385 +msgid "ATC command parse error: Unknown command: @1" +msgstr "" + +#: advtrains/copytool.lua:8 +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" + +#: advtrains/copytool.lua:29 +msgid "You do not have the @1 privilege." +msgstr "" + +#: advtrains/copytool.lua:41 +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "" + +#: advtrains/copytool.lua:47 +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "" + +#: advtrains/copytool.lua:52 advtrains/copytool.lua:57 +msgid "The clipboard is empty." +msgstr "" + +#: advtrains/copytool.lua:74 +msgid "Back of train would end up off track, cancelling." +msgstr "" + +#: advtrains/copytool.lua:92 +msgid "No such lua entity." +msgstr "" + +#: advtrains/copytool.lua:98 +msgid "No such wagon: @1." +msgstr "" + +#: advtrains/copytool.lua:104 +msgid "No such train: @1." +msgstr "" + +#: advtrains/copytool.lua:176 +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "" + +#: advtrains/copytool.lua:180 +msgid "Train copied." +msgstr "" + +#: advtrains/couple.lua:28 +msgid "Buffer and Chain Coupler" +msgstr "" + +#: advtrains/couple.lua:29 +msgid "Scharfenberg Coupler" +msgstr "" + +#: advtrains/couple.lua:185 +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "" + +#: advtrains/couple.lua:329 advtrains/couple.lua:333 +msgid "<No coupler>" +msgstr "" + +#: advtrains/couple.lua:334 +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "" + +#: advtrains/craft_items.lua:3 +msgid "Boiler" +msgstr "" + +#: advtrains/craft_items.lua:9 +msgid "Driver's cab" +msgstr "" + +#: advtrains/craft_items.lua:15 +msgid "Wheel" +msgstr "" + +#: advtrains/craft_items.lua:21 +msgid "Chimney" +msgstr "" + +#: advtrains/misc_nodes.lua:16 +msgid "@1 Platform (low)" +msgstr "" + +#: advtrains/misc_nodes.lua:33 +msgid "@1 Platform (high)" +msgstr "" + +#: advtrains/misc_nodes.lua:59 +msgid "@1 Platform (45 degree)" +msgstr "" + +#: advtrains/misc_nodes.lua:81 +msgid "@1 Platform (low, 45 degree)" +msgstr "" + +#: advtrains/protection.lua:7 +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua:12 +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua:18 +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:24 +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build near tracks at this protected position." +msgstr "" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build tracks at this protected position." +msgstr "" + +#: advtrains/protection.lua:184 +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "" + +#: advtrains/signals.lua:63 +msgid "Lampless Signal" +msgstr "" + +#: advtrains/signals.lua:127 +msgid "Signal" +msgstr "" + +#: advtrains/signals.lua:191 +msgid "Wallmounted Signal (left)" +msgstr "" + +#: advtrains/signals.lua:192 +msgid "Wallmounted Signal (right)" +msgstr "" + +#: advtrains/signals.lua:193 +msgid "Wallmounted Signal (top)" +msgstr "" + +#: advtrains/signals.lua:281 advtrains/signals.lua:322 +msgid "Andrew's Cross" +msgstr "" + +#: advtrains/trackplacer.lua:313 +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" + +#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377 +msgid "This node can't be rotated using the trackworker." +msgstr "" + +#: advtrains/trackplacer.lua:350 +msgid "This track can not be rotated." +msgstr "" + +#: advtrains/trackplacer.lua:404 +msgid "This node can't be changed using the trackworker." +msgstr "" + +#: advtrains/trackplacer.lua:414 +msgid "This track can not be changed." +msgstr "" + +#: advtrains/tracks.lua:449 +msgid "This track can not be removed." +msgstr "" + +#: advtrains/tracks.lua:616 +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua:622 +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/tracks.lua:626 +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/tracks.lua:637 +msgid "@1 Slope" +msgstr "" + +#: advtrains/tracks.lua:648 advtrains/tracks.lua:653 +msgid "Can't place slope: not pointing at node." +msgstr "" + +#: advtrains/tracks.lua:658 +msgid "Can't place slope: space occupied." +msgstr "" + +#: advtrains/tracks.lua:711 +msgid "Can't place slope: Not enough slope items left (@1 required)." +msgstr "" + +#: advtrains/tracks.lua:714 +msgid "Can't place slope: There's no slope of length @1." +msgstr "" + +#: advtrains/tracks.lua:721 +msgid "Can't place slope: no supporting node at upper end." +msgstr "" + +#: advtrains/trainhud.lua:305 +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagons.lua:179 +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "" + +#: advtrains/wagons.lua:203 +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua:210 +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua:216 +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" + +#: advtrains/wagons.lua:649 advtrains/wagons.lua:850 +msgid "Show Inventory" +msgstr "" + +#: advtrains/wagons.lua:652 +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328 +msgid "Wagon properties" +msgstr "" + +#: advtrains/wagons.lua:658 +msgid "Get off" +msgstr "" + +#: advtrains/wagons.lua:661 +msgid "Get off (forced)" +msgstr "" + +#: advtrains/wagons.lua:663 +msgid "(Doors closed)" +msgstr "" + +#: advtrains/wagons.lua:692 +msgid "This wagon has no seats." +msgstr "" + +#: advtrains/wagons.lua:703 +msgid "This wagon is full." +msgstr "" + +#: advtrains/wagons.lua:706 +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua:712 +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua:838 +msgid "Select seat:" +msgstr "" + +#: advtrains/wagons.lua:880 +msgid "Save wagon properties" +msgstr "" + +#: advtrains/wagons.lua:965 +msgid "Text displayed outside on train" +msgstr "" + +#: advtrains/wagons.lua:966 +msgid "Text displayed inside train" +msgstr "" + +#: advtrains/wagons.lua:967 +msgid "Line" +msgstr "" + +#: advtrains/wagons.lua:968 +msgid "Routingcode" +msgstr "" + +#: advtrains/wagons.lua:1241 +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "" + +#: advtrains/wagons.lua:1250 +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:13 +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:14 +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:30 +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:34 +#: advtrains_line_automation/stoprail.lua:31 +#: advtrains_line_automation/stoprail.lua:76 +msgid "You are not allowed to configure this track." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:64 +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:54 +msgid "Station Code" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:55 +msgid "Station Name" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:56 +msgid "Door Delay" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:57 +msgid "Dep. Speed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11 +#: advtrains_train_track/init.lua:156 +msgid "Track" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:59 +msgid "Stop Time" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:60 +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:62 +msgid "Reverse train" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:63 +msgid "Kick out passengers" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:97 +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:111 +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:221 +msgid "Station/Stop Track" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:17 +msgid "Unconfigured LuaATC component" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:46 +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:49 +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:50 +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:64 +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "" + +#: advtrains_luaautomation/active_common.lua:94 +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:96 +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:171 +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/init.lua:13 +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua:211 +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua:11 +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:28 +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:39 +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:62 +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_train_industrial/init.lua:10 +#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20 +#: advtrains_train_steam/init.lua:91 +msgid "Driver Stand (right)" +msgstr "" + +#: advtrains_train_industrial/init.lua:17 +#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14 +#: advtrains_train_steam/init.lua:85 +msgid "Driver Stand (left)" +msgstr "" + +#: advtrains_train_industrial/init.lua:40 +msgid "Industrial Train Engine" +msgstr "" + +#: advtrains_train_industrial/init.lua:79 +msgid "Big Industrial Train Engine" +msgstr "" + +#: advtrains_train_industrial/init.lua:98 +msgid "Industrial tank wagon" +msgstr "" + +#: advtrains_train_industrial/init.lua:116 +msgid "Industrial wood wagon" +msgstr "" + +#: advtrains_train_japan/init.lua:4 +msgid "Japanese Train Inter-Wagon Connection" +msgstr "" + +#: advtrains_train_japan/init.lua:37 +msgid "Driver stand" +msgstr "" + +#: advtrains_train_japan/init.lua:101 +msgid "Japanese Train Engine" +msgstr "" + +#: advtrains_train_japan/init.lua:176 +msgid "Japanese Train Wagon" +msgstr "" + +#: advtrains_train_steam/init.lua:75 +msgid "Steam Engine" +msgstr "" + +#: advtrains_train_steam/init.lua:159 +msgid "Detailed Steam Engine" +msgstr "" + +#: advtrains_train_steam/init.lua:206 +msgid "Passenger Wagon" +msgstr "" + +#: advtrains_train_steam/init.lua:226 +msgid "Box Wagon" +msgstr "" + +#: advtrains_train_subway/init.lua:144 +msgid "Subway Passenger Wagon" +msgstr "" + +#: advtrains_train_track/init.lua:31 +msgid "Y-turnout" +msgstr "" + +#: advtrains_train_track/init.lua:49 +msgid "3-way turnout" +msgstr "" + +#: advtrains_train_track/init.lua:69 +msgid "Perpendicular Diamond Crossing Track" +msgstr "" + +#: advtrains_train_track/init.lua:91 +msgid "90+Angle Diamond Crossing Track" +msgstr "" + +#: advtrains_train_track/init.lua:132 +msgid "Diagonal Diamond Crossing Track" +msgstr "" + +#: advtrains_train_track/init.lua:179 +msgid "Bumper" +msgstr "" + +#: advtrains_train_track/init.lua:201 +msgid "ATC controller" +msgstr "" + +#: advtrains_train_track/init.lua:317 +msgid "Unloading Track" +msgstr "" + +#: advtrains_train_track/init.lua:342 +msgid "Loading Track" +msgstr "" + +#: advtrains_train_track/init.lua:406 +msgid "Detector Rail" +msgstr "" diff --git a/advtrains/po/de.po b/advtrains/po/de.po new file mode 100644 index 0000000..8821fe3 --- /dev/null +++ b/advtrains/po/de.po @@ -0,0 +1,724 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2023-10-09 11:02+0200\n" +"PO-Revision-Date: 2023-10-09 11:18+0200\n" +"Last-Translator: Y. Wang <yw05@forksworld.de>\n" +"Language-Team: German\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.3.2\n" + +#: advtrains/atc.lua:109 +msgid "Unconfigured ATC controller" +msgstr "Nicht konfiguiertes Zugbeeinflussungsgleis" + +#: advtrains/atc.lua:150 +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"Zugbeeinflussungsgleis in Betriebsart „@1“\n" +"Befehl: @2" + +#: advtrains/atc.lua:180 +msgid "Command" +msgstr "Befehl" + +#: advtrains/atc.lua:184 +msgid "Command (on)" +msgstr "Befehl (wenn aktiviert)" + +#: advtrains/atc.lua:187 +msgid "Digiline channel" +msgstr "Digiline-Kanal" + +#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65 +#: advtrains_luaautomation/active_common.lua:48 +msgid "Save" +msgstr "Speichern" + +#: advtrains/atc.lua:236 +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "" +"Zugbeeinflussung: Der Zug befindet sich in Bewegung und kann nicht umgekehrt " +"werden." + +#: advtrains/atc.lua:248 +msgid "ATC Kick command warning: doors are closed." +msgstr "" +"Zugbeeinflussung: Wegen geschlossener Türen werden Fahrgäste nicht zum " +"Ausstieg gezwungen." + +#: advtrains/atc.lua:252 +msgid "ATC Kick command warning: train moving." +msgstr "" +"Zugbeeinflussung: Der Zug befindet sich in Bewegung, Fahrgäste werden nicht " +"zum Ausstieg gezwungen." + +#: advtrains/atc.lua:322 +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "Zugbeeinflussung: Unvollständiger I-Befehl: @1" + +#: advtrains/atc.lua:385 +msgid "ATC command parse error: Unknown command: @1" +msgstr "Zugbeeinflussung: Unbekannter Befehl: @1" + +#: advtrains/copytool.lua:8 +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"Werkzeug zur Erstellung von Zugkopien\n" +"\n" +"Linksklick: Zug ins Clipboard kopieren\n" +"Right-click: Kopierten Zug einfügen" + +#: advtrains/copytool.lua:29 +msgid "You do not have the @1 privilege." +msgstr "Ihnen fehlt das „@1“-Privileg." + +#: advtrains/copytool.lua:41 +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "Das Gleis, auf dem der Waggon platziert werden woll, ist zu kurz." + +#: advtrains/copytool.lua:47 +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "" +"Wegen des fehlgeschlagenen Zugriffs auf die Metadaten konnte eine Kopie des " +"Zuges nicht eingefügt werden." + +#: advtrains/copytool.lua:52 advtrains/copytool.lua:57 +msgid "The clipboard is empty." +msgstr "Das Clipboard ist leer." + +#: advtrains/copytool.lua:74 +msgid "Back of train would end up off track, cancelling." +msgstr "Der hinterer Teil dez Zuges wäre nicht auf dem Gleis." + +#: advtrains/copytool.lua:92 +msgid "No such lua entity." +msgstr "" +"Sie zeigen nicht auf einem Objekt, das mit diesem Werkzeug kopiert werden " +"kann." + +#: advtrains/copytool.lua:98 +msgid "No such wagon: @1." +msgstr "Es gibt keinen mit „@1“ identifizierbaren Waggon." + +#: advtrains/copytool.lua:104 +msgid "No such train: @1." +msgstr "Es gibt keinen mit „@1“ identifizierbaren Zug." + +#: advtrains/copytool.lua:176 +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "" +"Wegen des fehlgeschlagenen Zugriffs auf die Metadaten konnte der Zug nicht " +"kopiert werden." + +#: advtrains/copytool.lua:180 +msgid "Train copied." +msgstr "Der Zug wurde Kopiert." + +#: advtrains/couple.lua:28 +msgid "Buffer and Chain Coupler" +msgstr "Schraubenkupplung" + +#: advtrains/couple.lua:29 +msgid "Scharfenberg Coupler" +msgstr "Scharfenbergkupplung" + +#: advtrains/couple.lua:185 +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "Sie dürfen ohne das „train_operator“-Privileg keine Züge ankuppeln." + +#: advtrains/couple.lua:329 advtrains/couple.lua:333 +msgid "<No coupler>" +msgstr "<Keine Kupplung vorhanden>" + +#: advtrains/couple.lua:334 +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "Die Kupplungen der Züge passen nicht zueinander (@1 und @2)." + +#: advtrains/craft_items.lua:3 +msgid "Boiler" +msgstr "" + +#: advtrains/craft_items.lua:9 +msgid "Driver's cab" +msgstr "Führerstand" + +#: advtrains/craft_items.lua:15 +msgid "Wheel" +msgstr "" + +#: advtrains/craft_items.lua:21 +msgid "Chimney" +msgstr "" + +#: advtrains/misc_nodes.lua:16 +msgid "@1 Platform (low)" +msgstr "Niedriger @1-Bahnsteig" + +#: advtrains/misc_nodes.lua:33 +msgid "@1 Platform (high)" +msgstr "Hoher @1-Bahnsteig" + +#: advtrains/misc_nodes.lua:59 +msgid "@1 Platform (45 degree)" +msgstr "Hoher @1-Bahnsteig (45°)" + +#: advtrains/misc_nodes.lua:81 +msgid "@1 Platform (low, 45 degree)" +msgstr "Niedriger @1-Bahnsteig (45°)" + +#: advtrains/protection.lua:7 +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua:12 +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua:18 +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:24 +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "" +"Sie dürfen ohne das „track_builder“-Privileg nicht in der Nähe von Gleisen " +"bauen." + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "Sie dürfen ohne das „track_builder“-Privileg kein Gleis bauen." + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build near tracks at this protected position." +msgstr "Sie dürfen an geschützten Stellen nicht in der Nähe von Gleisen bauen." + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build tracks at this protected position." +msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen." + +#: advtrains/protection.lua:184 +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "" +"Sie dürfen ohne das „railway_operator“-Privileg keine Bahnanlage operieren." + +#: advtrains/signals.lua:63 +msgid "Lampless Signal" +msgstr "Mechanisches Signal" + +#: advtrains/signals.lua:127 +msgid "Signal" +msgstr "Lichtsignal" + +#: advtrains/signals.lua:191 +msgid "Wallmounted Signal (left)" +msgstr "An der linken Seite montiertes Signal" + +#: advtrains/signals.lua:192 +msgid "Wallmounted Signal (right)" +msgstr "An der rechten Seite montiertes Signal" + +#: advtrains/signals.lua:193 +msgid "Wallmounted Signal (top)" +msgstr "An der Decke montiertes Signal" + +#: advtrains/signals.lua:281 advtrains/signals.lua:322 +msgid "Andrew's Cross" +msgstr "Andreaskreuz" + +#: advtrains/trackplacer.lua:313 +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"Gleiswerkzeug\n" +"\n" +"Linksklick: Gleistyp ändern\n" +"Rechtsklick: Objekt drehen" + +#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377 +msgid "This node can't be rotated using the trackworker." +msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug gedreht werden." + +#: advtrains/trackplacer.lua:350 +msgid "This track can not be rotated." +msgstr "Dieses Gleis kann nicht gedreht werden." + +#: advtrains/trackplacer.lua:404 +msgid "This node can't be changed using the trackworker." +msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug bearbeitet werden." + +#: advtrains/trackplacer.lua:414 +msgid "This track can not be changed." +msgstr "Dieses Gleis kann nicht geändert werden." + +#: advtrains/tracks.lua:449 +msgid "This track can not be removed." +msgstr "Dieses Gleis kann nicht entfernt werden." + +#: advtrains/tracks.lua:616 +msgid "Position is occupied by a train." +msgstr "Ein Zug steht an dieser Position." + +#: advtrains/tracks.lua:622 +msgid "There's a Track Circuit Break here." +msgstr "Hier ist eine Gleisabschnittsgrenze (TCB)." + +#: advtrains/tracks.lua:626 +msgid "There's a Signal Influence Point here." +msgstr "Hier ist ein Signal-Beeinflussungspunkt." + +#: advtrains/tracks.lua:637 +msgid "@1 Slope" +msgstr "@1 Steigung" + +#: advtrains/tracks.lua:648 advtrains/tracks.lua:653 +msgid "Can't place slope: not pointing at node." +msgstr "Es kann nicht platziert werden: Sie zeigen nicht auf einem Block." + +#: advtrains/tracks.lua:658 +msgid "Can't place slope: space occupied." +msgstr "Es kann nicht platziert werden: Diese Position ist besetzt." + +#: advtrains/tracks.lua:711 +msgid "Can't place slope: Not enough slope items left (@1 required)." +msgstr "" +"Es kann nicht platziert werden: Sie haben nicht genug Steigungsblöcke, es " +"werden insgesamt @1 benötigt." + +#: advtrains/tracks.lua:714 +msgid "Can't place slope: There's no slope of length @1." +msgstr "" +"Es kann nicht platziert werden: die Steigung der Länge @1 ist nicht " +"definiert." + +#: advtrains/tracks.lua:721 +msgid "Can't place slope: no supporting node at upper end." +msgstr "" +"Es kann nicht platziert werden: es gibt keinen unterstützenden Block am Ende " +"der Steigung." + +#: advtrains/trainhud.lua:305 +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagons.lua:179 +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "Dieser Waggon gehört @1, Sie dürfen ihn nicht abbauen." + +#: advtrains/wagons.lua:203 +msgid "The wagon's inventory is not empty." +msgstr "Das Inventar dieses Waggons ist nicht leer." + +#: advtrains/wagons.lua:210 +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "Der Waggon muss abgekoppelt sein, damit Sie ihn abbauen können." + +#: advtrains/wagons.lua:216 +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"Warnung: Durch den Abbau des Waggons erhalten Sie nur etwas Stahl zurück. " +"Nutzen Sie Schleichen+Linksklick, um dem Waggon abzubauen." + +#: advtrains/wagons.lua:649 advtrains/wagons.lua:850 +msgid "Show Inventory" +msgstr "Inventar Zeigen" + +#: advtrains/wagons.lua:652 +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328 +msgid "Wagon properties" +msgstr "Waggon-Einstellungen" + +#: advtrains/wagons.lua:658 +msgid "Get off" +msgstr "Aussteigen" + +#: advtrains/wagons.lua:661 +msgid "Get off (forced)" +msgstr "Ausstieg zwingen" + +#: advtrains/wagons.lua:663 +msgid "(Doors closed)" +msgstr "(Türen geschlossen)" + +#: advtrains/wagons.lua:692 +msgid "This wagon has no seats." +msgstr "In diesem Waggon ist kein Sitzplatz vorhanden." + +#: advtrains/wagons.lua:703 +msgid "This wagon is full." +msgstr "Der Waggon ist voll." + +#: advtrains/wagons.lua:706 +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "Die Türen sind geschlossen." + +#: advtrains/wagons.lua:712 +msgid "You can't get on this wagon." +msgstr "Sie können nicht in diesen Waggon einsteigen." + +#: advtrains/wagons.lua:838 +msgid "Select seat:" +msgstr "Wählen Sie einen Sitzplatz aus:" + +#: advtrains/wagons.lua:880 +msgid "Save wagon properties" +msgstr "Waggon-Einstellungen speichern" + +#: advtrains/wagons.lua:965 +msgid "Text displayed outside on train" +msgstr "Äußere Anzeige" + +#: advtrains/wagons.lua:966 +msgid "Text displayed inside train" +msgstr "Innere Anzeige" + +#: advtrains/wagons.lua:967 +msgid "Line" +msgstr "Linie" + +#: advtrains/wagons.lua:968 +msgid "Routingcode" +msgstr "" + +#: advtrains/wagons.lua:1241 +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "" +"Die Türen sind geschlossen. Nutzen Sie Schleichen+Rechtsklick, um trotz " +"geschlossener Türen auszusteigen." + +#: advtrains/wagons.lua:1250 +msgid "You are not allowed to access the driver stand." +msgstr "Sie haben keinen Zugang zum Führerstand." + +#: advtrains_interlocking/tsr_rail.lua:13 +msgid "Point speed restriction: @1" +msgstr "Geschwindigkeitskontrolle: @1" + +#: advtrains_interlocking/tsr_rail.lua:14 +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:30 +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "Sie dürfen ohne das „@1“-Privileg dieses Gleis nicht konfigurieren." + +#: advtrains_interlocking/tsr_rail.lua:34 +#: advtrains_line_automation/stoprail.lua:31 +#: advtrains_line_automation/stoprail.lua:76 +msgid "You are not allowed to configure this track." +msgstr "Sie dürfen dieses Gleis nicht konfigurieren." + +#: advtrains_interlocking/tsr_rail.lua:64 +msgid "Point Speed Restriction Track" +msgstr "Geschwindigkeitskontrollgleis" + +#: advtrains_line_automation/stoprail.lua:54 +msgid "Station Code" +msgstr "Kennzeichen der Haltestelle" + +#: advtrains_line_automation/stoprail.lua:55 +msgid "Station Name" +msgstr "Name der Haltestelle" + +#: advtrains_line_automation/stoprail.lua:56 +msgid "Door Delay" +msgstr "Zeit für die Türschließung" + +#: advtrains_line_automation/stoprail.lua:57 +msgid "Dep. Speed" +msgstr "Zielgeschwindigkeit bei Abfahrt" + +#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11 +#: advtrains_train_track/init.lua:156 +msgid "Track" +msgstr "Gleis" + +#: advtrains_line_automation/stoprail.lua:59 +msgid "Stop Time" +msgstr "Wartezeit" + +#: advtrains_line_automation/stoprail.lua:60 +msgid "Door Side" +msgstr "Türseite" + +#: advtrains_line_automation/stoprail.lua:62 +msgid "Reverse train" +msgstr "Zug Umkehren" + +#: advtrains_line_automation/stoprail.lua:63 +msgid "Kick out passengers" +msgstr "Fahrgäste zum Ausstieg zwingen" + +#: advtrains_line_automation/stoprail.lua:97 +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" +"Die Haltestelle mit dem Kennzeichen „@1“ ist bereits vorhanden und wird von " +"@2 verwaltet." + +#: advtrains_line_automation/stoprail.lua:111 +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" +"Diese Haltestelle wird von @1 verwaltet. Sie dürfen sie nicht umbenennen." + +#: advtrains_line_automation/stoprail.lua:221 +msgid "Station/Stop Track" +msgstr "Gleis zur Kennzeichnung einer Haltestelle" + +#: advtrains_luaautomation/active_common.lua:17 +msgid "Unconfigured LuaATC component" +msgstr "Nicht konfiguierter LuaATC-Bauteil" + +#: advtrains_luaautomation/active_common.lua:46 +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:49 +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:50 +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:64 +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "" +"Sie dürfen ohne das „@1“-Privileg diesen LuaATC-Bauteil nicht konfigurieren." + +#: advtrains_luaautomation/active_common.lua:94 +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:96 +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:171 +msgid "LuaATC component with error: @1" +msgstr "LuaATC-Bauteil mit Fehlermeldung: @1" + +#: advtrains_luaautomation/init.lua:13 +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" +"Kann LuaATC-Bauteile platzieren und konfigurieren (auch evtl. schädliche " +"Programme ausführen)" + +#: advtrains_luaautomation/mesecon_controller.lua:211 +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua:11 +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:28 +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"PC-Benennungswerkzeug\n" +"\n" +"Rechtsklick zur Benennung der passiven Komponente." + +#: advtrains_luaautomation/pcnaming.lua:39 +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "Sie dürfen ohne das „@1“ keinen passiven LuaATC-Bauteil benennen." + +#: advtrains_luaautomation/pcnaming.lua:62 +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_train_industrial/init.lua:10 +#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20 +#: advtrains_train_steam/init.lua:91 +msgid "Driver Stand (right)" +msgstr "Führerstand Rechts" + +#: advtrains_train_industrial/init.lua:17 +#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14 +#: advtrains_train_steam/init.lua:85 +msgid "Driver Stand (left)" +msgstr "Führerstand Links" + +#: advtrains_train_industrial/init.lua:40 +msgid "Industrial Train Engine" +msgstr "Industrielle Lokomotive" + +#: advtrains_train_industrial/init.lua:79 +msgid "Big Industrial Train Engine" +msgstr "Große Industrielle Lokomotive" + +#: advtrains_train_industrial/init.lua:98 +msgid "Industrial tank wagon" +msgstr "Tankwaggon" + +#: advtrains_train_industrial/init.lua:116 +msgid "Industrial wood wagon" +msgstr "Holztransportwaggon" + +#: advtrains_train_japan/init.lua:4 +msgid "Japanese Train Inter-Wagon Connection" +msgstr "Waggonzwischenverbindung Japanischer Personenzüge" + +#: advtrains_train_japan/init.lua:37 +msgid "Driver stand" +msgstr "Führerstand" + +#: advtrains_train_japan/init.lua:101 +msgid "Japanese Train Engine" +msgstr "Japanische Personenzug-Lokomotive" + +#: advtrains_train_japan/init.lua:176 +msgid "Japanese Train Wagon" +msgstr "Japanischer Personenzug-Passagierwaggon" + +#: advtrains_train_steam/init.lua:75 +msgid "Steam Engine" +msgstr "Dampflokomotive" + +#: advtrains_train_steam/init.lua:159 +msgid "Detailed Steam Engine" +msgstr "Detaillierte Dampflokomotive" + +#: advtrains_train_steam/init.lua:206 +msgid "Passenger Wagon" +msgstr "Passagierwaggon" + +#: advtrains_train_steam/init.lua:226 +msgid "Box Wagon" +msgstr "Güterwaggon" + +#: advtrains_train_subway/init.lua:144 +msgid "Subway Passenger Wagon" +msgstr "U-Bahn-Waggon" + +#: advtrains_train_track/init.lua:31 +msgid "Y-turnout" +msgstr "Y-Weiche" + +#: advtrains_train_track/init.lua:49 +msgid "3-way turnout" +msgstr "Dreiwegweiche" + +#: advtrains_train_track/init.lua:69 +msgid "Perpendicular Diamond Crossing Track" +msgstr "Kreuzung mit zueinander orthogonalen Gleisen" + +#: advtrains_train_track/init.lua:91 +msgid "90+Angle Diamond Crossing Track" +msgstr "Kreuzung mit einem achsenparallelen Gleis" + +#: advtrains_train_track/init.lua:132 +msgid "Diagonal Diamond Crossing Track" +msgstr "Diagonale Gleiskreuzung" + +#: advtrains_train_track/init.lua:179 +msgid "Bumper" +msgstr "Prellbock" + +#: advtrains_train_track/init.lua:201 +msgid "ATC controller" +msgstr "Zugbeeinflussungsgleis" + +#: advtrains_train_track/init.lua:317 +msgid "Unloading Track" +msgstr "Abladungsgleis" + +#: advtrains_train_track/init.lua:342 +msgid "Loading Track" +msgstr "Beladungsgleis" + +#: advtrains_train_track/init.lua:406 +msgid "Detector Rail" +msgstr "Detektorgleis" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "Zugbeeinflussungsgleis in Betriebsart „@1“\n" +#~ "Kanal: @2" + +#~ msgid "Access to @1" +#~ msgstr "Zugang zu @1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "" +#~ "Sie können nicht einsteigen: der Waggon ist voll oder die Türen sind " +#~ "geschlossen." + +#~ msgid "Can't place: protected position!" +#~ msgstr "Es kann nicht platziert werden: diese Position ist geschützt." + +#~ msgid "Default Seat" +#~ msgstr "Standardsitzplatz" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "Standardsitzplatz (Führerstand)" + +#~ msgid "Deprecated Track" +#~ msgstr "ausrangiertes Gleis, nicht verwenden." + +#~ msgid "Lock couples" +#~ msgstr "Kupplungen sperren" + +#~ msgid "Speed:" +#~ msgstr "Geschw.:" + +#~ msgid "Target:" +#~ msgstr "Zielges.:" + +#~ msgid "This position is protected!" +#~ msgstr "Diese Position ist geschützt!" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "" +#~ "Nutzen Sie Schleichen+Rechtsklick, um trotz geschlossener Türen " +#~ "einzusteigen." + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen." + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "" +#~ "Sie müssen Besitzer eines angrenzenden Waggons sein, um hier abzukuppeln." diff --git a/advtrains/po/fr.po b/advtrains/po/fr.po new file mode 100644 index 0000000..3cb68b0 --- /dev/null +++ b/advtrains/po/fr.po @@ -0,0 +1,725 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2023-10-09 11:02+0200\n" +"PO-Revision-Date: 2022-07-05 10:11+0200\n" +"Last-Translator: Tanavit <tanavit@posto.ovh>\n" +"Language-Team: French\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: advtrains/atc.lua:109 +msgid "Unconfigured ATC controller" +msgstr "Controlleur ATC, non-configuré " + +#: advtrains/atc.lua:150 +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"Controlleur ATC, mode @1\n" +"Commande : @2" + +#: advtrains/atc.lua:180 +msgid "Command" +msgstr "Commande" + +#: advtrains/atc.lua:184 +msgid "Command (on)" +msgstr "Commande (marche) " + +#: advtrains/atc.lua:187 +msgid "Digiline channel" +msgstr "Canal Digiline" + +#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65 +#: advtrains_luaautomation/active_common.lua:48 +msgid "Save" +msgstr "Sauvegarder" + +#: advtrains/atc.lua:236 +#, fuzzy +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "" +"Attention : Commande ATC de renversement impossible car le train se déplace !" + +#: advtrains/atc.lua:248 +msgid "ATC Kick command warning: doors are closed." +msgstr "" + +#: advtrains/atc.lua:252 +msgid "ATC Kick command warning: train moving." +msgstr "" + +#: advtrains/atc.lua:322 +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "Erreur de syntaxe de commande ATC : instruction \"I\" incomplète : @1" + +#: advtrains/atc.lua:385 +msgid "ATC command parse error: Unknown command: @1" +msgstr "Erreur d'analyse de commande ATC : Commande inconnue : @1" + +#: advtrains/copytool.lua:8 +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"Outil de copie/collage de train\n" +"\n" +"Clic-Gauche : copie\n" +"\n" +"Clic-Droit : collage" + +#: advtrains/copytool.lua:29 +msgid "You do not have the @1 privilege." +msgstr "Vous ne possédez pas le privilège \"@1\"." + +#: advtrains/copytool.lua:41 +#, fuzzy +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "La voie sur laquelle vous tentez de placer le wagon est trop courte !" + +#: advtrains/copytool.lua:47 +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec du collage." + +#: advtrains/copytool.lua:52 advtrains/copytool.lua:57 +msgid "The clipboard is empty." +msgstr "Le presse-papier est vide." + +#: advtrains/copytool.lua:74 +msgid "Back of train would end up off track, cancelling." +msgstr "La fin du train serait hors voie : annulation." + +#: advtrains/copytool.lua:92 +msgid "No such lua entity." +msgstr "Pas de telle entité lua." + +#: advtrains/copytool.lua:98 +msgid "No such wagon: @1." +msgstr "Pas de tel wagon : @1." + +#: advtrains/copytool.lua:104 +msgid "No such train: @1." +msgstr "Pas de tel train : @1." + +#: advtrains/copytool.lua:176 +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec de la copie." + +#: advtrains/copytool.lua:180 +msgid "Train copied." +msgstr "Train copié." + +#: advtrains/couple.lua:28 +msgid "Buffer and Chain Coupler" +msgstr "Attelage à tampon et vis" + +#: advtrains/couple.lua:29 +msgid "Scharfenberg Coupler" +msgstr "Attelage Scharfenberg" + +#: advtrains/couple.lua:185 +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "" + +#: advtrains/couple.lua:329 advtrains/couple.lua:333 +msgid "<No coupler>" +msgstr "" + +#: advtrains/couple.lua:334 +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "" +"Accouplement impossible: les attelages des trains ne concordent pas (@1 et " +"@2)." + +#: advtrains/craft_items.lua:3 +msgid "Boiler" +msgstr "Chaudière à vapeur" + +#: advtrains/craft_items.lua:9 +msgid "Driver's cab" +msgstr "Cabine de pilotage" + +#: advtrains/craft_items.lua:15 +msgid "Wheel" +msgstr "Roue" + +#: advtrains/craft_items.lua:21 +msgid "Chimney" +msgstr "Cheminée" + +#: advtrains/misc_nodes.lua:16 +msgid "@1 Platform (low)" +msgstr "Quai @1 (bas)" + +#: advtrains/misc_nodes.lua:33 +msgid "@1 Platform (high)" +msgstr "Quai @1 (haut)" + +#: advtrains/misc_nodes.lua:59 +msgid "@1 Platform (45 degree)" +msgstr "Quai @1 (haut, 45°)" + +#: advtrains/misc_nodes.lua:81 +msgid "@1 Platform (low, 45 degree)" +msgstr "Quai @1 (bas, 45°)" + +#: advtrains/protection.lua:7 +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua:12 +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua:18 +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:24 +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "" +"Vous ne pouvez pas construire à proximité d'une voie sans le privilège " +"\"track_builder\" (?)" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "" +"Vous ne pouvez pas construire une voie sans le privilège \"track_builder\"" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build near tracks at this protected position." +msgstr "" +"Vous ne pouvez pas construire à proximité d'une voie à cet emplacement " +"protégé" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build tracks at this protected position." +msgstr "Vous ne pouvez pas construire une voie à cet emplacement protégé" + +#: advtrains/protection.lua:184 +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "" +"Vous ne pouvez pas actionner les aiguillages ou les signaux (privilège " +"\"railway_operator\" manquant)" + +#: advtrains/signals.lua:63 +msgid "Lampless Signal" +msgstr "Sémaphore" + +#: advtrains/signals.lua:127 +msgid "Signal" +msgstr "" + +#: advtrains/signals.lua:191 +msgid "Wallmounted Signal (left)" +msgstr "Signal mural (gauche)" + +#: advtrains/signals.lua:192 +msgid "Wallmounted Signal (right)" +msgstr "Signal mural (droit)" + +#: advtrains/signals.lua:193 +msgid "Wallmounted Signal (top)" +msgstr "Signal mural (plafond)" + +#: advtrains/signals.lua:281 advtrains/signals.lua:322 +msgid "Andrew's Cross" +msgstr "Croix de Saint André" + +#: advtrains/trackplacer.lua:313 +#, fuzzy +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"Outil \"Trackworker\"\n" +"\n" +"Clic-Gauche : change le type de rail (droit/courbé/aiguillage)\n" +"\n" +"Clic-Droit : tourne le rail/butoir/signal/etc..." + +#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377 +#, fuzzy +msgid "This node can't be rotated using the trackworker." +msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\" !" + +#: advtrains/trackplacer.lua:350 +msgid "This track can not be rotated." +msgstr "Cette voie ne peut pas être tournée." + +#: advtrains/trackplacer.lua:404 +#, fuzzy +msgid "This node can't be changed using the trackworker." +msgstr "Ce nœud ne peut être modifié avec l'outil \"Trackworker\" !" + +#: advtrains/trackplacer.lua:414 +msgid "This track can not be changed." +msgstr "Cette voie ne peut pas être modifiée." + +#: advtrains/tracks.lua:449 +msgid "This track can not be removed." +msgstr "Cette voie ne peut pas être enlevée." + +#: advtrains/tracks.lua:616 +msgid "Position is occupied by a train." +msgstr "Cet emplacement est occupé par un train." + +#: advtrains/tracks.lua:622 +msgid "There's a Track Circuit Break here." +msgstr "Il y a un \"Track Circuit Break\" ici." + +#: advtrains/tracks.lua:626 +msgid "There's a Signal Influence Point here." +msgstr "Il y a un \"Signal Influence Point\" ici." + +#: advtrains/tracks.lua:637 +msgid "@1 Slope" +msgstr "Pente @1" + +#: advtrains/tracks.lua:648 advtrains/tracks.lua:653 +#, fuzzy +msgid "Can't place slope: not pointing at node." +msgstr "Placement impossible : ne pointe pas un nœud" + +#: advtrains/tracks.lua:658 +#, fuzzy +msgid "Can't place slope: space occupied." +msgstr "Placement impossible : espace occupé" + +#: advtrains/tracks.lua:711 +#, fuzzy +msgid "Can't place slope: Not enough slope items left (@1 required)." +msgstr "" +"Placement impossible : quantité insuffisante de voie pentue (@1 manquant)" + +#: advtrains/tracks.lua:714 +#, fuzzy +msgid "Can't place slope: There's no slope of length @1." +msgstr "Placement impossible : il n'y a pas de voie pentue de longueur @1" + +#: advtrains/tracks.lua:721 +#, fuzzy +msgid "Can't place slope: no supporting node at upper end." +msgstr "Placement impossible : pas de nœud d'appui à l'extrémité supérieure" + +#: advtrains/trainhud.lua:305 +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagons.lua:179 +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "Ce wagon est la propriété de @1, vous ne pouvez pas le détruire." + +#: advtrains/wagons.lua:203 +msgid "The wagon's inventory is not empty." +msgstr "Le stock de ce wagon n'est pas vide." + +#: advtrains/wagons.lua:210 +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua:216 +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"Attention: Si vous détruisez ce wagon, vous ne récupérerez que de la " +"ferraille ! Si vous êtes sûr de vous, appuyez la touche \"Marcher lentement " +"(Sneak)\" et Clic-Gauche." + +#: advtrains/wagons.lua:649 advtrains/wagons.lua:850 +msgid "Show Inventory" +msgstr "Montrer le stock" + +#: advtrains/wagons.lua:652 +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328 +msgid "Wagon properties" +msgstr "Propriétés du wagon" + +#: advtrains/wagons.lua:658 +msgid "Get off" +msgstr "Débarquer" + +#: advtrains/wagons.lua:661 +msgid "Get off (forced)" +msgstr "Débarquer (de force)" + +#: advtrains/wagons.lua:663 +msgid "(Doors closed)" +msgstr "(Portes closes)" + +#: advtrains/wagons.lua:692 +msgid "This wagon has no seats." +msgstr "" + +#: advtrains/wagons.lua:703 +msgid "This wagon is full." +msgstr "" + +#: advtrains/wagons.lua:706 +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua:712 +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua:838 +msgid "Select seat:" +msgstr "Choisir le siège" + +#: advtrains/wagons.lua:880 +msgid "Save wagon properties" +msgstr "Sauvegarder les propriétés du wagon" + +#: advtrains/wagons.lua:965 +msgid "Text displayed outside on train" +msgstr "Texte affiché à l'extérieur du train" + +#: advtrains/wagons.lua:966 +msgid "Text displayed inside train" +msgstr "Texte affiché à l'intérieur du train" + +#: advtrains/wagons.lua:967 +msgid "Line" +msgstr "Ligne " + +#: advtrains/wagons.lua:968 +msgid "Routingcode" +msgstr "Code de routage" + +#: advtrains/wagons.lua:1241 +#, fuzzy +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "" +"Portes closes ! Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour " +"franchir les portes et débarquer !" + +#: advtrains/wagons.lua:1250 +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:13 +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:14 +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:30 +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:34 +#: advtrains_line_automation/stoprail.lua:31 +#: advtrains_line_automation/stoprail.lua:76 +msgid "You are not allowed to configure this track." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:64 +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:54 +msgid "Station Code" +msgstr "Code de Station" + +#: advtrains_line_automation/stoprail.lua:55 +msgid "Station Name" +msgstr "Nom de Station" + +#: advtrains_line_automation/stoprail.lua:56 +msgid "Door Delay" +msgstr "Durée d'ouverture des portes" + +#: advtrains_line_automation/stoprail.lua:57 +msgid "Dep. Speed" +msgstr "Vitesse de départ" + +#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11 +#: advtrains_train_track/init.lua:156 +msgid "Track" +msgstr "Voie" + +#: advtrains_line_automation/stoprail.lua:59 +msgid "Stop Time" +msgstr "Durée d'arrêt" + +#: advtrains_line_automation/stoprail.lua:60 +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:62 +msgid "Reverse train" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:63 +msgid "Kick out passengers" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:97 +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:111 +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:221 +msgid "Station/Stop Track" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:17 +msgid "Unconfigured LuaATC component" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:46 +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:49 +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:50 +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:64 +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "" + +#: advtrains_luaautomation/active_common.lua:94 +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:96 +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:171 +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/init.lua:13 +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua:211 +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua:11 +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:28 +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"Outil de nommage de composant passif\n" +"\n" +"Clic-Droit pour nommer un composant passif." + +#: advtrains_luaautomation/pcnaming.lua:39 +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:62 +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_train_industrial/init.lua:10 +#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20 +#: advtrains_train_steam/init.lua:91 +msgid "Driver Stand (right)" +msgstr "Poste de pilotage (droit)" + +#: advtrains_train_industrial/init.lua:17 +#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14 +#: advtrains_train_steam/init.lua:85 +msgid "Driver Stand (left)" +msgstr "Poste de pilotage (gauche)" + +#: advtrains_train_industrial/init.lua:40 +msgid "Industrial Train Engine" +msgstr "Locomotive industrielle" + +#: advtrains_train_industrial/init.lua:79 +msgid "Big Industrial Train Engine" +msgstr "Grosse locomotive industrielle " + +#: advtrains_train_industrial/init.lua:98 +msgid "Industrial tank wagon" +msgstr "Wagon-citerne industriel" + +#: advtrains_train_industrial/init.lua:116 +msgid "Industrial wood wagon" +msgstr "Wagon grumier industriel" + +#: advtrains_train_japan/init.lua:4 +msgid "Japanese Train Inter-Wagon Connection" +msgstr "Passage inter-voiture de train Japonais" + +#: advtrains_train_japan/init.lua:37 +msgid "Driver stand" +msgstr "Poste de pilotage" + +#: advtrains_train_japan/init.lua:101 +msgid "Japanese Train Engine" +msgstr "Motrice Japonaise" + +#: advtrains_train_japan/init.lua:176 +msgid "Japanese Train Wagon" +msgstr "Voiture Japonaise" + +#: advtrains_train_steam/init.lua:75 +msgid "Steam Engine" +msgstr "Locomotive à vapeur" + +#: advtrains_train_steam/init.lua:159 +msgid "Detailed Steam Engine" +msgstr "Locomotive à vapeur complexe" + +#: advtrains_train_steam/init.lua:206 +msgid "Passenger Wagon" +msgstr "Voiture passager" + +#: advtrains_train_steam/init.lua:226 +msgid "Box Wagon" +msgstr "Wagon de frêt" + +#: advtrains_train_subway/init.lua:144 +msgid "Subway Passenger Wagon" +msgstr "Voiture de Métropolitain" + +#: advtrains_train_track/init.lua:31 +msgid "Y-turnout" +msgstr "Embranchement en Y" + +#: advtrains_train_track/init.lua:49 +msgid "3-way turnout" +msgstr "Embranchement triple" + +#: advtrains_train_track/init.lua:69 +msgid "Perpendicular Diamond Crossing Track" +msgstr "Croisement perpendiculaire" + +#: advtrains_train_track/init.lua:91 +msgid "90+Angle Diamond Crossing Track" +msgstr "Croisement perpendiculo-diagonal" + +#: advtrains_train_track/init.lua:132 +msgid "Diagonal Diamond Crossing Track" +msgstr "Croisement diagonal" + +#: advtrains_train_track/init.lua:179 +msgid "Bumper" +msgstr "Heurtoir" + +#: advtrains_train_track/init.lua:201 +msgid "ATC controller" +msgstr "Controlleur ATC" + +#: advtrains_train_track/init.lua:317 +msgid "Unloading Track" +msgstr "Voie de Déchargement" + +#: advtrains_train_track/init.lua:342 +msgid "Loading Track" +msgstr "Voie de Chargement" + +#: advtrains_train_track/init.lua:406 +msgid "Detector Rail" +msgstr "Voie détectrice" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "Controlleur ATC, mode @1\n" +#~ "Canal : @2" + +#~ msgid "Access to @1" +#~ msgstr "Accès à @1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "" +#~ "Embarquement impossible : le wagon est plein ou ses portes sont closes !" + +#~ msgid "Can't place: protected position!" +#~ msgstr "Placement impossible : emplacement protégé" + +#~ msgid "Default Seat" +#~ msgstr "Siège par défaut" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "Siège par défaut (poste de pilotage)" + +#~ msgid "Deprecated Track" +#~ msgstr "Voie déconseillée" + +#~ msgid "Lock couples" +#~ msgstr "Verrouiller l'accouplement" + +#~ msgid "Speed:" +#~ msgstr "Vitesse : " + +#~ msgid "Target:" +#~ msgstr "Destination : " + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\" !" + +#~ msgid "This position is protected!" +#~ msgstr "Cet emplacement est protégé !" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "" +#~ "Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour franchir les " +#~ "portes closes !" + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "Vous ne pouvez pas construire une voie à cet emplacement protégé" + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "" +#~ "Vous devez être propriétaire d'au moins un wagon voisin pour supprimer " +#~ "cet attelage." diff --git a/advtrains/po/update-translations.sh b/advtrains/po/update-translations.sh new file mode 100755 index 0000000..3a56c7c --- /dev/null +++ b/advtrains/po/update-translations.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# NOTE: Please make sure you also have basic_trains installed, as it uses attrans for historical reasons + +PODIR=`dirname "$0"` +ATDIR="$PODIR/../.." +BTDIR="$ATDIR/../basic_trains" +POTFILE="$PODIR/advtrains.pot" + +xgettext \ + -D "$ATDIR" \ + -D "$BTDIR" \ + -d advtrains \ + -o "$POTFILE" \ + -p . \ + -L lua \ + --from-code=UTF-8 \ + --sort-by-file \ + --keyword='attrans' \ + --keyword='S' \ + --package-name='advtrains' \ + --msgid-bugs-address='advtrains-discuss@lists.sr.ht' \ + `find $ATDIR $BTDIR -name '*.lua' -printf '%P\n'` \ + && +for i in "$PODIR"/*.po; do + msgmerge -U \ + --sort-by-file \ + $i "$POTFILE" +done diff --git a/advtrains/po/zh_CN.po b/advtrains/po/zh_CN.po new file mode 100644 index 0000000..5bcc316 --- /dev/null +++ b/advtrains/po/zh_CN.po @@ -0,0 +1,696 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2023-10-09 11:02+0200\n" +"PO-Revision-Date: 2023-10-09 11:24+0200\n" +"Last-Translator: Y. Wang <yw05@forksworld.de>\n" +"Language-Team: Chinese (Simplified)\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.3.2\n" + +#: advtrains/atc.lua:109 +msgid "Unconfigured ATC controller" +msgstr "ATC 控制器 (未配置)" + +#: advtrains/atc.lua:150 +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"ATC 控制器\n" +"模式:@1\n" +"命令:@2" + +#: advtrains/atc.lua:180 +msgid "Command" +msgstr "命令" + +#: advtrains/atc.lua:184 +msgid "Command (on)" +msgstr "命令 (激活时)" + +#: advtrains/atc.lua:187 +msgid "Digiline channel" +msgstr "Digiline 频道" + +#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65 +#: advtrains_luaautomation/active_common.lua:48 +msgid "Save" +msgstr "保存" + +#: advtrains/atc.lua:236 +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "ATC 警告:火车正在移动,无法改变行车方向。" + +#: advtrains/atc.lua:248 +msgid "ATC Kick command warning: doors are closed." +msgstr "ATC 警告:车门已关闭,无法踢出乘客。" + +#: advtrains/atc.lua:252 +msgid "ATC Kick command warning: train moving." +msgstr "ATC 警告:火车正在移动,无法踢出乘客。" + +#: advtrains/atc.lua:322 +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "ATC 语法错误:“I”命令不完整:@1" + +#: advtrains/atc.lua:385 +msgid "ATC command parse error: Unknown command: @1" +msgstr "ATC 语法错误:未知命令:@1" + +#: advtrains/copytool.lua:8 +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"火车复制工具\n" +"\n" +"左键单击:复制\n" +"右键单击:粘帖" + +#: advtrains/copytool.lua:29 +msgid "You do not have the @1 privilege." +msgstr "您没有“@1”权限。" + +#: advtrains/copytool.lua:41 +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "轨道太短。" + +#: advtrains/copytool.lua:47 +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "无法粘贴:剪贴板无法访问元数据。" + +#: advtrains/copytool.lua:52 advtrains/copytool.lua:57 +msgid "The clipboard is empty." +msgstr "剪贴板是空的。" + +#: advtrains/copytool.lua:74 +msgid "Back of train would end up off track, cancelling." +msgstr "火车后部不在轨道上。" + +#: advtrains/copytool.lua:92 +msgid "No such lua entity." +msgstr "您没有指向一个可以用火车复制工具复制的物体。" + +#: advtrains/copytool.lua:98 +msgid "No such wagon: @1." +msgstr "ID 为“@1”的车厢不存在。" + +#: advtrains/copytool.lua:104 +msgid "No such train: @1." +msgstr "ID 为“@1”的列车不存在。" + +#: advtrains/copytool.lua:176 +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "无法复制:剪贴板无法访问元数据。" + +#: advtrains/copytool.lua:180 +msgid "Train copied." +msgstr "已复制列车。" + +#: advtrains/couple.lua:28 +msgid "Buffer and Chain Coupler" +msgstr "链式车钩" + +#: advtrains/couple.lua:29 +msgid "Scharfenberg Coupler" +msgstr "Scharfenberg 式车钩" + +#: advtrains/couple.lua:185 +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "您没有“train_operator”权限,不能连接这两节车厢。" + +#: advtrains/couple.lua:329 advtrains/couple.lua:333 +msgid "<No coupler>" +msgstr "<没有车钩>" + +#: advtrains/couple.lua:334 +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "您无法连接这两节车厢:这两节车厢使用不同的车钩 (@1和@2)。" + +#: advtrains/craft_items.lua:3 +msgid "Boiler" +msgstr "锅炉" + +#: advtrains/craft_items.lua:9 +msgid "Driver's cab" +msgstr "驾驶室" + +#: advtrains/craft_items.lua:15 +msgid "Wheel" +msgstr "车轮" + +#: advtrains/craft_items.lua:21 +msgid "Chimney" +msgstr "烟囱" + +#: advtrains/misc_nodes.lua:16 +msgid "@1 Platform (low)" +msgstr "较低的@1站台" + +#: advtrains/misc_nodes.lua:33 +msgid "@1 Platform (high)" +msgstr "较高的@1站台" + +#: advtrains/misc_nodes.lua:59 +msgid "@1 Platform (45 degree)" +msgstr "较高的@1站台 (45°)" + +#: advtrains/misc_nodes.lua:81 +msgid "@1 Platform (low, 45 degree)" +msgstr "较低的@1站台 (45°)" + +#: advtrains/protection.lua:7 +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua:12 +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua:18 +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:24 +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "您没有“train_operator”权限,不能在铁路附近建任何东西。" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "您没有“train_operator”权限,不能在这里建造铁路。" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build near tracks at this protected position." +msgstr "这里已被保护,您不能在这里的铁路附近建任何东西。" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build tracks at this protected position." +msgstr "这里已被保护,您不能在这里建造铁路。" + +#: advtrains/protection.lua:184 +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "您没有“railway_operator”权限,不能控制铁路设施。" + +#: advtrains/signals.lua:63 +msgid "Lampless Signal" +msgstr "臂板信号机" + +#: advtrains/signals.lua:127 +msgid "Signal" +msgstr "信号灯" + +#: advtrains/signals.lua:191 +msgid "Wallmounted Signal (left)" +msgstr "壁挂式信号灯 (左侧)" + +#: advtrains/signals.lua:192 +msgid "Wallmounted Signal (right)" +msgstr "壁挂式信号灯 (右侧)" + +#: advtrains/signals.lua:193 +msgid "Wallmounted Signal (top)" +msgstr "悬挂式信号灯" + +#: advtrains/signals.lua:281 advtrains/signals.lua:322 +msgid "Andrew's Cross" +msgstr "铁路道口信号灯" + +#: advtrains/trackplacer.lua:313 +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"铁路调整工具\n" +"\n" +"左键单击:切换轨道类型\n" +"右键单击:旋转方块" + +#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377 +msgid "This node can't be rotated using the trackworker." +msgstr "您不能使用铁路调整工具旋转这个方块。" + +#: advtrains/trackplacer.lua:350 +msgid "This track can not be rotated." +msgstr "您不能旋转这段轨道。" + +#: advtrains/trackplacer.lua:404 +msgid "This node can't be changed using the trackworker." +msgstr "您不能使用铁路调整工具调整这个方块。" + +#: advtrains/trackplacer.lua:414 +msgid "This track can not be changed." +msgstr "您不能调整这段轨道。" + +#: advtrains/tracks.lua:449 +msgid "This track can not be removed." +msgstr "您不能移除这段轨道。" + +#: advtrains/tracks.lua:616 +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua:622 +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/tracks.lua:626 +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/tracks.lua:637 +msgid "@1 Slope" +msgstr "@1斜坡" + +#: advtrains/tracks.lua:648 advtrains/tracks.lua:653 +msgid "Can't place slope: not pointing at node." +msgstr "无法放置斜坡:您没有选择任何方块。" + +#: advtrains/tracks.lua:658 +msgid "Can't place slope: space occupied." +msgstr "无法放置斜坡:此区域已被占用。" + +#: advtrains/tracks.lua:711 +msgid "Can't place slope: Not enough slope items left (@1 required)." +msgstr "无法放置斜坡:您没有足够的铁路斜坡放置工具 (您总共需要@1个)" + +#: advtrains/tracks.lua:714 +msgid "Can't place slope: There's no slope of length @1." +msgstr "无法放置斜坡:advtrains 不支持长度为@1米的斜坡。" + +#: advtrains/tracks.lua:721 +msgid "Can't place slope: no supporting node at upper end." +msgstr "无法放置斜坡:较高端没有支撑方块。" + +#: advtrains/trainhud.lua:305 +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagons.lua:179 +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "这是 @1 的车厢,您不能摧毁它。" + +#: advtrains/wagons.lua:203 +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua:210 +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua:216 +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"警告:如果您摧毁此车厢,您只能拿到一些钢方块。如果您确定要摧毁这节车厢,请按" +"潜行键并左键单击此车厢。" + +#: advtrains/wagons.lua:649 advtrains/wagons.lua:850 +msgid "Show Inventory" +msgstr "显示物品栏" + +#: advtrains/wagons.lua:652 +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328 +msgid "Wagon properties" +msgstr "车厢属性" + +#: advtrains/wagons.lua:658 +msgid "Get off" +msgstr "下车" + +#: advtrains/wagons.lua:661 +msgid "Get off (forced)" +msgstr "强制下车" + +#: advtrains/wagons.lua:663 +msgid "(Doors closed)" +msgstr "(车门已关闭)" + +#: advtrains/wagons.lua:692 +msgid "This wagon has no seats." +msgstr "这节车厢没有座位。" + +#: advtrains/wagons.lua:703 +msgid "This wagon is full." +msgstr "车厢已满。" + +#: advtrains/wagons.lua:706 +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua:712 +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua:838 +msgid "Select seat:" +msgstr "请选择座位:" + +#: advtrains/wagons.lua:880 +msgid "Save wagon properties" +msgstr "保存车厢属性" + +#: advtrains/wagons.lua:965 +msgid "Text displayed outside on train" +msgstr "车厢外部显示" + +#: advtrains/wagons.lua:966 +msgid "Text displayed inside train" +msgstr "车厢内部显示" + +#: advtrains/wagons.lua:967 +msgid "Line" +msgstr "火车线路" + +#: advtrains/wagons.lua:968 +msgid "Routingcode" +msgstr "路由码" + +#: advtrains/wagons.lua:1241 +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "车门已关闭,请使用潜行+右键单击下车。" + +#: advtrains/wagons.lua:1250 +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:13 +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:14 +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:30 +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "您没有“@1”权限,不能调整这段轨道。" + +#: advtrains_interlocking/tsr_rail.lua:34 +#: advtrains_line_automation/stoprail.lua:31 +#: advtrains_line_automation/stoprail.lua:76 +msgid "You are not allowed to configure this track." +msgstr "您不能调整这段轨道。" + +#: advtrains_interlocking/tsr_rail.lua:64 +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:54 +msgid "Station Code" +msgstr "车站代码" + +#: advtrains_line_automation/stoprail.lua:55 +msgid "Station Name" +msgstr "车站名称" + +#: advtrains_line_automation/stoprail.lua:56 +msgid "Door Delay" +msgstr "车门关闭时间" + +#: advtrains_line_automation/stoprail.lua:57 +msgid "Dep. Speed" +msgstr "出发速度" + +#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11 +#: advtrains_train_track/init.lua:156 +msgid "Track" +msgstr "轨道" + +#: advtrains_line_automation/stoprail.lua:59 +msgid "Stop Time" +msgstr "停站时间" + +#: advtrains_line_automation/stoprail.lua:60 +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:62 +msgid "Reverse train" +msgstr "改变行车方向" + +#: advtrains_line_automation/stoprail.lua:63 +msgid "Kick out passengers" +msgstr "踢出乘客" + +#: advtrains_line_automation/stoprail.lua:97 +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:111 +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:221 +msgid "Station/Stop Track" +msgstr "车站轨道" + +#: advtrains_luaautomation/active_common.lua:17 +msgid "Unconfigured LuaATC component" +msgstr "LuaATC 部件 (未配置)" + +#: advtrains_luaautomation/active_common.lua:46 +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:49 +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:50 +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:64 +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "您没有“@1”权限,不能配置这个 LuaATC 部件。" + +#: advtrains_luaautomation/active_common.lua:94 +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:96 +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:171 +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/init.lua:13 +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua:211 +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua:11 +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:28 +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"被动元件命名工具\n" +"\n" +"右键单击命名所选元件。" + +#: advtrains_luaautomation/pcnaming.lua:39 +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "您没有“@1”权限,不能命名被动元件。" + +#: advtrains_luaautomation/pcnaming.lua:62 +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_train_industrial/init.lua:10 +#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20 +#: advtrains_train_steam/init.lua:91 +msgid "Driver Stand (right)" +msgstr "右侧司机座位" + +#: advtrains_train_industrial/init.lua:17 +#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14 +#: advtrains_train_steam/init.lua:85 +msgid "Driver Stand (left)" +msgstr "左侧司机座位" + +#: advtrains_train_industrial/init.lua:40 +msgid "Industrial Train Engine" +msgstr "工业用火车头" + +#: advtrains_train_industrial/init.lua:79 +msgid "Big Industrial Train Engine" +msgstr "大型工业用火车头" + +#: advtrains_train_industrial/init.lua:98 +msgid "Industrial tank wagon" +msgstr "液体运输车厢" + +#: advtrains_train_industrial/init.lua:116 +msgid "Industrial wood wagon" +msgstr "木材运输车厢" + +#: advtrains_train_japan/init.lua:4 +msgid "Japanese Train Inter-Wagon Connection" +msgstr "日本火车车钩" + +#: advtrains_train_japan/init.lua:37 +msgid "Driver stand" +msgstr "司机座位" + +#: advtrains_train_japan/init.lua:101 +msgid "Japanese Train Engine" +msgstr "高速列车车头" + +#: advtrains_train_japan/init.lua:176 +msgid "Japanese Train Wagon" +msgstr "高速列车车厢" + +#: advtrains_train_steam/init.lua:75 +msgid "Steam Engine" +msgstr "蒸汽机车" + +#: advtrains_train_steam/init.lua:159 +msgid "Detailed Steam Engine" +msgstr "精细的蒸汽机车" + +#: advtrains_train_steam/init.lua:206 +msgid "Passenger Wagon" +msgstr "客车" + +#: advtrains_train_steam/init.lua:226 +msgid "Box Wagon" +msgstr "货运车厢" + +#: advtrains_train_subway/init.lua:144 +msgid "Subway Passenger Wagon" +msgstr "地铁车厢" + +#: advtrains_train_track/init.lua:31 +msgid "Y-turnout" +msgstr "对称道岔" + +#: advtrains_train_track/init.lua:49 +msgid "3-way turnout" +msgstr "三开道岔" + +#: advtrains_train_track/init.lua:69 +msgid "Perpendicular Diamond Crossing Track" +msgstr "垂直交叉轨道" + +#: advtrains_train_track/init.lua:91 +msgid "90+Angle Diamond Crossing Track" +msgstr "交叉轨道 (其中一条轨道与坐标轴平行)" + +#: advtrains_train_track/init.lua:132 +msgid "Diagonal Diamond Crossing Track" +msgstr "交叉轨道" + +#: advtrains_train_track/init.lua:179 +msgid "Bumper" +msgstr "保险杠" + +#: advtrains_train_track/init.lua:201 +msgid "ATC controller" +msgstr "ATC 控制器" + +#: advtrains_train_track/init.lua:317 +msgid "Unloading Track" +msgstr "卸货轨道" + +#: advtrains_train_track/init.lua:342 +msgid "Loading Track" +msgstr "装货轨道" + +#: advtrains_train_track/init.lua:406 +msgid "Detector Rail" +msgstr "探测轨道" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "ATC 控制器\n" +#~ "模式:@1\n" +#~ "频道:@2" + +#~ msgid "Access to @1" +#~ msgstr "可前往@1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "无法上车:车门已关闭或车厢已满。" + +#~ msgid "Can't place: protected position!" +#~ msgstr "无法放置:此区域已被保护。" + +#~ msgid "Default Seat" +#~ msgstr "默认座位" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "默认座位 (司机座位)" + +#~ msgid "Deprecated Track" +#~ msgstr "请不要使用" + +#~ msgid "Lock couples" +#~ msgstr "锁定连接处" + +#~ msgid "Speed:" +#~ msgstr "速度" + +#~ msgid "Target:" +#~ msgstr "目标速度" + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "您不能使用铁路调整工具旋转这个方块。" + +#~ msgid "This position is protected!" +#~ msgstr "这里已被保护。" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "请使用潜行+右键上车。" + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "这里已被保护,您不能在这里建造铁路。" + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "您必须至少拥有其中一节车厢才能分开这两节车厢。" diff --git a/advtrains/po/zh_TW.po b/advtrains/po/zh_TW.po new file mode 100644 index 0000000..ece82c3 --- /dev/null +++ b/advtrains/po/zh_TW.po @@ -0,0 +1,696 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2023-10-09 11:02+0200\n" +"PO-Revision-Date: 2023-10-09 11:31+0200\n" +"Last-Translator: Y. Wang <yw05@forksworld.de>\n" +"Language-Team: Chinese (Traditional)\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.3.2\n" + +#: advtrains/atc.lua:109 +msgid "Unconfigured ATC controller" +msgstr "ATC 控制器 (未配置)" + +#: advtrains/atc.lua:150 +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"ATC 控制器\n" +"模式:@1\n" +"命令:@2" + +#: advtrains/atc.lua:180 +msgid "Command" +msgstr "命令" + +#: advtrains/atc.lua:184 +msgid "Command (on)" +msgstr "命令 (啟用時)" + +#: advtrains/atc.lua:187 +msgid "Digiline channel" +msgstr "Digiline 頻道" + +#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65 +#: advtrains_luaautomation/active_common.lua:48 +msgid "Save" +msgstr "儲存" + +#: advtrains/atc.lua:236 +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "ATC 警告:火車正在移動,無法改變行車方向。" + +#: advtrains/atc.lua:248 +msgid "ATC Kick command warning: doors are closed." +msgstr "ATC 警告:車門已關閉,無法踢出乘客。" + +#: advtrains/atc.lua:252 +msgid "ATC Kick command warning: train moving." +msgstr "ATC 警告:火車正在移動,無法踢出乘客。" + +#: advtrains/atc.lua:322 +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "ATC 語法錯誤:「I」命令不完整:@1" + +#: advtrains/atc.lua:385 +msgid "ATC command parse error: Unknown command: @1" +msgstr "ATC 語法錯誤:未知命令:@1" + +#: advtrains/copytool.lua:8 +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"火車複製工具\n" +"\n" +"左鍵單擊:複製\n" +"右鍵單擊:粘帖" + +#: advtrains/copytool.lua:29 +msgid "You do not have the @1 privilege." +msgstr "您沒有「@1」許可權。" + +#: advtrains/copytool.lua:41 +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "軌道太短。" + +#: advtrains/copytool.lua:47 +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "無法貼上:剪貼簿無法訪問元資料。" + +#: advtrains/copytool.lua:52 advtrains/copytool.lua:57 +msgid "The clipboard is empty." +msgstr "剪貼簿是空的。" + +#: advtrains/copytool.lua:74 +msgid "Back of train would end up off track, cancelling." +msgstr "火車後部不在軌道上。" + +#: advtrains/copytool.lua:92 +msgid "No such lua entity." +msgstr "您沒有指向一個可以用火車複製工具複製的物體。" + +#: advtrains/copytool.lua:98 +msgid "No such wagon: @1." +msgstr "ID 為「@1」的車廂不存在。" + +#: advtrains/copytool.lua:104 +msgid "No such train: @1." +msgstr "ID 為「@1」的列車不存在。" + +#: advtrains/copytool.lua:176 +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "無法複製:剪貼簿無法訪問元資料。" + +#: advtrains/copytool.lua:180 +msgid "Train copied." +msgstr "已複製火車。" + +#: advtrains/couple.lua:28 +msgid "Buffer and Chain Coupler" +msgstr "鏈式連結器" + +#: advtrains/couple.lua:29 +msgid "Scharfenberg Coupler" +msgstr "Scharfenberg 式連結器" + +#: advtrains/couple.lua:185 +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "您沒有「train_operator」許可權,不能連結這兩節車廂。" + +#: advtrains/couple.lua:329 advtrains/couple.lua:333 +msgid "<No coupler>" +msgstr "<無連結器>" + +#: advtrains/couple.lua:334 +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "您無法連結這兩節車廂:這兩節車廂使用不同的連結器 (@1和@2)。" + +#: advtrains/craft_items.lua:3 +msgid "Boiler" +msgstr "鍋爐" + +#: advtrains/craft_items.lua:9 +msgid "Driver's cab" +msgstr "駕駛室" + +#: advtrains/craft_items.lua:15 +msgid "Wheel" +msgstr "車輪" + +#: advtrains/craft_items.lua:21 +msgid "Chimney" +msgstr "煙囪" + +#: advtrains/misc_nodes.lua:16 +msgid "@1 Platform (low)" +msgstr "較低的@1月臺" + +#: advtrains/misc_nodes.lua:33 +msgid "@1 Platform (high)" +msgstr "較高的@1月臺" + +#: advtrains/misc_nodes.lua:59 +msgid "@1 Platform (45 degree)" +msgstr "較高的@1月臺 (45°)" + +#: advtrains/misc_nodes.lua:81 +msgid "@1 Platform (low, 45 degree)" +msgstr "較低的@1月臺 (45°)" + +#: advtrains/protection.lua:7 +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua:12 +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua:18 +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:24 +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "您沒有「train_operator」許可權,不能在鐵路附近建任何東西。" + +#: advtrains/protection.lua:148 +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "您沒有「train_operator」許可權,不能在這裡建造鐵路。" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build near tracks at this protected position." +msgstr "這裡已被保護,您不能在這裡的鐵路附近建任何東西。" + +#: advtrains/protection.lua:153 +msgid "You are not allowed to build tracks at this protected position." +msgstr "這裡已被保護,您不能在這裡建造鐵路。" + +#: advtrains/protection.lua:184 +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "您沒有「railway_operator」許可權,不能控制鐵路設施。" + +#: advtrains/signals.lua:63 +msgid "Lampless Signal" +msgstr "臂木式號誌機" + +#: advtrains/signals.lua:127 +msgid "Signal" +msgstr "色燈號誌機" + +#: advtrains/signals.lua:191 +msgid "Wallmounted Signal (left)" +msgstr "壁掛式色燈號誌機 (左側)" + +#: advtrains/signals.lua:192 +msgid "Wallmounted Signal (right)" +msgstr "壁掛式色燈號誌機 (右側)" + +#: advtrains/signals.lua:193 +msgid "Wallmounted Signal (top)" +msgstr "懸掛式色燈號誌機" + +#: advtrains/signals.lua:281 advtrains/signals.lua:322 +msgid "Andrew's Cross" +msgstr "平交道號誌燈" + +#: advtrains/trackplacer.lua:313 +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"鐵路調整工具\n" +"\n" +"左鍵單擊:切換軌道型別\n" +"右鍵單擊:旋轉方塊" + +#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377 +msgid "This node can't be rotated using the trackworker." +msgstr "您不能使用鐵路調整工具旋轉這個方塊。" + +#: advtrains/trackplacer.lua:350 +msgid "This track can not be rotated." +msgstr "您不能旋轉這段軌道。" + +#: advtrains/trackplacer.lua:404 +msgid "This node can't be changed using the trackworker." +msgstr "您不能使用鐵路調整工具調整這個方塊。" + +#: advtrains/trackplacer.lua:414 +msgid "This track can not be changed." +msgstr "您不能調整這段軌道。" + +#: advtrains/tracks.lua:449 +msgid "This track can not be removed." +msgstr "您不能移除這段軌道。" + +#: advtrains/tracks.lua:616 +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua:622 +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/tracks.lua:626 +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/tracks.lua:637 +msgid "@1 Slope" +msgstr "@1斜坡" + +#: advtrains/tracks.lua:648 advtrains/tracks.lua:653 +msgid "Can't place slope: not pointing at node." +msgstr "無法放置斜坡:您沒有選擇任何方塊。" + +#: advtrains/tracks.lua:658 +msgid "Can't place slope: space occupied." +msgstr "無法放置斜坡:此區域已被佔用。" + +#: advtrains/tracks.lua:711 +msgid "Can't place slope: Not enough slope items left (@1 required)." +msgstr "無法放置斜坡:您沒有足夠的鐵路斜坡放置工具 (您總共需要@1個)" + +#: advtrains/tracks.lua:714 +msgid "Can't place slope: There's no slope of length @1." +msgstr "無法放置斜坡:advtrains 不支援長度為@1米的斜坡。" + +#: advtrains/tracks.lua:721 +msgid "Can't place slope: no supporting node at upper end." +msgstr "無法放置斜坡:較高階沒有支撐方塊。" + +#: advtrains/trainhud.lua:305 +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagons.lua:179 +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "這是 @1 的車廂,您不能摧毀它。" + +#: advtrains/wagons.lua:203 +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua:210 +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua:216 +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"警告:如果您摧毀此車廂,您只能拿到一些鋼方塊。如果您確定要摧毀這節車廂,請按" +"潛行鍵並左鍵單擊此車廂。" + +#: advtrains/wagons.lua:649 advtrains/wagons.lua:850 +msgid "Show Inventory" +msgstr "顯示物品欄" + +#: advtrains/wagons.lua:652 +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328 +msgid "Wagon properties" +msgstr "車廂屬性" + +#: advtrains/wagons.lua:658 +msgid "Get off" +msgstr "下車" + +#: advtrains/wagons.lua:661 +msgid "Get off (forced)" +msgstr "強制下車" + +#: advtrains/wagons.lua:663 +msgid "(Doors closed)" +msgstr "(車門已關閉)" + +#: advtrains/wagons.lua:692 +msgid "This wagon has no seats." +msgstr "這節車廂沒有座位。" + +#: advtrains/wagons.lua:703 +msgid "This wagon is full." +msgstr "車廂已滿。" + +#: advtrains/wagons.lua:706 +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua:712 +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua:838 +msgid "Select seat:" +msgstr "請選擇座位:" + +#: advtrains/wagons.lua:880 +msgid "Save wagon properties" +msgstr "儲存車廂屬性" + +#: advtrains/wagons.lua:965 +msgid "Text displayed outside on train" +msgstr "車廂外部顯示" + +#: advtrains/wagons.lua:966 +msgid "Text displayed inside train" +msgstr "車廂內部顯示" + +#: advtrains/wagons.lua:967 +msgid "Line" +msgstr "火車線路" + +#: advtrains/wagons.lua:968 +msgid "Routingcode" +msgstr "路由碼" + +#: advtrains/wagons.lua:1241 +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "車門已關閉,請使用潛行+右鍵單擊下車。" + +#: advtrains/wagons.lua:1250 +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:13 +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:14 +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua:30 +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "您沒有「@1」許可權,不能調整這段軌道。" + +#: advtrains_interlocking/tsr_rail.lua:34 +#: advtrains_line_automation/stoprail.lua:31 +#: advtrains_line_automation/stoprail.lua:76 +msgid "You are not allowed to configure this track." +msgstr "您不能調整這段軌道。" + +#: advtrains_interlocking/tsr_rail.lua:64 +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:54 +msgid "Station Code" +msgstr "車站碼" + +#: advtrains_line_automation/stoprail.lua:55 +msgid "Station Name" +msgstr "車站名稱" + +#: advtrains_line_automation/stoprail.lua:56 +msgid "Door Delay" +msgstr "車門關閉時間" + +#: advtrains_line_automation/stoprail.lua:57 +msgid "Dep. Speed" +msgstr "出發速度" + +#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11 +#: advtrains_train_track/init.lua:156 +msgid "Track" +msgstr "軌道" + +#: advtrains_line_automation/stoprail.lua:59 +msgid "Stop Time" +msgstr "停站時間" + +#: advtrains_line_automation/stoprail.lua:60 +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua:62 +msgid "Reverse train" +msgstr "改變行車方向" + +#: advtrains_line_automation/stoprail.lua:63 +msgid "Kick out passengers" +msgstr "踢出乘客" + +#: advtrains_line_automation/stoprail.lua:97 +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:111 +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua:221 +msgid "Station/Stop Track" +msgstr "車站軌道" + +#: advtrains_luaautomation/active_common.lua:17 +msgid "Unconfigured LuaATC component" +msgstr "LuaATC 元件 (未配置)" + +#: advtrains_luaautomation/active_common.lua:46 +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:49 +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:50 +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:64 +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "您沒有「@1」許可權,不能配置這個 LuaATC 元件。" + +#: advtrains_luaautomation/active_common.lua:94 +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:96 +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua:171 +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/init.lua:13 +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua:211 +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua:11 +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua:28 +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"被動元件命名工具\n" +"\n" +"右鍵單擊命名所選元件。" + +#: advtrains_luaautomation/pcnaming.lua:39 +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "您沒有「@1」許可權,不能命名這個元件。" + +#: advtrains_luaautomation/pcnaming.lua:62 +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_train_industrial/init.lua:10 +#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20 +#: advtrains_train_steam/init.lua:91 +msgid "Driver Stand (right)" +msgstr "右側司機座位" + +#: advtrains_train_industrial/init.lua:17 +#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14 +#: advtrains_train_steam/init.lua:85 +msgid "Driver Stand (left)" +msgstr "左側司機座位" + +#: advtrains_train_industrial/init.lua:40 +msgid "Industrial Train Engine" +msgstr "工業用火車頭" + +#: advtrains_train_industrial/init.lua:79 +msgid "Big Industrial Train Engine" +msgstr "大型工業用火車頭" + +#: advtrains_train_industrial/init.lua:98 +msgid "Industrial tank wagon" +msgstr "液體運輸車廂" + +#: advtrains_train_industrial/init.lua:116 +msgid "Industrial wood wagon" +msgstr "木材運輸車廂" + +#: advtrains_train_japan/init.lua:4 +msgid "Japanese Train Inter-Wagon Connection" +msgstr "日本火車連結器" + +#: advtrains_train_japan/init.lua:37 +msgid "Driver stand" +msgstr "司機座位" + +#: advtrains_train_japan/init.lua:101 +msgid "Japanese Train Engine" +msgstr "高速列車車頭" + +#: advtrains_train_japan/init.lua:176 +msgid "Japanese Train Wagon" +msgstr "高速列車車廂" + +#: advtrains_train_steam/init.lua:75 +msgid "Steam Engine" +msgstr "蒸汽機車" + +#: advtrains_train_steam/init.lua:159 +msgid "Detailed Steam Engine" +msgstr "精細的蒸汽機車" + +#: advtrains_train_steam/init.lua:206 +msgid "Passenger Wagon" +msgstr "客車" + +#: advtrains_train_steam/init.lua:226 +msgid "Box Wagon" +msgstr "貨運車廂" + +#: advtrains_train_subway/init.lua:144 +msgid "Subway Passenger Wagon" +msgstr "地鐵車廂" + +#: advtrains_train_track/init.lua:31 +msgid "Y-turnout" +msgstr "對稱道岔" + +#: advtrains_train_track/init.lua:49 +msgid "3-way turnout" +msgstr "三開道岔" + +#: advtrains_train_track/init.lua:69 +msgid "Perpendicular Diamond Crossing Track" +msgstr "垂直交叉軌道" + +#: advtrains_train_track/init.lua:91 +msgid "90+Angle Diamond Crossing Track" +msgstr "交叉軌道 (其中一條軌道與座標軸平行)" + +#: advtrains_train_track/init.lua:132 +msgid "Diagonal Diamond Crossing Track" +msgstr "交叉軌道" + +#: advtrains_train_track/init.lua:179 +msgid "Bumper" +msgstr "保險槓" + +#: advtrains_train_track/init.lua:201 +msgid "ATC controller" +msgstr "ATC 控制器" + +#: advtrains_train_track/init.lua:317 +msgid "Unloading Track" +msgstr "卸貨軌道" + +#: advtrains_train_track/init.lua:342 +msgid "Loading Track" +msgstr "裝貨軌道" + +#: advtrains_train_track/init.lua:406 +msgid "Detector Rail" +msgstr "探測軌道" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "ATC 控制器\n" +#~ "模式:@1\n" +#~ "頻道:@2" + +#~ msgid "Access to @1" +#~ msgstr "可前往@1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "無法上車:車門已關閉或車廂已滿。" + +#~ msgid "Can't place: protected position!" +#~ msgstr "無法放置:此區域已被保護。" + +#~ msgid "Default Seat" +#~ msgstr "預設座位" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "預設座位 (司機座位)" + +#~ msgid "Deprecated Track" +#~ msgstr "請不要使用" + +#~ msgid "Lock couples" +#~ msgstr "鎖定連結處" + +#~ msgid "Speed:" +#~ msgstr "速度" + +#~ msgid "Target:" +#~ msgstr "目標速度" + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "您不能使用鐵路調整工具旋轉這個方塊。" + +#~ msgid "This position is protected!" +#~ msgstr "這裡已被保護。" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "請使用潛行+右鍵上車。" + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "這裡已被保護,您不能在這裡建造鐵路。" + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "您必須至少擁有其中一節車廂才能分開這兩節車廂。" diff --git a/advtrains/poconvert.lua b/advtrains/poconvert.lua new file mode 100644 index 0000000..74f962e --- /dev/null +++ b/advtrains/poconvert.lua @@ -0,0 +1,185 @@ +local unescape_string +do + local schartbl = { -- https://en.wikipedia.org/wiki/Escape_sequences_in_C + a = "\a", + b = "\b", + e = string.char(0x1b), + f = "\f", + n = "\n", + r = "\r", + t = "\t", + v = "\v", + } + local function replace_single(pfx, c) + local pl = #pfx + if pl % 2 == 0 then + return string.sub(pfx, 1, pl/2) .. c + end + return string.sub(pfx, 1, math.floor(pl/2)) .. (schartbl[c] or c) + end + unescape_string = function(str) + return string.gsub(str, [[(\+)([abefnrtv'"?])]], replace_single) + end +end + +local function readstring_aux(str, pos) + local _, spos = string.find(str, [[^%s*"]], pos) + if not spos then + return nil + end + local ipos = spos + while true do + local _, epos, m = string.find(str, [[(\*)"]], ipos+1) + if not epos then + return error("String extends beyond the end of input") + end + ipos = epos + if #m % 2 == 0 then + return unescape_string(string.sub(str, spos+1, epos-1)), epos+1 + end + end +end + +local function readstring(str, pos) + local st = {} + local nxt = pos + while true do + local s, npos = readstring_aux(str, nxt) + if not s then + if not st[1] then + return nil, nxt + else + return table.concat(st), nxt + end + end + nxt = npos + table.insert(st, s) + end +end + +local function readtoken(str, pos) + local _, epos, tok = string.find(str, [[^%s*(%S+)]], pos) + if epos == nil then + return nil, pos + end + return tok, epos+1 +end + +local function readcomment_add_flags(flags, s) + for flag in string.gmatch(s, ",%s*([^,]+)") do + flags[flag] = true + end +end + +local function readcomment_aux(str, pos) + local _, epos, sval = string.find(str, "^\n*#([^\n]*)", pos) + if not epos then + return nil + end + return sval, epos+1 +end + +local function readcomment(str, pos) + local st = {} + local nxt = pos + local flags = {} + while true do + local s, npos = readcomment_aux(str, nxt) + if not npos then + local t = { + comment = table.concat(st, "\n"), + flags = flags, + } + return t, nxt + end + if string.sub(s, 1, 1) == "," then + readcomment_add_flags(flags, s) + end + table.insert(st, s) + nxt = npos + end +end + +local function readpo(str) + local st = {} + local pos = 1 + while true do + local entry, nxt = readcomment(str, pos) + local msglines = 0 + while true do + local tok, npos = readtoken(str, nxt) + if tok == nil or string.sub(tok, 1, 1) == "#" then + break + elseif string.sub(tok, 1, 3) ~= "msg" then + return error("Invalid token: " .. tok) + elseif entry[tok] ~= nil then + break + else + local value, npos = readstring(str, npos) + assert(value ~= nil, "No string provided for " .. tok) + entry[tok] = value + nxt = npos + msglines = msglines+1 + end + end + if msglines == 0 then + return st + elseif entry.msgid ~= "" then + assert(entry.msgid ~= nil, "Missing untranslated string") + assert(entry.msgstr ~= nil, "Missing translated string") + table.insert(st, entry) + end + pos = nxt + end +end + +local escape_lookup = { + ["="] = "@=", + ["\n"] = "@n" +} +local function escape_string(st) + return (string.gsub(st, "[=\n]", escape_lookup)) +end + +local function convert_po_string(textdomain, str) + local st = {string.format("# textdomain: %s", textdomain)} + for _, entry in ipairs(readpo(str)) do + local line = ("%s=%s"):format(escape_string(entry.msgid), escape_string(entry.msgstr)) + if entry.flags.fuzzy then + line = "#" .. line + end + table.insert(st, line) + end + return table.concat(st, "\n") +end + +local function convert_po_file(textdomain, inpath, outpath) + local f, err = io.open(inpath, "rb") + assert(f, err) + local str = convert_po_string(textdomain, f:read("*a")) + f:close() + minetest.safe_file_write(outpath, str) + return str +end + +local function convert_flat_po_directory(textdomain, modpath) + assert(textdomain, "No textdomain specified for po file conversion") + local mp = modpath or minetest.get_modpath(textdomain) + assert(mp ~= nil, "No path to write for " .. textdomain) + local popath = mp .. "/po" + local trpath = mp .. "/locale" + for _, infile in pairs(minetest.get_dir_list(popath, false)) do + local lang = string.match(infile, [[^([^%.]+)%.po$]]) + if lang then + local inpath = popath .. "/" .. infile + local outpath = ("%s/%s.%s.tr"):format(trpath, textdomain, lang) + convert_po_file(textdomain, inpath, outpath) + end + end +end + +return { + from_string = convert_po_string, + from_file = convert_po_file, + from_flat = convert_flat_po_directory, +} diff --git a/advtrains/protection.lua b/advtrains/protection.lua index cca54a9..ac1cd66 100644 --- a/advtrains/protection.lua +++ b/advtrains/protection.lua @@ -4,24 +4,24 @@ -- Privileges to control TRAIN DRIVING/COUPLING minetest.register_privilege("train_operator", { - description = "Without this privilege, a player can't do anything about trains, neither place or remove them nor drive or couple them (but he can build tracks if he has track_builder)", + description = attrans("Can place, remove and operate trains"), give_to_singleplayer= true, }); minetest.register_privilege("train_admin", { - description = "Player may drive, place or remove any trains from/to anywhere, regardless of owner, whitelist or protection", + description = attrans("Can place, remove and operate any train, regardless of owner, whitelist, or protection"), give_to_singleplayer= true, }); -- Privileges to control TRACK BUILDING minetest.register_privilege("track_builder", { - description = "Player can place and/or dig rails not protected from him. If he also has protection_bypass, he can place/dig any rails", + description = attrans("Can place and dig tracks in unprotected areas"), give_to_singleplayer= true, }); -- Privileges to control OPERATING TURNOUTS/SIGNALS minetest.register_privilege("railway_operator", { - description = "Player can operate turnouts and signals not protected from him. If he also has protection_bypass, he can operate any turnouts/signals", + description = attrans("Can operate turnouts and signals in unprotected areas"), give_to_singleplayer= true, }); @@ -145,12 +145,12 @@ function advtrains.check_track_protection(pos, pname, near, prot_p) --atdebug("CTP: ",pos,pname,near,prot_p,"priv=",priv,"prot=",prot,"dprot=",dprot) if not priv and (not boo or prot or not dprot) then - minetest.chat_send_player(pname, attrans("You are not allowed to build "..nears.."tracks without the track_builder privilege")) + minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks without the track_builder privilege.") or attrans("You are not allowed to build tracks without the track_builder privilege.")) minetest.log("action", pname.." tried to modify terrain "..nears.."track at "..minetest.pos_to_string(apos).." but is not permitted to (no privilege)") return false end if prot then - minetest.chat_send_player(pname, attrans("You are not allowed to build "..nears.."tracks at this protected position")) + minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks at this protected position.") or attrans("You are not allowed to build tracks at this protected position.")) minetest.record_protection_violation(pos, pname) minetest.log("action", pname.." tried to modify "..nears.."track at "..minetest.pos_to_string(apos).." but position is protected!") return false @@ -181,7 +181,7 @@ function advtrains.check_turnout_signal_protection(pos, pname) nocheck=false return true else - minetest.chat_send_player(pname, attrans("You are not allowed to operate turnouts and signals (missing railway_operator privilege)")) + minetest.chat_send_player(pname, attrans("You are not allowed to operate turnouts and signals without the railway_operator privilege.")) minetest.log("action", pname.." tried to operate turnout/signal at "..minetest.pos_to_string(pos).." but does not have railway_operator") nocheck=false return false diff --git a/advtrains/settingtypes.txt b/advtrains/settingtypes.txt index 6acff80..2b627cb 100644 --- a/advtrains/settingtypes.txt +++ b/advtrains/settingtypes.txt @@ -56,3 +56,8 @@ advtrains_dtime_limit (DTime Limit for slow-down) float 0.2 0 5 # Time interval in seconds in which advtrains stores its save data to disk # Nevertheless, advtrains saves all data when shutting down the server. advtrains_save_interval (Save Interval) int 60 20 3600 + +# Enable forgiving collision mode +# If enabled, trains only collide with nodes with "normal" drawtype. +advtrains_forgiving_collision (Forgiving Collision mode) bool false + diff --git a/advtrains/signals.lua b/advtrains/signals.lua index 5fb1d1b..c03afbf 100644 --- a/advtrains/signals.lua +++ b/advtrains/signals.lua @@ -18,7 +18,7 @@ end local function aspect(b) return { - main = (not b) and 0, -- b ? false : 0 + main = b and -1 or 0, shunt = false, proceed_as_main = true, dst = false, @@ -27,7 +27,7 @@ return { end local suppasp = { - main = {0, false}, + main = {0, -1}, dst = {false}, shunt = nil, proceed_as_main = true, @@ -60,7 +60,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", tiles = {"advtrains_retrosignal.png"}, inventory_image="advtrains_retrosignal_inv.png", drop="advtrains:retrosignal_off", - description=attrans("Lampless Signal (@1)", attrans(r..rotation)), + description=attrans("Lampless Signal"), sunlight_propagates=true, groups = { cracky=3, @@ -124,7 +124,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", tiles = {"advtrains_signal_"..r..".png"}, inventory_image="advtrains_signal_inv.png", drop="advtrains:signal_off", - description=attrans("Signal (@1)", attrans(r..rotation)), + description=attrans("Signal"), groups = { cracky=3, not_blocking_trains=1, @@ -187,6 +187,11 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", if r=="off" then crea=0 end --tunnel signals. no rotations. + local swdesc = { -- needed for xgettext + l = attrans("Wallmounted Signal (left)"), + r = attrans("Wallmounted Signal (right)"), + t = attrans("Wallmounted Signal (top)"), + } for loc, sbox in pairs({l={-1/2, -1/2, -1/4, 0, 1/2, 1/4}, r={0, -1/2, -1/4, 1/2, 1/2, 1/4}, t={-1/2, 0, -1/4, 1/2, 1/2, 1/4}}) do minetest.register_node("advtrains:signal_wall_"..loc.."_"..r, { drawtype = "mesh", @@ -200,7 +205,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", mesh = "advtrains_signal_wall_"..loc..".b3d", tiles = {"advtrains_signal_wall_"..r..".png"}, drop="advtrains:signal_wall_"..loc.."_off", - description=attrans("Wallmounted Signal ("..loc..")"), + description=swdesc[loc], groups = { cracky=3, not_blocking_trains=1, @@ -314,7 +319,7 @@ minetest.register_node("advtrains:across_on", { mesh = "advtrains_across.obj", tiles = {{name="advtrains_across_anim.png", animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.0}}}, drop="advtrains:across_off", - description=attrans("Andrew's Cross (on) (you hacker you)"), + description=attrans("Andrew's Cross"), groups = { cracky=3, not_blocking_trains=1, diff --git a/advtrains/spec/poconvert_spec.lua b/advtrains/spec/poconvert_spec.lua new file mode 100644 index 0000000..7b2ceea --- /dev/null +++ b/advtrains/spec/poconvert_spec.lua @@ -0,0 +1,68 @@ +package.path = "../?.lua;" .. package.path +advtrains = {} +_G.advtrains = advtrains +local poconvert = require("poconvert") + +describe("PO file converter", function() + it("should convert PO files", function() + assert.equals([[ +# textdomain: foo +foo=bar +baz= +#@=wh\at\\@n=@=w\as\\@n +multiline@nstrings= +with context?=oder doch nicht]], poconvert.from_string("foo", [[ +msgid "" +msgstr "whatever metadata" + +msgid "foo" +msgstr "bar" + +msgid "baz" +msgstr "" + +#, fuzzy +msgid "=wh\\at\\\\\n" +msgstr "=w\\as\\\\\n" + +msgid "multi" +"line\n" +"strings" +msgstr "" + +msgctxt "i18n context" +msgid "with context?" +msgstr "oder doch nicht"]])) + end) + it("should reject invalid tokens", function() + assert.has.errors(function() + poconvert.from_string("", [[ +foo "" +bar ""]]) + end, "Invalid token: foo") + end) + it("should reject entries without a msgstr", function() + assert.has.errors(function() + poconvert.from_string("", [[msgid "foo"]]) + end, "Missing translated string") + end) + it("should reject entries without a msgid", function() + assert.has.errors(function() + poconvert.from_string("", [[msgstr "foo"]]) + end, "Missing untranslated string") + end) + it("should reject entries with improperly enclosed strings", function() + assert.has.errors(function() + poconvert.from_string("", [[ +msgid "foo" +msgstr "bar \]]) + end, "String extends beyond the end of input") + end) + it("should reject incomplete input", function() + assert.has.errors(function() + poconvert.from_string("", [[ +msgid "foo" +msgstr]]) + end, "No string provided for msgstr") + end) +end) diff --git a/advtrains/spec/speed_spec.lua b/advtrains/spec/speed_spec.lua new file mode 100644 index 0000000..97f8ffa --- /dev/null +++ b/advtrains/spec/speed_spec.lua @@ -0,0 +1,70 @@ +package.path = "../?.lua;" .. package.path +advtrains = {} +_G.advtrains = advtrains +local speed = require("speed") + +describe("Arithmetic functions on speed restrictions", function() + it("should work", function() + local a = math.random() + local b = math.random(20) + -- This test is basically a "typo check" + assert.is_true (speed.lessp(a, b)) + assert.is_false(speed.greaterp(a, b)) + assert.is_false(speed.not_lessp(a, b)) + assert.is_true (speed.not_greaterp(a, b)) + assert.is_false(speed.lessp(a, a)) + assert.is_false(speed.greaterp(a, a)) + assert.is_true (speed.equalp(a, a)) + assert.is_false(speed.not_equalp(a, a)) + assert.equal(b, speed.max(a, b)) + assert.equal(a, speed.min(a, b)) + end) + it("should handle -1", function() + assert.is_false(speed.lessp(-1, math.random())) + end) + it("should handle nil", function() + assert.is_true(speed.greaterp(nil, math.random())) + end) + it("should handle mixed nil and -1", function() + assert.is_true(speed.equalp(nil, -1)) + end) +end) + +describe("The speed restriction setter", function() + it("should set the signal aspect", function() + local t = {speed_restrictions_t = {x = 5, y = 9}} + local u = {speed_restrictions_t = {x = 7, y = 9}, speed_restriction = 7} + speed.merge_aspect(t, {main = 7, type = "x"}) + assert.same(u, t) + end) + it("should work with existing signal aspect tables", function() + local t = {speed_restrictions_t = {main = 5, foo = 3}} + local u = {speed_restrictions_t = {main = 7, foo = 3}, speed_restriction = 3} + speed.merge_aspect(t, {main = 7}) + assert.same(u, t) + end) + it("should work with distant signals", function() + local t = {speed_restrictions_t = {main = 5}} + local u = {speed_restrictions_t = {main = 5}, speed_restriction = 5} + speed.merge_aspect(t, {}) + assert.same(u, t) + end) + it("should create the restriction table if necessary", function() + local t = {speed_restriction = 5} + local u = {speed_restriction = 3, speed_restrictions_t = {main = 5, foo = 3}} + speed.merge_aspect(t, {main = 3, type = "foo"}) + assert.same(u, t) + end) + it("should also create the restriction table for trains without any speed limit", function() + local t = {} + local u = {speed_restrictions_t = {}} + speed.merge_aspect(t, {}) + assert.same(u, t) + end) + it("should set the speed restriction to nil if that is the case", function() + local t = {speed_restriction = math.random(20)} + local u = {speed_restrictions_t = {main = -1}} + speed.merge_aspect(t, {main = -1}) + assert.same(u, t) + end) +end) diff --git a/advtrains/speed.lua b/advtrains/speed.lua new file mode 100644 index 0000000..ec4f928 --- /dev/null +++ b/advtrains/speed.lua @@ -0,0 +1,88 @@ +-- auxiliary functions for the reworked speed restriction system + +local function s_lessp(a, b) + if not a or a == -1 then + return false + elseif not b or b == -1 then + return true + else + return a < b + end +end + +local function s_greaterp(a, b) + return s_lessp(b, a) +end + +local function s_not_lessp(a, b) + return not s_lessp(a, b) +end + +local function s_not_greaterp(a, b) + return not s_greaterp(a, b) +end + +local function s_equalp(a, b) + return (a or -1) == (b or -1) +end + +local function s_not_equalp(a, b) + return (a or -1) ~= (b or -1) +end + +local function s_max(a, b) + if s_lessp(a, b) then + return b + else + return a + end +end + +local function s_min(a, b) + if s_lessp(a, b) then + return a + else + return b + end +end + +local function get_speed_restriction_from_table (tbl) + local strictest = -1 + for _, v in pairs(tbl) do + strictest = s_min(strictest, v) + end + if strictest == -1 then + return nil + end + return strictest +end + +local function set_speed_restriction (tbl, rtype, rval) + if rval then + tbl[rtype or "main"] = rval + end + return tbl +end + +local function set_speed_restriction_for_train (train, rtype, rval) + local t = train.speed_restrictions_t or {main = train.speed_restriction} + train.speed_restrictions_t = set_speed_restriction(t, rtype, rval) + train.speed_restriction = get_speed_restriction_from_table(t) +end + +local function merge_speed_restriction_from_aspect_to_train (train, asp) + return set_speed_restriction_for_train(train, asp.type, asp.main) +end + +return { + lessp = s_lessp, + greaterp = s_greaterp, + not_lessp = s_not_lessp, + not_greaterp = s_not_greaterp, + equalp = s_equalp, + not_equalp = s_not_equalp, + max = s_max, + min = s_min, + set_restriction = set_speed_restriction_for_train, + merge_aspect = merge_speed_restriction_from_aspect_to_train, +} diff --git a/advtrains/trackplacer.lua b/advtrains/trackplacer.lua index fe76290..9f97171 100644 --- a/advtrains/trackplacer.lua +++ b/advtrains/trackplacer.lua @@ -310,7 +310,7 @@ end minetest.register_craftitem("advtrains:trackworker",{ - description = attrans("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate rail/bumper/signal/etc."), + description = attrans("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate object"), groups = {cracky=1}, -- key=name, value=rating; rating=1..3. inventory_image = "advtrains_trackworker.png", wield_image = "advtrains_trackworker.png", @@ -337,7 +337,7 @@ minetest.register_craftitem("advtrains:trackworker",{ nnprefix, suffix=string.match(node.name, "^(.+)_([^_]+)$") rotation = "" if not tp.tracks[nnprefix] or not tp.tracks[nnprefix].twrotate[suffix] then - minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker!")) + minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker.")) return end end @@ -347,7 +347,7 @@ minetest.register_craftitem("advtrains:trackworker",{ -- is a track, we can query local can_modify, reason = advtrains.can_dig_or_modify_track(pos) if not can_modify then - local str = attrans("This track can not be rotated!") + local str = attrans("This track can not be rotated.") if reason then str = str .. " " .. reason end @@ -374,7 +374,7 @@ minetest.register_craftitem("advtrains:trackworker",{ if v==rotation then modpos=k end end if not modpos then - minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker!")) + minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker.")) return end advtrains.ndb.swap_node(pos, {name=nnprefix.."_"..suffix..modext[modpos+1], param2=node.param2}) @@ -401,7 +401,7 @@ minetest.register_craftitem("advtrains:trackworker",{ nnprefix, suffix=string.match(node.name, "^(.+)_([^_]+)$") rotation = "" if not tp.tracks[nnprefix] or not tp.tracks[nnprefix].twcycle[suffix] then - minetest.chat_send_player(user:get_player_name(), attrans("This node can't be changed using the trackworker!")) + minetest.chat_send_player(user:get_player_name(), attrans("This node can't be changed using the trackworker.")) return end end @@ -411,7 +411,7 @@ minetest.register_craftitem("advtrains:trackworker",{ -- is a track, we can query local can_modify, reason = advtrains.can_dig_or_modify_track(pos) if not can_modify then - local str = attrans("This track can not be changed!") + local str = attrans("This track can not be changed.") if reason then str = str .. " " .. reason end diff --git a/advtrains/tracks.lua b/advtrains/tracks.lua index 261818e..ee82426 100644 --- a/advtrains/tracks.lua +++ b/advtrains/tracks.lua @@ -446,7 +446,7 @@ Depending on the number of connections: local function can_dig_callback(pos, player) local ok, reason = advtrains.can_dig_or_modify_track(pos) if not ok and player then - minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed!") .. " " .. reason) + minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed.") .. " " .. reason) end return ok end @@ -468,10 +468,11 @@ function advtrains.register_tracks(tracktype, def, preset) drawtype = "mesh", paramtype="light", paramtype2="facedir", + use_texture_alpha = "blend", walkable = false, selection_box = { type = "fixed", - fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + fixed = {-1/2-1/16, -1/2, -1/2, 1/2+1/16, -1/2+2/16, 1/2}, }, mesh = def.shared_model or (def.models_prefix.."_"..img_suffix..def.models_suffix), @@ -645,17 +646,17 @@ end function sl.create_slopeplacer_on_place(def, preset) return function(istack, player, pt) if not pt.type=="node" then - minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node")) + minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: not pointing at node.")) return istack end local pos=pt.above if not pos then - minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node")) + minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: not pointing at node.")) return istack end local node=minetest.get_node(pos) if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].buildable_to then - minetest.chat_send_player(player:get_player_name(), attrans("Can't place: space occupied!")) + minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: space occupied.")) return istack end if not advtrains.check_track_protection(pos, player:get_player_name()) then @@ -708,17 +709,17 @@ function sl.create_slopeplacer_on_place(def, preset) pos=vector.subtract(pos, dirvec) end else - minetest.chat_send_player(player:get_player_name(), attrans("Can't place: Not enough slope items left (@1 required)", step)) + minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: Not enough slope items left (@1 required).", step)) end else - minetest.chat_send_player(player:get_player_name(), attrans("Can't place: There's no slope of length @1",step)) + minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: There's no slope of length @1.",step)) end return istack end step=step+1 pos=vector.add(pos, dirvec) end - minetest.chat_send_player(player:get_player_name(), attrans("Can't place: no supporting node at upper end.")) + minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: no supporting node at upper end.")) return itemstack end end diff --git a/advtrains/trainhud.lua b/advtrains/trainhud.lua index 6e69455..22aa6cf 100644 --- a/advtrains/trainhud.lua +++ b/advtrains/trainhud.lua @@ -281,6 +281,8 @@ function advtrains.hud_train_format(train, flip) local oc = lzb.checkpoints for i = 1, #oc do local spd = oc[i].speed + spd = advtrains.speed.min(spd, train.speed_restriction) + if spd == -1 then spd = nil end local c = not spd and "lime" or (type(spd) == "number" and (spd == 0) and "red" or "orange") or nil if c then ht[#ht+1] = sformat("130,10=(advtrains_hud_bg.png^[resize\\:30x5^[colorize\\:%s)",c) diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua index 187e5ba..f136577 100644 --- a/advtrains/trainlogic.lua +++ b/advtrains/trainlogic.lua @@ -139,11 +139,15 @@ minetest.register_on_joinplayer(function(player) advtrains.hhud[player:get_player_name()] = nil --independent of this, cause all wagons of the train which are loaded to reattach their players --needed because already loaded wagons won't call reattach_all() + local pname = player:get_player_name() local id=advtrains.player_to_train_mapping[pname] if id then for _,wagon in pairs(minetest.luaentities) do - if wagon.is_wagon and wagon.initialized and wagon.train_id==id then - wagon:reattach_all() + if wagon.is_wagon and wagon.initialized and wagon.id then + local wdata = advtrains.wagons[wagon.id] + if wdata and wdata.train_id == id then + wagon:reattach_all() + end end end end @@ -250,6 +254,11 @@ local callbacks_update, run_callbacks_update = mkcallback("update") local callbacks_create, run_callbacks_create = mkcallback("create") local callbacks_remove, run_callbacks_remove = mkcallback("remove") +-- required to call from couple.lua +function advtrains.update_train_start_and_end(train) + recalc_end_index(train) + run_callbacks_update(train.id, train) +end -- train_ensure_init: responsible for creating a state that we can work on, after one of the following events has happened: -- - the train's path got cleared @@ -386,7 +395,7 @@ function advtrains.train_step_b(id, train, dtime) -- interlocking speed restriction elseif train.speed_restriction then --atprint("in train_step_b: applying interlocking speed restriction",train.speed_restriction) - sit_v_cap = train.speed_restriction + sit_v_cap = math.min(sit_v_cap or math.huge, train.speed_restriction) end --apply off-track handling: @@ -394,7 +403,7 @@ function advtrains.train_step_b(id, train, dtime) local back_off_track=train.end_index<train.path_trk_b train.off_track = front_off_track or back_off_track - if back_off_track and (not v_cap or v_cap > 1) then + if back_off_track and (not sit_v_cap or sit_v_cap > 1) then --atprint("in train_step_b: applying back_off_track") sit_v_cap = 1 elseif front_off_track then @@ -417,9 +426,11 @@ function advtrains.train_step_b(id, train, dtime) ctrl_lever = userc else if train.atc_command then - if (not train.atc_delay or train.atc_delay<=0) and not train.atc_wait_finish then + if (not train.atc_delay or train.atc_delay<=0) + and not train.atc_wait_finish + and not train.atc_wait_autocouple then advtrains.atc.execute_atc_command(id, train) - else + elseif train.atc_delay and train.atc_delay > 0 then train.atc_delay=train.atc_delay-dtime end elseif train.atc_delay then @@ -587,12 +598,77 @@ function advtrains.train_step_b(id, train, dtime) else --atprint("in train_step_b: movement calculation reusing from LZB newindex=",new_index_curr_tv) end - + -- if the zeroappr mechanism has hit, go no further than zeroappr index if lzb_next_zero_barrier and new_index_curr_tv > lzb_next_zero_barrier then --atprint("in train_step_b: Zero barrier hit, clipping to newidx_tv=",new_index_curr_tv, "zb_idx=",lzb_next_zero_barrier) new_index_curr_tv = lzb_next_zero_barrier end + + -- New same-track collision system - check for any other trains within the range we're going to move + -- do the checks if we either are moving or about to start moving + if new_index_curr_tv > train.index or accelerating then -- only if train is actually advancing + -- Note: duplicate code from path_project() because of subtle differences: no frac processing and scanning all occupations + --[[train.debug = "" + local atdebug = function(t, ...) + local text=advtrains.print_concat_table({t, ...}) + train.debug = train.debug..text.."\n" + end]] + local base_idx = atfloor(new_index_curr_tv + 1) + local base_pos = advtrains.path_get(train, base_idx) + local base_cn = train.path_cn[base_idx] + --atdebug(id,"Begin Checking for on-track collisions new_idx=",new_index_curr_tv,"base_idx=",base_idx,"base_pos=",base_pos,"base_cn=",base_cn) + -- query occupation + local occ = advtrains.occ.reverse_lookup_sel(base_pos, "close_proximity") + -- iterate other trains + for otid, ob_idx in pairs(occ) do + if otid ~= id then + --atdebug(id,"Found other train",otid," with matching index ",ob_idx) + -- Phase 1 - determine if trains are facing and which is the relefant stpo index + local otrn = advtrains.trains[otid] + + -- retrieve other train's cn and cp + local ocn = otrn.path_cn[ob_idx] + local ocp = otrn.path_cp[ob_idx] + + local target_is_inside, ref_index, facing + + if base_cn == ocn then + -- same direction + ref_index = otrn.end_index + same_dir = true + target_is_inside = (ob_idx >= ref_index) + --atdebug("Same direction: ref_index",ref_index,"inside=",target_is_inside) + elseif base_cn == ocp then + -- facing trains - subtract index frac + ref_index = otrn.index + same_dir = false + target_is_inside = (ob_idx <= ref_index) + --atdebug("Facing direction: ref_index",ref_index,"inside=",target_is_inside) + end + + -- Phase 2 - project ref_index back onto our path and check again (necessary because there might be a turnout on the way and we are driving into the flank + if target_is_inside then + local our_index = advtrains.path_project(otrn, ref_index, id, "before_end") + --atdebug("Backprojected our_index",our_index) + if our_index and our_index <= new_index_curr_tv + and our_index >= train.index then --FIX: If train was already past the collision point in the previous step, there is no collision! Fixes bug with split_at_index + -- ON_TRACK COLLISION IS HAPPENING + -- the actual collision is handled in train_step_c, so set appropriate signal variables + train.ontrack_collision_info = { + otid = otid, + same_dir = same_dir, + } + -- clip newindex + --atdebug("-- Collision detected!") + new_index_curr_tv = our_index + end + end + end + end + end + + -- ## Movement happens here ## train.index = new_index_curr_tv recalc_end_index(train) @@ -638,21 +714,45 @@ function advtrains.train_step_c(id, train, dtime) advtrains.spawn_wagons(id) train.check_trainpartload=2 end - - --- 8. check for collisions with other trains and damage players --- - + local train_moves=(train.velocity~=0) - - --- Check whether this train can be coupled to another, and set couple entities accordingly - if not train.was_standing and not train_moves then - advtrains.train_check_couples(train) + local very_short_train = train.trainlen < 3 + + --- On-track collision handling - detected in train_step_b, but handled here so all other train movements have already happened. + if train.ontrack_collision_info then + train.velocity = 0 + train.acceleration = 0 + --advtrains.atc.train_reset_command(train) will occur in couple_initiate_with if required + + local otrn = advtrains.trains[train.ontrack_collision_info.otid] + + if otrn.velocity == 0 then -- other train must be standing, else don't initiate coupling + advtrains.couple_initiate_with(train, otrn, not train.ontrack_collision_info.same_dir) + else + -- other collision - stop any ATC control + advtrains.atc.train_reset_command(train) + end + + train.ontrack_collision_info = nil + train.couples_up_to_date = true end - train.was_standing = not train_moves - + + -- handle couples if on_track collision handling did not fire if train_moves then - + train.couples_up_to_date = nil + elseif not train.couples_up_to_date then + if not very_short_train then -- old coupling system is buggy for short trains + advtrains.train_check_couples(train) -- no guarantee for train order here + end + train.couples_up_to_date = true + end + + --- 8. check for collisions with other trains and damage players --- + if train_moves then + -- Note: this code handles collisions with trains that are not on the same path as the current train + -- The same-track collisions and coupling handling is found in couple.lua and handled from train_step_b() and code 2 blocks above. local collided = false - local coll_grace=1 + local coll_grace=2 local collindex = advtrains.path_get_index_by_offset(train, train.index, -coll_grace) local collpos = advtrains.path_get(train, atround(collindex)) if collpos then @@ -663,13 +763,14 @@ function advtrains.train_step_c(id, train, dtime) local testpos=vector.add(rcollpos, {x=x, y=0, z=z}) --- 8a Check collision --- if not collided then - - local col_tr = advtrains.occ.check_collision(testpos, id) - if col_tr then - advtrains.train_check_couples(train) - train.velocity = 0 - advtrains.atc.train_reset_command(train) - collided = true + if not very_short_train then -- position collision system is buggy for short trains + local col_tr = advtrains.occ.check_collision(testpos, id) + if col_tr then + train.velocity = 0 + train.acceleration = 0 + advtrains.atc.train_reset_command(train) + collided = true + end end --- 8b damage players --- @@ -703,7 +804,7 @@ function advtrains.train_step_c(id, train, dtime) local objs = minetest.get_objects_inside_radius(rcollpos, 2) for _,obj in ipairs(objs) do if not obj:is_player() and obj:get_armor_groups().fleshy and obj:get_armor_groups().fleshy > 0 - and obj:get_luaentity() and obj:get_luaentity().name~="signs:text" then + and obj:get_luaentity() and obj:get_luaentity().name~="signs_lib:text" then obj:punch(obj, 1, { full_punch_interval = 1.0, damage_groups = {fleshy = 1000}, }, nil) end end @@ -899,7 +1000,7 @@ function advtrains.remove_train(id) run_callbacks_remove(id, train) - advtrains.path_invalidate(train) + advtrains.path_invalidate(train, true) advtrains.couple_invalidate(train) local tp = train.trainparts @@ -952,7 +1053,16 @@ function advtrains.update_trainpart_properties(train_id, invert_flipstate) if data then local wagon = advtrains.wagon_prototypes[data.type or data.entity_name] if not wagon then - atwarn("Wagon '",data.type,"' couldn't be found. Please check that all required modules are loaded!") + local ent = advtrains.wagon_objects[w_id] + local pdesc + if ent then + pdesc = "at " .. minetest.pos_to_string(ent:get_pos()) + elseif train.last_pos then + pdesc = "near " .. minetest.pos_to_string(train.last_pos) + else + pdesc = "at an unknown location" + end + atwarn(string.format("Wagon %q %s could not be found. Please check that all required modules are loaded!", data.type, pdesc)) wagon = advtrains.wagon_prototypes["advtrains:wagon_placeholder"] end @@ -1019,55 +1129,9 @@ function advtrains.spawn_wagons(train_id) end end -function advtrains.split_train_at_fc(train, count_empty, length_limit) - -- splits train at first different current FC by convention, - -- locomotives have empty FC so are ignored - -- count_empty is used to split off locomotives - -- length_limit limits the length of the first train to length_limit wagons - local train_id = train.id - local fc = false - local ind = 0 - for i = 1, #train.trainparts do - local w_id = train.trainparts[i] - local data = advtrains.wagons[w_id] - if length_limit and i > length_limit then - ind = i - break - end - if data then - local wfc = advtrains.get_cur_fc(data) - if wfc ~= "" or count_empty then - if fc then - if fc ~= wfc then - ind = i - break - end - else - fc = wfc - end - end - end - end - if ind > 0 then - return advtrains.split_train_at_index(train, ind), fc - end - if fc then - return nil, fc - end -end - -function advtrains.train_step_fc(train) - for i=1,#train.trainparts do - local w_id = train.trainparts[i] - local data = advtrains.wagons[w_id] - if data then - advtrains.step_fc(data) - end - end -end - function advtrains.split_train_at_index(train, index) -- this function splits a train at index, creating a new train from the back part of the train. + --atdebug("split_train_at_index invoked on",train.id,"index",index) local train_id=train.id if index > #train.trainparts then @@ -1090,6 +1154,7 @@ function advtrains.split_train_at_index(train, index) local p_index=advtrains.path_get_index_by_offset(train, train.index, - data.pos_in_train + wagon.wagon_span) local pos, connid, frac = advtrains.path_getrestore(train, p_index) + --atdebug("new train position p_index",p_index,"pos",pos,"connid",connid,"frac",frac) local tp = {} for k,v in ipairs(train.trainparts) do if k >= index then @@ -1099,12 +1164,14 @@ function advtrains.split_train_at_index(train, index) end advtrains.update_trainpart_properties(train_id) recalc_end_index(train) + --atdebug("old train index",train.index,"end_index",train.end_index) run_callbacks_update(train_id, train) --create subtrain local newtrain_id=advtrains.create_new_train_at(pos, connid, frac, tp) local newtrain=advtrains.trains[newtrain_id] - + --atdebug("new train created with ID",newtrain_id,"index",newtrain.index,"end_index",newtrain.end_index) + newtrain.velocity=train.velocity -- copy various properties from the old to the new train newtrain.door_open = train.door_open @@ -1113,6 +1180,7 @@ function advtrains.split_train_at_index(train, index) newtrain.line = train.line newtrain.routingcode = train.routingcode newtrain.speed_restriction = train.speed_restriction + newtrain.speed_restrictions_t = table.copy(train.speed_restrictions_t or {main=train.speed_restriction}) newtrain.is_shunt = train.is_shunt newtrain.points_split = advtrains.merge_tables(train.points_split) newtrain.autocouple = train.autocouple @@ -1121,167 +1189,6 @@ function advtrains.split_train_at_index(train, index) end -function advtrains.split_train_at_wagon(wagon_id) - --get train - local data = advtrains.wagons[wagon_id] - advtrains.split_train_at_index(advtrains.trains[data.train_id], data.pos_in_trainparts) -end - --- coupling -local CPL_CHK_DST = -1 -local CPL_ZONE = 2 - --- train.couple_* contain references to ObjectRefs of couple objects, which contain all relevant information --- These objectRefs will delete themselves once the couples no longer match -local function createcouple(pos, train1, t1_is_front, train2, t2_is_front) - local id1 = train1.id - local id2 = train2.id - if train1.autocouple or train2.autocouple then - -- couple trains - train1.autocouple = nil - train2.autocouple = nil - minetest.after(0, advtrains.safe_couple_trains, id1, id2, t1_is_front, t2_is_front, false, false, train1.velocity, train2.velocity) - return - end - - local obj=minetest.add_entity(pos, "advtrains:couple") - if not obj then error("Failed creating couple object!") return end - local le=obj:get_luaentity() - le.train_id_1=id1 - le.train_id_2=id2 - le.t1_is_front=t1_is_front - le.t2_is_front=t2_is_front - --atdebug("created couple between",train1.id,t1_is_front,train2.id,t2_is_front) - if t1_is_front then - train1.cpl_front = obj - else - train1.cpl_back = obj - end - if t2_is_front then - train2.cpl_front = obj - else - train2.cpl_back = obj - end - -end - -function advtrains.train_check_couples(train) - --atdebug("rechecking couples") - if train.cpl_front then - if not train.cpl_front:get_yaw() then - -- objectref is no longer valid. reset. - train.cpl_front = nil - end - end - if not train.cpl_front then - -- recheck front couple - local front_trains, pos = advtrains.occ.get_occupations(train, atround(train.index) + CPL_CHK_DST) - if advtrains.is_node_loaded(pos) then -- if the position is loaded... - for tid, idx in pairs(front_trains) do - local other_train = advtrains.trains[tid] - if not advtrains.train_ensure_init(tid, other_train) then - atwarn("Train",tid,"is not initialized! Couldn't check couples!") - return - end - --atdebug(train.id,"front: ",idx,"on",tid,atround(other_train.index),atround(other_train.end_index)) - if other_train.velocity == 0 then - if idx>=other_train.index and idx<=other_train.index + CPL_ZONE then - createcouple(pos, train, true, other_train, true) - break - end - if idx<=other_train.end_index and idx>=other_train.end_index - CPL_ZONE then - createcouple(pos, train, true, other_train, false) - break - end - end - end - end - end - if train.cpl_back then - if not train.cpl_back:get_yaw() then - -- objectref is no longer valid. reset. - train.cpl_back = nil - end - end - if not train.cpl_back then - -- recheck back couple - local back_trains, pos = advtrains.occ.get_occupations(train, atround(train.end_index) - CPL_CHK_DST) - if advtrains.is_node_loaded(pos) then -- if the position is loaded... - for tid, idx in pairs(back_trains) do - local other_train = advtrains.trains[tid] - if not advtrains.train_ensure_init(tid, other_train) then - atwarn("Train",tid,"is not initialized! Couldn't check couples!") - return - end - if other_train.velocity == 0 then - if idx>=other_train.index and idx<=other_train.index + CPL_ZONE then - createcouple(pos, train, false, other_train, true) - break - end - if idx<=other_train.end_index and idx>=other_train.end_index - CPL_ZONE then - createcouple(pos, train, false, other_train, false) - break - end - end - end - end - end -end - -function advtrains.couple_invalidate(train) - if train.cpl_back then - train.cpl_back:remove() - train.cpl_back = nil - end - if train.cpl_front then - train.cpl_front:remove() - train.cpl_front = nil - end - train.was_standing = nil -end - --- relevant code for this comment is in couple.lua - ---there are 4 cases: ---1/2. F<->R F<->R regular, put second train behind first ---->frontpos of first train will match backpos of second ---3. F<->R R<->F flip one of these trains, take the other as new train ---->backpos's will match ---4. R<->F F<->R flip one of these trains and take it as new parent ---->frontpos's will match - - -function advtrains.do_connect_trains(first_id, second_id, vel) - local first, second=advtrains.trains[first_id], advtrains.trains[second_id] - - if not advtrains.train_ensure_init(first_id, first) then - atwarn("Train",first_id,"is not initialized! Operation aborted!") - return - end - if not advtrains.train_ensure_init(second_id, second) then - atwarn("Train",second_id,"is not initialized! Operation aborted!") - return - end - - local first_wagoncnt=#first.trainparts - local second_wagoncnt=#second.trainparts - - for _,v in ipairs(second.trainparts) do - table.insert(first.trainparts, v) - end - - advtrains.remove_train(second_id) - if vel < 0 then - advtrains.invert_train(first_id) - vel = -vel - end - first.velocity= vel or 0 - - advtrains.update_trainpart_properties(first_id) - advtrains.couple_invalidate(first) - return true -end - function advtrains.invert_train(train_id) local train=advtrains.trains[train_id] @@ -1311,15 +1218,14 @@ function advtrains.invert_train(train_id) advtrains.update_trainpart_properties(train_id, true) -- recalculate path - advtrains.train_ensure_init(train_id, train) -- If interlocking present, check whether this train is in a section and then set as shunt move after reversion if advtrains.interlocking and train.il_sections and #train.il_sections > 0 then train.is_shunt = true - train.speed_restriction = advtrains.SHUNT_SPEED_MAX + advtrains.speed.set_restriction(train, "main", advtrains.SHUNT_SPEED_MAX) else train.is_shunt = false - train.speed_restriction = nil + advtrains.speed.set_restriction(train, "main", -1) end end @@ -1337,7 +1243,7 @@ function advtrains.invalidate_all_paths(pos) local tab if pos then -- if position given, check occupation system - tab = advtrains.occ.get_trains_over(pos) + tab = advtrains.occ.reverse_lookup_quick(pos) else tab = advtrains.trains end @@ -1350,7 +1256,7 @@ end -- Calls invalidate_path_ahead on all trains occupying (having paths over) this node -- Can be called during train step. function advtrains.invalidate_all_paths_ahead(pos) - local tab = advtrains.occ.get_trains_over(pos) + local tab = advtrains.occ.reverse_lookup_sel(pos, "first_ahead") for id,index in pairs(tab) do local train = advtrains.trains[id] @@ -1368,44 +1274,61 @@ function advtrains.invalidate_path(id) end --not blocking trains group -function advtrains.train_collides(node) - if node and minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].walkable then + +if minetest.settings:get_bool("advtrains_forgiving_collision") then + function advtrains.train_collides(node) + if node and minetest.registered_nodes[node.name] then + local ndef = minetest.registered_nodes[node.name] + -- if the node is drawtype normal (that is a full cube) then it does collide + if ndef.drawtype == "normal" then + -- except if it is not_blocking_trains + if ndef.groups.not_blocking_trains and ndef.groups.not_blocking_trains ~= 0 then + return false + end + return true + end + end + return false + end +else + function advtrains.train_collides(node) + if node and minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].walkable then if not minetest.registered_nodes[node.name].groups.not_blocking_trains then return true end - end - return false -end - -local nonblocknodes={ - "default:fence_wood", - "default:fence_acacia_wood", - "default:fence_aspen_wood", - "default:fence_pine_wood", - "default:fence_junglewood", - "default:torch", - "bones:bones", - - "default:sign_wall", - "signs:sign_wall", - "signs:sign_wall_blue", - "signs:sign_wall_brown", - "signs:sign_wall_orange", - "signs:sign_wall_green", - "signs:sign_yard", - "signs:sign_wall_white_black", - "signs:sign_wall_red", - "signs:sign_wall_white_red", - "signs:sign_wall_yellow", - "signs:sign_post", - "signs:sign_hanging", - - -} -minetest.after(0, function() - for _,name in ipairs(nonblocknodes) do - if minetest.registered_nodes[name] then - minetest.registered_nodes[name].groups.not_blocking_trains=1 end + return false end -end) + + local nonblocknodes={ + "default:fence_wood", + "default:fence_acacia_wood", + "default:fence_aspen_wood", + "default:fence_pine_wood", + "default:fence_junglewood", + "default:torch", + "bones:bones", + + "default:sign_wall", + "signs:sign_wall", + "signs:sign_wall_blue", + "signs:sign_wall_brown", + "signs:sign_wall_orange", + "signs:sign_wall_green", + "signs:sign_yard", + "signs:sign_wall_white_black", + "signs:sign_wall_red", + "signs:sign_wall_white_red", + "signs:sign_wall_yellow", + "signs:sign_post", + "signs:sign_hanging", + + } + minetest.after(0, function() + for _,name in ipairs(nonblocknodes) do + if minetest.registered_nodes[name] then + minetest.registered_nodes[name].groups.not_blocking_trains=1 + end + end + end) +end diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index e9b6d7a..f9b29bb 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -200,7 +200,7 @@ function wagon:on_punch(puncher, time_from_last_punch, tool_capabilities, direct end for listname, _ in pairs(inv:get_lists()) do if not inv:is_empty(listname) then - minetest.chat_send_player(puncher:get_player_name(), attrans("The wagon's inventory is not empty!")); + minetest.chat_send_player(puncher:get_player_name(), attrans("The wagon's inventory is not empty.")); return end end @@ -364,6 +364,15 @@ function wagon:on_step(dtime) outside = outside .."\n!!! Train off track !!!" end + -- liquid container: display liquid contents in infotext + if self.techage_liquid_capacity then + if data.techage_liquid and data.techage_liquid.name then + outside = outside .."\nLiquid: "..data.techage_liquid.name..", "..data.techage_liquid.amount.." units" + else + outside = outside .."\nLiquid: empty" + end + end + if self.infotext_cache~=outside then self.object:set_properties({infotext=outside}) self.infotext_cache=outside @@ -413,13 +422,38 @@ function wagon:on_step(dtime) end -- Calculate new position, yaw and direction vector + -- note: "index" is needed to be the center index, required by door code local index = advtrains.path_get_index_by_offset(train, train.index, -data.pos_in_train) - local pos, yaw, npos, npos2 = advtrains.path_get_interpolated(train, index) - local vdir = vector.normalize(vector.subtract(npos2, npos)) + local pos, yaw, npos, npos2, vdir + + -- use new position logic? + if self.wheel_positions then + -- request two positions, calculate difference and yaw from this + -- depending on flipstate, need to invert wheel pos indices -> wheelpos * fct + local index1 = advtrains.path_get_index_by_offset(train, index, self.wheel_positions[1] * fct) + local index2 = advtrains.path_get_index_by_offset(train, index, self.wheel_positions[2] * fct) + local pos1 = advtrains.path_get_interpolated(train, index1) + local pos2 = advtrains.path_get_interpolated(train, index2) + npos = advtrains.path_get(train, atfloor(index)) -- need npos just for node loaded check + -- calculate center of 2 positions and vdir vector + -- if wheel positions are asymmetric, needs to weight by the difference! + local fact = self.wheel_positions[1] / (self.wheel_positions[1]-self.wheel_positions[2]) + pos = {x=pos1.x-(pos1.x-pos2.x)*fact, y=pos1.y-(pos1.y-pos2.y)*fact, z=pos1.z-(pos1.z-pos2.z)*fact} + if data.wagon_flipped then + vdir = vector.normalize(vector.subtract(pos2, pos1)) + else + vdir = vector.normalize(vector.subtract(pos1, pos2)) + end + yaw = math.atan2(-vdir.x, vdir.z) + else + --old position logic (for small wagons): use center index and just get position + pos, yaw, npos, npos2 = advtrains.path_get_interpolated(train, index) + vdir = vector.normalize(vector.subtract(npos2, npos)) + end --automatic get_on --needs to know index and path - if self.door_entry and train.door_open and train.door_open~=0 and train.velocity==0 then + if train.velocity==0 and self.door_entry and train.door_open and train.door_open~=0 then --using the mapping created by the trainlogic globalstep for i, ino in ipairs(self.door_entry) do --fct is the flipstate flag from door animation above @@ -470,28 +504,32 @@ function wagon:on_step(dtime) end end - --DisCouple + -- Spawn discouple object when train stands, in all other cases remove it. -- FIX: Need to do this after the yaw calculation - if is_in_loaded_area and data.pos_in_trainparts and data.pos_in_trainparts>1 then - if train.velocity==0 then - if not self.discouple or not self.discouple.object:get_yaw() then - atprint(self.id,"trying to spawn discouple") - local dcpl_pos = vector.add(pos, {y=0, x=-math.sin(yaw)*self.wagon_span, z=math.cos(yaw)*self.wagon_span}) - local object=minetest.add_entity(dcpl_pos, "advtrains:discouple") - if object then - local le=object:get_luaentity() - le.wagon=self - --box is hidden when attached, so unuseful. - --object:set_attach(self.object, "", {x=0, y=0, z=self.wagon_span*10}, {x=0, y=0, z=0}) - self.discouple=le - end - end - else - if self.discouple and self.discouple.object:get_yaw() then - self.discouple.object:remove() - atprint(self.id," removing discouple") + if train.velocity==0 and is_in_loaded_area and data.pos_in_trainparts and data.pos_in_trainparts>1 then + if not self.discouple or not self.discouple.object:get_yaw() then + atprint(self.id,"trying to spawn discouple") + local dcpl_pos = vector.add(pos, {y=0, x=-math.sin(yaw)*self.wagon_span, z=math.cos(yaw)*self.wagon_span}) + local object=minetest.add_entity(dcpl_pos, "advtrains:discouple") + if object then + local le=object:get_luaentity() + le.wagon=self + --box is hidden when attached, so unuseful. + --object:set_attach(self.object, "", {x=0, y=0, z=self.wagon_span*10}, {x=0, y=0, z=0}) + self.discouple=le end end + else + if self.discouple and self.discouple.object:get_yaw() then + self.discouple.object:remove() + atprint(self.id," removing discouple") + end + end + + -- object yaw (corrected by flipstate) + local oyaw = yaw + if data.wagon_flipped then + oyaw = yaw + math.pi end --FIX: use index of the wagon, not of the train. @@ -500,10 +538,6 @@ function wagon:on_step(dtime) local velocityvec = vector.multiply(vdir, velocity) local accelerationvec = vector.multiply(vdir, acceleration) - if data.wagon_flipped then - yaw=yaw+math.pi - end - -- this timer runs off every 2 seconds. self.updatepct_timer=(self.updatepct_timer or 0)-dtime local updatepct_timer_elapsed = self.updatepct_timer<=0 @@ -540,19 +574,19 @@ function wagon:on_step(dtime) or not vector.equals(velocityvec, self.old_velocity_vector) or not self.old_acceleration_vector or not vector.equals(accelerationvec, self.old_acceleration_vector) - or self.old_yaw~=yaw + or self.old_yaw~=oyaw or updatepct_timer_elapsed then--only send update packet if something changed self.object:set_pos(pos) self.object:set_velocity(velocityvec) self.object:set_acceleration(accelerationvec) - if #self.seats > 0 and self.old_yaw ~= yaw then + if #self.seats > 0 and self.old_yaw ~= oyaw then if not self.player_yaw then self.player_yaw = {} end if not self.old_yaw then - self.old_yaw=yaw + self.old_yaw=oyaw end for _,name in pairs(data.seatp) do local p = minetest.get_player_by_name(name) @@ -562,11 +596,11 @@ function wagon:on_step(dtime) self.player_yaw[name] = p:get_look_horizontal()-self.old_yaw end -- set player looking direction using calculated offset - p:set_look_horizontal((self.player_yaw[name] or 0)+yaw) + p:set_look_horizontal((self.player_yaw[name] or 0)+oyaw) end end self.turning = true - elseif self.old_yaw == yaw then + elseif self.old_yaw == oyaw then -- train is no longer turning self.turning = false end @@ -576,9 +610,9 @@ function wagon:on_step(dtime) if data.wagon_flipped then pitch = -pitch end - self.object:set_rotation({x=pitch, y=yaw, z=0}) + self.object:set_rotation({x=pitch, y=oyaw, z=0}) else - self.object:set_yaw(yaw) + self.object:set_yaw(oyaw) end if self.update_animation then @@ -597,7 +631,7 @@ function wagon:on_step(dtime) self.old_velocity_vector=velocityvec self.old_velocity = train.velocity self.old_acceleration_vector=accelerationvec - self.old_yaw=yaw + self.old_yaw=oyaw atprintbm("wagon step", t) end @@ -664,7 +698,7 @@ function wagon:on_rightclick(clicker) end local doors_open = self:train().door_open~=0 or clicker:get_player_control().sneak - local allow, rsn=false, "Wagon has no seats!" + local allow, rsn=false, attrans("This wagon has no seats.") for _,sgr in ipairs(self.assign_to_seat_group) do allow, rsn = self:check_seat_group_access(pname, sgr) if allow then @@ -675,16 +709,16 @@ function wagon:on_rightclick(clicker) self:get_on(clicker, seatid) return else - rsn="Wagon is full." + rsn=attrans("This wagon is full.") end else - rsn="Doors are closed! (try holding sneak key!)" + rsn=attrans("Doors are closed! (Try holding sneak key!)") end end end end end - minetest.chat_send_player(pname, attrans("Can't get on: "..rsn)) + minetest.chat_send_player(pname, rsn or attrans("You can't get on this wagon.")) else self:show_get_on_form(pname) end @@ -1213,7 +1247,7 @@ function wagon:seating_from_key_helper(pname, fields, no) self:show_bordcom(pname) end if fields.dcwarn then - minetest.chat_send_player(pname, attrans("Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!")) + minetest.chat_send_player(pname, attrans("Doors are closed. Use Sneak+rightclick to ignore the closed doors and get off.")) end if fields.off then self:get_off(no) @@ -1222,7 +1256,7 @@ end function wagon:check_seat_group_access(pname, sgr) local data = advtrains.wagons[self.id] if self.seat_groups[sgr].driving_ctrl_access and not (advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist)) then - return false, "Not allowed to access a driver stand!" + return false, attrans("You are not allowed to access the driver stand.") end if self.seat_groups[sgr].driving_ctrl_access then advtrains.log("Drive", pname, self.object:getpos(), self:train().text_outside) @@ -1240,70 +1274,6 @@ function wagon:reattach_all() end end -local function check_twagon_owner(train, b_first, pname) - local wtp = b_first and 1 or #train.trainparts - local wid = train.trainparts[wtp] - local wdata = advtrains.wagons[wid] - if wdata then - return advtrains.check_driving_couple_protection(pname, wdata.owner, wdata.whitelist) - end - return false -end - -function advtrains.safe_couple_trains(id1, id2, t1f, t2f, pname, try_run,v1,v2) - - if pname and not minetest.check_player_privs(pname, "train_operator") then - minetest.chat_send_player(pname, "Missing train_operator privilege") - return false - end - - local train1=advtrains.trains[id1] - local train2=advtrains.trains[id2] - - if not advtrains.train_ensure_init(id1, train1) - or not advtrains.train_ensure_init(id2, train2) then - return false - end - local wck_t1, wck_t2 - if pname then - wck_t1 = check_twagon_owner(train1, t1f, pname) - wck_t2 = check_twagon_owner(train2, t2f, pname) - end - if (wck_t1 or wck_t2) or not pname then - if not v1 then - v1 = 0 - end - if not v2 then - v2 = 0 - end - if try_run then - return true - end - if t1f then - if t2f then - v1 = -v1 - advtrains.invert_train(id1) - advtrains.do_connect_trains(id1, id2, v1+v2) - else - advtrains.do_connect_trains(id2, id1, v1+v2) - end - else - if t2f then - advtrains.do_connect_trains(id1, id2, v1+v2) - else - v2 = -v2 - advtrains.invert_train(id2) - advtrains.do_connect_trains(id1, id2, v1+v2) - end - end - return true - else - minetest.chat_send_player(pname, "You must be authorized for at least one wagon.") - return false - end -end - - function advtrains.safe_decouple_wagon(w_id, pname, try_run) if not minetest.check_player_privs(pname, "train_operator") then minetest.chat_send_player(pname, "Missing train_operator privilege") @@ -1380,14 +1350,23 @@ function advtrains.register_wagon(sysname_p, prototype, desc, inv_img, nincreati minetest.register_entity(":"..sysname,prototype) advtrains.wagon_prototypes[sysname] = prototype + --group classification to make recipe searching easier + local wagon_groups = { not_in_creative_inventory = nincreative and 1 or 0} + if prototype.is_locomotive then wagon_groups['at_loco'] = 1 end + if prototype.seat_groups then + if prototype.seat_groups.dstand then wagon_groups['at_control'] = 1 end + if prototype.seat_groups.pass then wagon_groups['at_pax'] = 1 end + end + if prototype.has_inventory then wagon_groups['at_freight'] = 1 end + minetest.register_craftitem(":"..sysname, { description = desc, inventory_image = inv_img, wield_image = inv_img, stack_max = 1, - groups = { not_in_creative_inventory = nincreative and 1 or 0}, - + groups = wagon_groups, + on_place = function(itemstack, placer, pointed_thing) if not pointed_thing.type == "node" then return @@ -1448,3 +1427,64 @@ advtrains.register_wagon("advtrains:wagon_placeholder", { drops={}, }, "Wagon placeholder", "advtrains_wagon_placeholder.png", true) + + +-- Helper function to retrieve the wagon at a certain position in a train, given its train ID and the desired index within that train's path +-- +-- Returns: wagon_num, wagon_id, wagon_data, offset_from_center +-- wagon_num: The n'th wagon in the train (index into "trainparts" table) +-- wagon_id: The wagon ID. Obtain wagon data from advtrains.wagons[wagon_id], and subsequently the wagon prototype via advtrains.get_wagon_prototype(data) +-- offset_from_center: The offset (an absolute distance value) from the center point of the wagon. Positive is towards the end of the train, negative towards the start. (note that this is inverse to the counting direction of the index!) +-- +--[[ To get the wagon standing at a certain world position, you first need to retrieve the index via the occupation table, as follows: + local trains = advtrains.occ.get_trains_at(pos) + for train_id, index in pairs(trains) do + local wagon_num, wagon_id, wagon_data, offset_from_center = advtrains.get_wagon_at_index(train_id, index) + if wagon_num then + ... + end + end +]]-- +function advtrains.get_wagon_at_index(train_id, w_index) + local train = advtrains.trains[train_id] + if not train then error("Passed train id "..train_id.." doesnt exist") end + -- ensure init - always required + advtrains.train_ensure_init(train_id, train) + -- Use path dist to determine the offset from the start of the train + local dstart = advtrains.path_get_path_dist_fractional(train, train.index) + local dtarget = advtrains.path_get_path_dist_fractional(train, w_index) + local dist_from_start = dstart - dtarget -- NOTE: dist_from_start is supposed to be positive, but dtarget will be smaller than dstart + -- if dist_from_start is <0, we are outside of train + if dist_from_start < 0 then + return nil + end + -- scan over wagons to see if dist_from_start falls into its window + local start_pos = 0 + local center_pos + local end_pos + local i = 1 + while train.trainparts[i] do + local w_id = train.trainparts[i] + -- get wagon prototype to retrieve wagon span + local wdata = advtrains.wagons[w_id] + if wdata then + local wtype, wproto = advtrains.get_wagon_prototype(wdata) + local wagon_span = wproto.wagon_span + -- determine center and end pos + center_pos = start_pos + wagon_span + end_pos = center_pos + wagon_span + if start_pos <= dist_from_start and dist_from_start < end_pos then + -- Found the correct wagon in the train! + local offset_from_center = dist_from_start - center_pos + return i, w_id, wdata, offset_from_center + end + -- go on + start_pos = end_pos + else + error("Wagon "..w_id.." from train "..train_id.." doesnt exist!") + end + i = i + 1 + end + -- nothing found, dist must be further back + return nil +end
\ No newline at end of file diff --git a/advtrains_interlocking/approach.lua b/advtrains_interlocking/approach.lua index f60468a..eecf09a 100644 --- a/advtrains_interlocking/approach.lua +++ b/advtrains_interlocking/approach.lua @@ -14,19 +14,19 @@ local SHUNT_SPEED_MAX = advtrains.SHUNT_SPEED_MAX local il = advtrains.interlocking -local function get_over_function(speed, shunt) +local function get_over_function(speed, shunt, asptype) return function(pos, id, train, index, speed, lzbdata) if speed == 0 and minetest.settings:get_bool("at_il_force_lzb_halt") then atwarn(id,"overrun LZB 0 restriction (red signal) ",pos) -- Set train 1 index backward. Hope this does not lead to bugs... --train.index = index - 0.5 - train.speed_restriction = 0 + advtrains.speed.set_restriction(train, "main", 0) --TODO temporary --advtrains.drb_dump(id) --error("Debug: "..id.." triggered LZB-0") else - train.speed_restriction = speed + advtrains.speed.set_restriction(train, asptype, speed or -1) train.is_shunt = shunt end --atdebug("train drove over IP: speed=",speed,"shunt=",shunt) @@ -94,6 +94,7 @@ advtrains.tnc_register_on_approach(function(pos, id, train, index, has_entered, end -- nspd can now be: 1. !=0: new speed restriction, 2. =0: stop here or 3. nil: keep travspd if nspd then + travspd = nspd if nspd == -1 then travspd = nil else @@ -106,7 +107,7 @@ advtrains.tnc_register_on_approach(function(pos, id, train, index, has_entered, lspd = travspd local udata = {signal_pos = spos} - local callback = get_over_function(lspd, travsht) + local callback = get_over_function(lspd, travsht, asp.type) lzbdata.il_shunt = travsht lzbdata.il_speed = travspd --atdebug("new lzbdata",lzbdata) diff --git a/advtrains_interlocking/ars.lua b/advtrains_interlocking/ars.lua index 434ae2c..4f50df9 100644 --- a/advtrains_interlocking/ars.lua +++ b/advtrains_interlocking/ars.lua @@ -133,9 +133,11 @@ function advtrains.interlocking.ars_check(sigd, train) local tcbs = il.db.get_tcbs(sigd) if not tcbs or not tcbs.routes then return end - if tcbs.ars_disabled then + if tcbs.ars_disabled or tcbs.ars_ignore_next then -- No-ARS mode of signal. -- ignore... + -- Note: ars_ignore_next is set by signalling formspec when route is cancelled + tcbs.ars_ignore_next = nil return end diff --git a/advtrains_interlocking/database.lua b/advtrains_interlocking/database.lua index a35d446..6787c50 100644 --- a/advtrains_interlocking/database.lua +++ b/advtrains_interlocking/database.lua @@ -634,6 +634,28 @@ function ildb.get_ip_by_signalpos(spos) end end end +function ildb.check_for_duplicate_ip(spos) + local main_ip_found = false + -- first pass: check for duplicates + for pts,tab in pairs(influence_points) do + for connid,pos in pairs(tab) do + if vector.equals(pos, spos) then + if main_ip_found then + atwarn("Signal at",spos,": Deleting duplicate signal influence point at",pts,"/",connid) + tab[connid] = nil + end + main_ip_found = true + end + end + end + -- second pass: delete empty tables + for pts,tab in pairs(influence_points) do + if not tab[1] and not tab[2] then -- only those two connids may exist + influence_points[pts] = nil + end + end +end + -- clear signal assignment given the signal position function ildb.clear_ip_by_signalpos(spos) local pts, connid = ildb.get_ip_by_signalpos(spos) diff --git a/advtrains_interlocking/signal_api.lua b/advtrains_interlocking/signal_api.lua index a44eda6..83fae4a 100644 --- a/advtrains_interlocking/signal_api.lua +++ b/advtrains_interlocking/signal_api.lua @@ -326,6 +326,7 @@ function advtrains.interlocking.show_ip_form(pos, pname, only_notset) return end local form = "size[7,5]label[0.5,0.5;Signal at "..minetest.pos_to_string(pos).."]" + advtrains.interlocking.db.check_for_duplicate_ip(pos) local pts, connid = advtrains.interlocking.db.get_ip_by_signalpos(pos) if pts then form = form.."label[0.5,1.5;Influence point is set at "..pts.."/"..connid.."]" @@ -428,7 +429,7 @@ function advtrains.interlocking.show_signal_aspect_selector(pname, p_suppasp, p_ } local purpose = p_purpose or "" - local form = "size[7,5]label[0.5,0.5;Select Signal Aspect:]" + local form = "size[7,7]label[0.5,0.5;Select Signal Aspect:]" form = form.."label[0.5,1;"..purpose.."]" form = form.."label[0.5,1.5;== Main Signal ==]" @@ -460,8 +461,29 @@ function advtrains.interlocking.show_signal_aspect_selector(pname, p_suppasp, p_ if isasp and isasp.shunt then st=2 end form = form.."dropdown[0.5,3.5;6;shunt_free;---,allowed;"..st.."]" end - - form = form.."button_exit[0.5,4.5; 5,1;save;OK]" + + form = form.."label[0.5,4.5;== Distant Signal ==]" + local selid = 1 + local entries = {} + for idx, spv in ipairs(suppasp.dst) do + local entry + if spv == 0 then + entry = "Expect to stop at the next signal" + elseif spv == -1 then + entry = "Expect to pass the next signal at maximum speed" + elseif not spv then + entry = "No info" + else + entry = string.format("Expect to pass the next signal at speed of %d", spv) + end + entries[idx] = idx.."| "..entry + if isasp and spv == (isasp.dst or false) then + selid = idx + end + end + form = form.."dropdown[0.5,5;6;dst;"..table.concat(entries, ",")..";"..selid.."]" + + form = form.."button_exit[0.5,6;5,1;save;Save signal aspect]" local token = advtrains.random_id() @@ -499,9 +521,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if fields.save then local maini = ddindex(fields.main) if not maini then return end + local dsti = ddindex(fields.dst) + if not dsti then return end local asp = { main = psl.suppasp.main[maini], - dst = false, + dst = psl.suppasp.dst[dsti], shunt = usebool(psl.suppasp.shunt, fields.shunt_free, "allowed"), info = {} } diff --git a/advtrains_interlocking/spec/ars_spec.lua b/advtrains_interlocking/spec/ars_spec.lua new file mode 100644 index 0000000..085dbcb --- /dev/null +++ b/advtrains_interlocking/spec/ars_spec.lua @@ -0,0 +1,67 @@ +-- test the serialization function + + +package.path = "../?.lua;" .. package.path + + + + +_G.advtrains = {} +_G.advtrains.interlocking = {} + +require("ars") + +local arstb = {{ ln="Foo"}, {c="Bar"}, {n=true, rc="Boo"}} +local arsdef = {{ ln="Foo"}, {c="Bar"}, {rc="Boo"}, default=true} +local arstr = [[LN Foo +#Bar +!RC Boo]] +local defstr = [[* +LN Foo +#Bar +RC Boo]] +il = _G.advtrains.interlocking + +describe("ars_to_text", function () + it("read table", function () + assert.equals(il.ars_to_text(arstb),arstr) + end) + it("reads back and forth", function () + assert.equals(il.ars_to_text(il.text_to_ars(arstr)),arstr) + end) + it("handles default routes properly", function () + assert.equals(il.ars_to_text(arsdef),defstr) + end) +end) + +describe("text_to_ars", function () + it("writes table", function() + assert.same(il.text_to_ars(arstr),arstb) + end) + it("handles default routes properly", function () + assert.same(il.text_to_ars(defstr),arsdef) + end) +end) + +train1 = {} +train2 = {} +train3 = {} +train1.line = "Foo" +train1.routingcode = "Boo" +train2.line= "Bar" +train2.routingcode = "NotBoo NotBoo" +train3.routingcode = "Foo Boo Moo Zoo" + +describe("check_rule_match", function () + it("matches rules correctly", function() + assert.equals(il.ars_check_rule_match(arstb,train1),1) + assert.equals(il.ars_check_rule_match(arsdef,train2),nil) + end) + it("matches negative rules", function() + assert.equals(il.ars_check_rule_match(arstb,train2),3) + assert.equals(il.ars_check_rule_match(arstb,train3),nil) + end) + it("matches RC in a list correctly", function() + assert.equals(il.ars_check_rule_match(arsdef,train3),3) + end) +end) diff --git a/advtrains_interlocking/tcb_ts_ui.lua b/advtrains_interlocking/tcb_ts_ui.lua index 34fbf7f..0cc10da 100755 --- a/advtrains_interlocking/tcb_ts_ui.lua +++ b/advtrains_interlocking/tcb_ts_ui.lua @@ -723,11 +723,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) connid = tonumber(connids) if not connid or connid<1 or connid>2 then return end end - if pos and connid and not fields.quit then + if pos and connid then local sigd = {p=pos, s=connid} local tcbs = ildb.get_tcbs(sigd) if not tcbs then return end - + + if fields.quit then + -- form quit: disable temporary ARS ignore + tcbs.ars_ignore_next = nil + return + end + local sel_rte if fields.rtelist then local tev = minetest.explode_textlist_event(fields.rtelist) @@ -740,7 +746,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end if tcbs.routeset and fields.cancelroute then if tcbs.routes[tcbs.routeset] and tcbs.routes[tcbs.routeset].ars then - tcbs.ars_disabled = true + tcbs.ars_ignore_next = true end -- if route committed, cancel route ts info ilrs.update_route(sigd, tcbs, nil, true) @@ -749,6 +755,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if fields.newroute and hasprivs then advtrains.interlocking.init_route_prog(pname, sigd) minetest.close_formspec(pname, formname) + tcbs.ars_ignore_next = nil return end if sel_rte and tcbs.routes[sel_rte] then diff --git a/advtrains_interlocking/tsr_rail.lua b/advtrains_interlocking/tsr_rail.lua index f302540..c1e3c1c 100644 --- a/advtrains_interlocking/tsr_rail.lua +++ b/advtrains_interlocking/tsr_rail.lua @@ -3,13 +3,15 @@ -- Simple rail whose only purpose is to place a TSR on the position, as a temporary solution until the timetable system covers everything. -- This code resembles the code in lines/stoprail.lua +local S = attrans + local function updateform(pos) local meta = minetest.get_meta(pos) local pe = advtrains.encode_pos(pos) local npr = advtrains.interlocking.npr_rails[pe] or 2 - meta:set_string("infotext", "Point speed restriction: "..npr) - meta:set_string("formspec", "field[npr;Set point speed restriction:;"..npr.."]") + meta:set_string("infotext", S("Point speed restriction: @1",npr)) + meta:set_string("formspec", "field[npr;"..S("Set point speed restriction:")..";"..npr.."]") end @@ -25,11 +27,11 @@ local adefunc = function(def, preset, suffix, rotation) on_receive_fields = function(pos, formname, fields, player) local pname = player:get_player_name() if not minetest.check_player_privs(pname, {interlocking=true}) then - minetest.chat_send_player(pname, "Interlocking privilege required!") + minetest.chat_send_player(pname, S("You are not allowed to configure this track without the @1 privilege.", "interlocking")) return end if minetest.is_protected(pos, pname) then - minetest.chat_send_player(pname, "This rail is protected!") + minetest.chat_send_player(pname, S("You are not allowed to configure this track.")) minetest.record_protection_violation(pos, pname) return end @@ -59,7 +61,7 @@ if minetest.get_modpath("advtrains_train_track") ~= nil then models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_npr.png", - description="Point Speed Restriction Rail", + description=S("Point Speed Restriction Track"), formats={}, get_additional_definiton = adefunc, }, advtrains.trackpresets.t_30deg_straightonly) diff --git a/advtrains_line_automation/stoprail.lua b/advtrains_line_automation/stoprail.lua index 55a4785..6c74a3d 100644 --- a/advtrains_line_automation/stoprail.lua +++ b/advtrains_line_automation/stoprail.lua @@ -28,7 +28,7 @@ local function show_stoprailform(pos, player) local pe = advtrains.encode_pos(pos) local pname = player:get_player_name() if minetest.is_protected(pos, pname) then - minetest.chat_send_player(pname, "Position is protected!") + minetest.chat_send_player(pname, attrans("You are not allowed to configure this track.")) return end @@ -73,7 +73,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local pos = advtrains.decode_pos(pe) if pos then if minetest.is_protected(pos, pname) then - minetest.chat_send_player(pname, "Position is protected!") + minetest.chat_send_player(pname, attrans("You are not allowed to configure this track.")) return end @@ -94,7 +94,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then stdata.stn = fields.stn else - minetest.chat_send_player(pname, "Station code '"..fields.stn.."' does already exist and is owned by "..stn.owner) + minetest.chat_send_player(pname, attrans("Station code \"@1\" already exists and is owned by @2.", fields.stn, stn.owner)) show_stoprailform(pos,player) return end @@ -108,7 +108,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then stn.name = fields.stnname else - minetest.chat_send_player(pname, "Not allowed to edit station name, owned by "..stn.owner) + minetest.chat_send_player(pname, attrans("This station is owned by @1. You are not allowed to edit its name.", stn.owner)) end end @@ -218,7 +218,7 @@ if minetest.get_modpath("advtrains_train_track") ~= nil then models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_stop.png", - description="Station/Stop Rail", + description=attrans("Station/Stop Track"), formats={}, get_additional_definiton = adefunc, }, advtrains.trackpresets.t_30deg_straightonly) diff --git a/advtrains_luaautomation/README.md b/advtrains_luaautomation/README.md index 683e45c..a885075 100644 --- a/advtrains_luaautomation/README.md +++ b/advtrains_luaautomation/README.md @@ -255,15 +255,32 @@ In addition to the above environment functions, the following functions are avai The interlocking system uses this property for Automatic Routesetting. #### Shunting Functions and Variables -There are several functions available especially for shunting operations. Some of these functions make use of Freight Codes (FC) set in the Wagon Properties of each wagon and/or locomotive: +There are several functions available especially for shunting operations. +Some of these functions make use of Freight Codes (FC) set in the Wagon Properties of each wagon and/or locomotive. +FCs are composed of codes separated by exclamation marks (`!`), for instance `"foo!bar!baz"`. +Each wagon has a current FC, indicating its next destination. - `split_at_index(index, atc_command)` Splits the train at the specified index, into a train with index-1 wagons and a second train starting with the index-th wagon. The `atc_command` specified is sent to the second train after decoupling. `"S0"` or `"B0"` is common to ensure any locomotives in the remaining train don't continue to move. + `index` must be more than 1 to avoid trying to decouple the very front of a train. + Example: train has wagons `"foo","foo","foo","bar","bar","bar"` Command: `split_at_index(4,"S0")` Result: first train (continues at previous speed): `"foo","foo","foo"`, second train (slows at S0): `"bar","bar","bar"` + - `get_fc()` + Returns a table with the entire FC list for each wagon in the train. + Command: `get_fc()` + Result: `{"", "foo!bar", "testing", "fc_1!fc_2!fc_3!?", "hello_world"}` + + - `set_fc(fc_list)` + Overwrites the FC list according to a table `fc_list`. A false or nil entry will leave the wagon unaffected, however all others will be overwritten. + Useful for mass-programming freight trains that use FC-shunting instead of walking to each wagon individually. + Example: train has FC lists: `"", "foo!bar", "testing", "fc_1!fc_2!fc_3!?", "hello_world"` + Command: `set_fc({"", "foo!turtle", nil, "4tehlulz", false})` + Result: `""` `"foo!turtle"` `"testing"` `"4tehlulz"` `"hello_world"` + - `split_at_fc(atc_command, len)` Splits the train in such a way that all cars with non-empty current FC of the first part of the train have the same FC. The `atc_command` specified is sent to the rear part, as with split_at_index. It returns the fc of the cars of the first part. @@ -287,15 +304,11 @@ There are several functions available especially for shunting operations. Some o first part of the train as above. - `step_fc()` - Steps the FCs of all train cars forward. FCs are composed of codes - separated by exclamation marks (`!`), for instance - `"foo!bar!baz"`. Each wagon has a current FC, indicating its next - destination. Stepping the freight code forward, selects the next - code after the !. If the end of the string is reached, then the + Steps the FCs of all train cars forward, selecting the next + code after the `!`. If the end of the string is reached, then the first code is selected, except if the string ends with a question mark (`?`), then the order is reversed. - - `train_length()` returns the number of cars the train is composed of. @@ -312,13 +325,16 @@ Deprecated: #### Interlocking -This additional function is available when advtrains_interlocking is enabled: +These additional functions are available when advtrains_interlocking is enabled: - - `atc_set_disable_ars(boolean)` + - `atc_set_ars_disable(boolean)` Disables (true) or enables (false) the use of ARS for this train. The train will not trigger ARS (automatic route setting) on signals then. - Note: If you want to disable ARS from an approach callback, the call to `atc_set_disable_ars(true)` *must* happen during the approach callback, and may not be deferred to an interrupt(). Else the train might trigger an ARS before the interrupt fires. + Note: If you want to disable ARS from an approach callback, the call to `atc_set_ars_disable(true)` *must* happen during the approach callback, and may not be deferred to an interrupt(). Else the train might trigger an ARS before the interrupt fires. + - `section_occupancy(section_id)` + Returns a table of train ids for the specified section, nil if no section id is provided, false if the section id is invalid, an empty table if the section id is valid but empty of trains. + #### Approach callbacks The LuaATC interface provides a way to hook into the approach callback system, which is for example used in the TSR rails (provided by advtrains_interlocking) or the station tracks (provided by advtrains_lines). However, for compatibility reasons, this behavior needs to be explicitly enabled. diff --git a/advtrains_luaautomation/active_common.lua b/advtrains_luaautomation/active_common.lua index 9bf8377..1a7009f 100644 --- a/advtrains_luaautomation/active_common.lua +++ b/advtrains_luaautomation/active_common.lua @@ -1,4 +1,4 @@ - +local S = atltrans local ac = {nodes={}} @@ -14,7 +14,7 @@ end function ac.after_place_node(pos, player) local meta=minetest.get_meta(pos) meta:set_string("formspec", ac.getform(pos, meta)) - meta:set_string("infotext", "LuaAutomation component, unconfigured.") + meta:set_string("infotext", S("Unconfigured LuaATC component")) local ph=minetest.pos_to_string(pos) --just get first available key! for en,_ in pairs(atlatc.envs) do @@ -43,12 +43,12 @@ function ac.getform(pos, meta_p) end local form = "size["..atlatc.CODE_FORM_SIZE.."]" .."style[code;font=mono]" - .."label[0,-0.1;Environment]" + .."label[0,-0.1;"..S("LuaATC Environment").."]" .."dropdown[0,0.3;3;env;"..table.concat(envs_asvalues, ",")..";"..sel.."]" - .."button[5,0.2;2,1;save;Save]" - .."button[7,0.2;3,1;cle;Clear Local Env.]" - .."textarea[0.3,1.5;"..atlatc.CODE_FORM_SIZE..";code;Code;"..minetest.formspec_escape(code).."]" - .."label[0,9.7;"..err.."]" + .."button[5,0.2;2,1;save;"..S("Save").."]" + .."button[7,0.2;3,1;cle;"..S("Clear Local Environment").."]" + .."textarea[0.3,1.5;"..atlatc.CODE_FORM_SIZE..";code;"..S("Code")..";"..minetest.formspec_escape(code).."]" + .."label["..atlatc.CODE_FORM_ERRLABELPOS..";"..err.."]" return form end @@ -61,7 +61,7 @@ end function ac.on_receive_fields(pos, formname, fields, player) if not minetest.check_player_privs(player:get_player_name(), {atlatc=true}) then - minetest.chat_send_player(player:get_player_name(), "Missing privilege: atlatc - Operation cancelled!") + minetest.chat_send_player(player:get_player_name(), S("You are not allowed to configure this LuaATC component without the @1 privilege.", "atlatc")) return end @@ -91,17 +91,17 @@ function ac.on_receive_fields(pos, formname, fields, player) meta:set_string("formspec", ac.getform(pos, meta)) if nodetbl.env then - meta:set_string("infotext", "LuaAutomation component, assigned to environment '"..nodetbl.env.."'") + meta:set_string("infotext", S("LuaATC component assigned to environment '@1'", nodetbl.env)) else - meta:set_string("infotext", "LuaAutomation component, invalid enviroment set!") + meta:set_string("infotext", S("LuaATC component assigned to an invalid environment")) end end -function ac.run_in_env(pos, evtdata, customfct_p) +function ac.run_in_env(pos, evtdata, customfct_p, ignore_no_code) local ph=minetest.pos_to_string(pos) local nodetbl = ac.nodes[ph] if not nodetbl then - atwarn("LuaAutomation component at",ph,": Data not in memory! Please visit component and click 'Save'!") + atwarn("LuaATC component at",ph,": Data not in memory! Please visit component and click 'Save'!") return end @@ -111,12 +111,14 @@ function ac.run_in_env(pos, evtdata, customfct_p) end if not nodetbl.env or not atlatc.envs[nodetbl.env] then - atwarn("LuaAutomation component at",ph,": Not an existing environment: "..(nodetbl.env or "<nil>")) + atwarn("LuaATC component at",ph,": Not an existing environment: "..(nodetbl.env or "<nil>")) return false end local env = atlatc.envs[nodetbl.env] if not nodetbl.code or nodetbl.code=="" then - env:log("warning", "LuaAutomation component at",ph,": No code to run! (insert -- to suppress warning)") + if not ignore_no_code then + env:log("warning", "LuaATC component at",ph,": No code to run! (insert -- to suppress warning)") + end return false end @@ -166,7 +168,7 @@ function ac.run_in_env(pos, evtdata, customfct_p) atlatc.active.nodes[ph].err=dataout env:log("error", "LuaATC component at",ph,": LUA Error:",dataout) if meta then - meta:set_string("infotext", "LuaATC component, ERROR:"..dataout) + meta:set_string("infotext", S("LuaATC component with error: @1", dataout)) end --TODO temporary --if customfct.atc_id then diff --git a/advtrains_luaautomation/atc_rail.lua b/advtrains_luaautomation/atc_rail.lua index b862129..f069600 100644..100755 --- a/advtrains_luaautomation/atc_rail.lua +++ b/advtrains_luaautomation/atc_rail.lua @@ -14,7 +14,7 @@ function r.fire_event(pos, evtdata, appr_internal) local railtbl = atlatc.active.nodes[ph] if not railtbl then - atwarn("LuaAutomation ATC interface rail at",ph,": Data not in memory! Please visit position and click 'Save'!") + atwarn("LuaATC interface rail at",ph,": Data not in memory! Please visit position and click 'Save'!") return end @@ -56,7 +56,7 @@ function r.fire_event(pos, evtdata, appr_internal) split_at_index = function(index, cmd) if not train_id then return false end assertt(cmd, "string") - if type(index) ~= "number" then + if type(index) ~= "number" or index < 2 then return false end local new_id = advtrains.split_train_at_index(train, index) @@ -91,6 +91,38 @@ function r.fire_event(pos, evtdata, appr_internal) if not train_id then return false end advtrains.train_step_fc(train) end, + get_fc = function() + if not train_id then return end + local fc_list = {} + for index,wagon_id in ipairs(train.trainparts) do + fc_list[index] = table.concat(advtrains.wagons[wagon_id].fc,"!") or "" + end + return fc_list + end, + set_fc = function(fc_list) + assertt(fc_list, "table") + if not train_id then return false end + -- safety type-check for entered values + for _,v in ipairs(fc_list) do + if v and type(v) ~= "string" then + error("FC entries must be a string") + return + end + end + for index,wagon_id in ipairs(train.trainparts) do + if fc_list[index] then -- has FC to enter to this wagon + local data = advtrains.wagons[wagon_id] + if data then -- wagon actually exists + for _,wagon in pairs(minetest.luaentities) do -- find wagon entity + if wagon.is_wagon and wagon.initialized and wagon.id==wagon_id then + wagon.set_fc(data,fc_list[index]) -- overwrite to new FC + break -- no point cycling through every other entity. we found our wagon + end + end + end + end + end + end, set_shunt = function() -- enable shunting mode if not train_id then return false end @@ -130,9 +162,8 @@ function r.fire_event(pos, evtdata, appr_internal) get_rc = function() return train.routingcode end, - atc_reset = function(cmd) + atc_reset = function() if not train_id then return false end - assertt(cmd, "string") advtrains.atc.train_reset_command(train) return true end, @@ -188,7 +219,7 @@ advtrains.register_tracks("default", { models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_atc.png", - description=atltrans("LuaAutomation ATC Rail"), + description=atltrans("LuaATC Track"), formats={}, get_additional_definiton = function(def, preset, suffix, rotation) return { diff --git a/advtrains_luaautomation/environment.lua b/advtrains_luaautomation/environment.lua index 63aa68d..6df5248 100644 --- a/advtrains_luaautomation/environment.lua +++ b/advtrains_luaautomation/environment.lua @@ -150,7 +150,7 @@ local static_env = { --interrupts are handled per node, position unknown. (same goes for digilines) --however external interrupts can be set here. interrupt_pos = function(parpos, imesg) - local pos=atlatc.pcnaming.resolve_pos(parpos) + local pos=atlatc.pcnaming.resolve_pos(parpos, "interrupt_pos") atlatc.interrupt.add(0, pos, {type="ext_int", ext_int=true, message=imesg}) end, -- sends an atc command to train regardless of where it is in the world @@ -164,6 +164,9 @@ local static_env = { return false end end, + get_slowdown = function() + return advtrains.global_slowdown + end } -- If interlocking is present, enable route setting functions @@ -223,6 +226,15 @@ if advtrains.interlocking then local pos = atlatc.pcnaming.resolve_pos(signal) return advtrains.interlocking.signal_set_aspect(pos) end + + --section_occupancy() + static_env.section_occupancy = function(ts_id) + if not ts_id then return nil end + ts_id = tostring(ts_id) + local response = advtrains.interlocking.db.get_ts(ts_id) + if not response then return false end + return table.copy(response.trains) + end end -- Lines-specific: @@ -250,6 +262,11 @@ if advtrains.lines then } end + +atlatc.register_function = function (name, f) + static_env[name] = f +end + for _, name in pairs(safe_globals) do static_env[name] = _G[name] end diff --git a/advtrains_luaautomation/init.lua b/advtrains_luaautomation/init.lua index ab625b1..b359142 100644 --- a/advtrains_luaautomation/init.lua +++ b/advtrains_luaautomation/init.lua @@ -2,18 +2,20 @@ -- Lua automation features for advtrains -- Uses global table 'atlatc' (AdvTrains_LuaATC) ---TODO: re-add localization (if merging localization, discard this hunk please) -atltrans = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end +atltrans = attrans +local S = atltrans --Privilege --Only trusted players should be enabled to build stuff which can break the server. atlatc = { envs = {}} -minetest.register_privilege("atlatc", { description = "Player can place and modify LUA ATC components. Grant with care! Allows to execute bad LUA code.", give_to_singleplayer = false, default= false }) +minetest.register_privilege("atlatc", { description = S("Can place and configure LuaATC components, including execute potentially harmful Lua code"), give_to_singleplayer = false, default= false }) --Size of code input forms in X,Y notation. Must be at least 10x10 atlatc.CODE_FORM_SIZE = "15,12" +--Position of Error Label in Code Form +atlatc.CODE_FORM_ERRLABELPOS = "0,12" --assertt helper. error if a variable is not of a type function assertt(var, typ) @@ -31,6 +33,9 @@ dofile(mp.."/interrupt.lua") dofile(mp.."/active_common.lua") dofile(mp.."/atc_rail.lua") dofile(mp.."/operation_panel.lua") +if mesecon then + dofile(mp.."/mesecon_controller.lua") +end dofile(mp.."/pcnaming.lua") dofile(mp.."/chatcmds.lua") diff --git a/advtrains_luaautomation/mesecon_controller.lua b/advtrains_luaautomation/mesecon_controller.lua new file mode 100644 index 0000000..6981839 --- /dev/null +++ b/advtrains_luaautomation/mesecon_controller.lua @@ -0,0 +1,260 @@ +-- mesecon_controller.lua +-- Mesecon-interfaceable Operation Panel alternative +-- Looks like a Mesecon Luacontroller + +-- Luacontroller Adapted Code +-- From Mesecons mod https://mesecons.net/ +-- (c) Jeija and Contributors + +local S = atltrans +local BASENAME = "advtrains_luaautomation:mesecon_controller" + +local rules = { + a = {x = -1, y = 0, z = 0, name="A"}, + b = {x = 0, y = 0, z = 1, name="B"}, + c = {x = 1, y = 0, z = 0, name="C"}, + d = {x = 0, y = 0, z = -1, name="D"}, +} + +local function generate_name(ports) + local d = ports.d and 1 or 0 + local c = ports.c and 1 or 0 + local b = ports.b and 1 or 0 + local a = ports.a and 1 or 0 + return BASENAME..d..c..b..a +end + + +local function set_port(pos, rule, state) + if state then + mesecon.receptor_on(pos, {rule}) + else + mesecon.receptor_off(pos, {rule}) + end +end + +local function clean_port_states(ports) + ports.a = ports.a and true or false + ports.b = ports.b and true or false + ports.c = ports.c and true or false + ports.d = ports.d and true or false +end + +-- Local table for storing which Mesecons off events should be ignored +-- Indexed by hex encoded position +local ignored_off_events = {} + +local function set_port_states(pos, ports) + local node = advtrains.ndb.get_node(pos) + local name = node.name + clean_port_states(ports) + local vports = minetest.registered_nodes[name].virtual_portstates + local new_name = generate_name(ports) + + if name ~= new_name and vports then + -- Problem: + -- We need to place the new node first so that when turning + -- off some port, it won't stay on because the rules indicate + -- there is an onstate output port there. + -- When turning the output off then, it will however cause feedback + -- so that the luacontroller will receive an "off" event by turning + -- its output off. + -- Solution / Workaround: + -- Remember which output was turned off and ignore next "off" event. + local ph=minetest.pos_to_string(pos) + local railtbl = atlatc.active.nodes[ph] + if not railtbl then return end + + local ign = railtbl.ignored_off_events or {} + if ports.a and not vports.a and not mesecon.is_powered(pos, rules.a) then ign.A = true end + if ports.b and not vports.b and not mesecon.is_powered(pos, rules.b) then ign.B = true end + if ports.c and not vports.c and not mesecon.is_powered(pos, rules.c) then ign.C = true end + if ports.d and not vports.d and not mesecon.is_powered(pos, rules.d) then ign.D = true end + railtbl.ignored_off_events = ign + + advtrains.ndb.swap_node(pos, {name = new_name, param2 = node.param2}) + + -- Apply mesecon state only if node loaded + -- If node is not loaded, mesecon update will occur on next load via on_updated_from_nodedb + if advtrains.is_node_loaded(pos) then + if ports.a ~= vports.a then set_port(pos, rules.a, ports.a) end + if ports.b ~= vports.b then set_port(pos, rules.b, ports.b) end + if ports.c ~= vports.c then set_port(pos, rules.c, ports.c) end + if ports.d ~= vports.d then set_port(pos, rules.d, ports.d) end + end + end +end + +local function on_updated_from_nodedb(pos, newnode, oldnode) + -- Switch appropriate Mesecon receptors depending on the node change + local vports = minetest.registered_nodes[oldnode.name].virtual_portstates + local ports = minetest.registered_nodes[newnode.name].virtual_portstates + if ports.a ~= vports.a then set_port(pos, rules.a, ports.a) end + if ports.b ~= vports.b then set_port(pos, rules.b, ports.b) end + if ports.c ~= vports.c then set_port(pos, rules.c, ports.c) end + if ports.d ~= vports.d then set_port(pos, rules.d, ports.d) end +end + +local function ignore_offevent(pos, rule) + local ph=minetest.pos_to_string(pos) + local railtbl = atlatc.active.nodes[ph] + if not railtbl then return nil end + local ign = railtbl.ignored_off_events + if ign and ign[rule.name] then + ign[rule.name] = nil + return true + end + return false +end + +local valid_ports = {a=true, b=true, c=true, d=true} + +local function fire_event(pos, evtdata) + local customfct={ + set_mesecon_outputs = function(states) + assertt(states, "table") + set_port_states(pos, states) + end, + get_mesecon_input = function(port) + local portl = string.lower(port) + if not valid_ports[portl] then + error("get_mesecon_input: Invalid port (expected a,b,c,d)") + end + if mesecon.is_powered(pos, rules[portl]) then + return true + end + return false + end, + } + atlatc.active.run_in_env(pos, evtdata, customfct, true) + +end + +local output_rules = {} +local input_rules = {} + +local node_box = { + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, -- Bottom slab + {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, -- Circuit board + {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, -- IC + } +} + +local selection_box = { + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, +} + +for a = 0, 1 do -- 0 = off 1 = on +for b = 0, 1 do +for c = 0, 1 do +for d = 0, 1 do + local cid = tostring(d)..tostring(c)..tostring(b)..tostring(a) + local node_name = BASENAME..cid + local top = "atlatc_luacontroller_top.png" + if a == 1 then + top = top.."^atlatc_luacontroller_LED_A.png" + end + if b == 1 then + top = top.."^atlatc_luacontroller_LED_B.png" + end + if c == 1 then + top = top.."^atlatc_luacontroller_LED_C.png" + end + if d == 1 then + top = top.."^atlatc_luacontroller_LED_D.png" + end + + local groups + if a + b + c + d ~= 0 then + groups = {dig_immediate=2, not_in_creative_inventory=1, save_in_at_nodedb=1} + else + groups = {dig_immediate=2, save_in_at_nodedb=1} + end + + output_rules[cid] = {} + input_rules[cid] = {} + if a == 1 then table.insert(output_rules[cid], rules.a) end + if b == 1 then table.insert(output_rules[cid], rules.b) end + if c == 1 then table.insert(output_rules[cid], rules.c) end + if d == 1 then table.insert(output_rules[cid], rules.d) end + + if a == 0 then table.insert( input_rules[cid], rules.a) end + if b == 0 then table.insert( input_rules[cid], rules.b) end + if c == 0 then table.insert( input_rules[cid], rules.c) end + if d == 0 then table.insert( input_rules[cid], rules.d) end + + local mesecons = { + effector = { + rules = input_rules[cid], + action_change = function (pos, _, rule_name, new_state) + if new_state == "off" then + -- check for ignored off event on this node + if ignore_offevent(pos, rule_name) then + return + end + end + --Note: rule_name is not a *name* but actually the full rule table (position + name field) + --Event format consistent with Mesecons Luacontroller event + atlatc.interrupt.add(0, pos, {type=new_state, [new_state]=true, pin=rule_name}) + end, + }, + receptor = { + state = mesecon.state.on, + rules = output_rules[cid] + }, + } + + minetest.register_node(node_name, { + description = S("LuaATC Mesecon Controller"), + drawtype = "nodebox", + tiles = { + top, + "atlatc_luacontroller_bottom.png", + "atlatc_luacontroller_sides.png", + "atlatc_luacontroller_sides.png", + "atlatc_luacontroller_sides.png", + "atlatc_luacontroller_sides.png" + }, + inventory_image = top, + paramtype = "light", + is_ground_content = false, + groups = groups, + drop = BASENAME.."0000", + sunlight_propagates = true, + selection_box = selection_box, + node_box = node_box, + mesecons = mesecons, + -- Virtual portstates are the ports that + -- the node shows as powered up (light up). + virtual_portstates = { + a = a == 1, + b = b == 1, + c = c == 1, + d = d == 1, + }, + after_dig_node = function (pos, node, player) + mesecon.receptor_off(pos, output_rules) + atlatc.active.after_dig_node(pos, node, player) + end, + after_place_node = atlatc.active.after_place_node, + on_receive_fields = atlatc.active.on_receive_fields, + advtrains = { + on_updated_from_nodedb = on_updated_from_nodedb + }, + luaautomation = { + fire_event=fire_event + }, + digiline = { + receptor = {}, + effector = { + action = atlatc.active.on_digiline_receive + }, + }, + }) +end +end +end +end diff --git a/advtrains_luaautomation/operation_panel.lua b/advtrains_luaautomation/operation_panel.lua index f8b93b5..8e12651 100644..100755 --- a/advtrains_luaautomation/operation_panel.lua +++ b/advtrains_luaautomation/operation_panel.lua @@ -1,13 +1,14 @@ +local S = atltrans -local function on_punch(pos, player) - atlatc.interrupt.add(0, pos, {type="punch", punch=true}) +local function on_punch(pos,node,player) + atlatc.interrupt.add(0, pos, {type="punch", punch=true, name=player:get_player_name()}) end minetest.register_node("advtrains_luaautomation:oppanel", { drawtype = "normal", tiles={"atlatc_oppanel.png"}, - description = "LuaAutomation operation panel", + description = S("LuaATC Operation Panel"), groups = { cracky = 1, save_in_at_nodedb=1, diff --git a/advtrains_luaautomation/pcnaming.lua b/advtrains_luaautomation/pcnaming.lua index ebb769f..60983a6 100644 --- a/advtrains_luaautomation/pcnaming.lua +++ b/advtrains_luaautomation/pcnaming.lua @@ -2,6 +2,8 @@ --a.k.a Passive component naming --Allows to assign names to passive components, so they can be called like: --setstate("iamasignal", "green") +local S = atltrans + atlatc.pcnaming={name_map={}} function atlatc.pcnaming.load(stuff) if type(stuff)=="table" then @@ -23,7 +25,7 @@ function atlatc.pcnaming.resolve_pos(pos, func_name) end minetest.register_craftitem("advtrains_luaautomation:pcnaming",{ - description = attrans("Passive Component Naming Tool\n\nRight-click to name a passive component."), + description = S("Passive Component Naming Tool\n\nRight-click to name a passive component."), groups = {cracky=1}, -- key=name, value=rating; rating=1..3. inventory_image = "atlatc_pcnaming.png", wield_image = "atlatc_pcnaming.png", @@ -34,7 +36,7 @@ minetest.register_craftitem("advtrains_luaautomation:pcnaming",{ return end if not minetest.check_player_privs(pname, {atlatc=true}) then - minetest.chat_send_player(pname, "Missing privilege: atlatc") + minetest.chat_send_player(pname, S("You are not allowed to name LuaATC passive components without the @1 privilege.", "atlatc")) return end if pointed_thing.type=="node" then @@ -44,7 +46,12 @@ minetest.register_craftitem("advtrains_luaautomation:pcnaming",{ return end local node = advtrains.ndb.get_node(pos) - if node.name and (minetest.get_item_group(node.name, "advtrains_signal")>0 or advtrains.is_passive(pos)) then + local ndef = minetest.registered_nodes[node.name] + if node.name and ( + minetest.get_item_group(node.name, "advtrains_signal")>0 --is IL signal + or advtrains.is_passive(pos) -- is passive component + or (ndef and ndef.luaautomation) -- is active component + ) then --look if this one already has a name local pn="" for name, npos in pairs(atlatc.pcnaming.name_map) do @@ -52,7 +59,7 @@ minetest.register_craftitem("advtrains_luaautomation:pcnaming",{ pn=name end end - minetest.show_formspec(pname, "atlatc_naming_"..minetest.pos_to_string(pos), "field[pn;Set name of component (empty to clear);"..minetest.formspec_escape(pn).."]") + minetest.show_formspec(pname, "atlatc_naming_"..minetest.pos_to_string(pos), "field[pn;"..S("Set name of component (empty to clear)")..";"..minetest.formspec_escape(pn).."]") end end end, diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_A.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_A.png Binary files differnew file mode 100644 index 0000000..c6182cc --- /dev/null +++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_A.png diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_B.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_B.png Binary files differnew file mode 100644 index 0000000..04c2da0 --- /dev/null +++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_B.png diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_C.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_C.png Binary files differnew file mode 100644 index 0000000..01f6ae4 --- /dev/null +++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_C.png diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_D.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_D.png Binary files differnew file mode 100644 index 0000000..6c8a26f --- /dev/null +++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_D.png diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_bottom.png b/advtrains_luaautomation/textures/atlatc_luacontroller_bottom.png Binary files differnew file mode 100644 index 0000000..7ae955c --- /dev/null +++ b/advtrains_luaautomation/textures/atlatc_luacontroller_bottom.png diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_sides.png b/advtrains_luaautomation/textures/atlatc_luacontroller_sides.png Binary files differnew file mode 100644 index 0000000..40f4b60 --- /dev/null +++ b/advtrains_luaautomation/textures/atlatc_luacontroller_sides.png diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_top.png b/advtrains_luaautomation/textures/atlatc_luacontroller_top.png Binary files differnew file mode 100644 index 0000000..a5059af --- /dev/null +++ b/advtrains_luaautomation/textures/atlatc_luacontroller_top.png diff --git a/advtrains_signals_ks/doc/advtrains_signals_ks.7advtrains.md b/advtrains_signals_ks/doc/advtrains_signals_ks.7advtrains.md new file mode 100644 index 0000000..126ecf0 --- /dev/null +++ b/advtrains_signals_ks/doc/advtrains_signals_ks.7advtrains.md @@ -0,0 +1,52 @@ +% advtrains_signals_ks(7advtrains) | Advtrains User Guide + +# NAME +`advtrains_signals_ks` - Ks signals for advtrains + +# DESCRIPTION + +This mod includes a modified subset of German rail signals. This page documents the signals implemented by this mod and some differences between this mod and German signals used in real life. + +# SIGNAL ASPECTS + +This section mainly describes the different signal aspects. Please note that the meaning of some signal aspects may differ from their RL counterparts, and that the differences documented in the following section are not comprehensive. + +Due to historical reasons, "ex-DB" and "ex-DR" are used to refer to the former Deutsche Bundesbahn (West Germany) and the former Deutsche Reichsbahn (East Germany), respectively. + +## Ks signals +The Ks signals are used like most other signals in advtrains. It has the following aspects: + +* Hp 0 (red light): Stop +* Ks 1 (green light): Proceed at maximum speed or with the speed limit shown on the Zs 3 indicator directly above the signal (if present) and expect to proceed the next main signal at maximum speed or, if the green light is flashing, with the speed limit shown on the Zs 3v indicator directly below the signal +* Ks 2 (yellow light): Proceed at maximum speed or with the speed limit shown on the Zs 3 indicator directly above the signal (if present) and expect to stop in front of the next main signal. + +In addition, Sh 1 (see below) may also appear with Hp 0, in which case the train continues in shunt mode. + +## Shunt signals +Shunt signals are labeled "Ks Shunting signal" in-game. It has the following aspects: + +* Sh 0 (two horizontally aligned red lights): Stop +* Sh 1/(ex-DR) Ra 12 (two white lights aligned on a slanted line): shunting allowed + +## Signal signs +There are a few signal signs provided by this mod: + +* Zs 3 (white number on a black background): Proceed with the permanent speed limit shown on the sign +* Zs 10 (an sign shaped like an upward-pointing arrow): The speed limit previously set by Zs 3 is lifted +* Lf 1/2 (black number on an orange background): Proceed with the temporary speed limit shown on the sign +* Lf 3 (black letter "E" on a white background): The temporary speed limit previously set by Lf 1/2 is lifted +* Lf 7 (black number on a white background): Proceed with the line speed limit shown on the sign +* Ra 10 (the black text "Halt für Rangierfahrten" on a white semicircle): Do not proceed if in shunt mode +* Proceed as main ("PAM", in-game only) ("S" below a green arrow): Proceed without shunt mode + +# DIFFERENCES FROM REAL-LIFE SIGNALING + +[This document](https://www.bahnstatistik.de/Signale_pdf/SB-DBAG.pdf) is used for reference, + +* The speed is indicated in m/s instead of multiples of 10km/h. +* Due to the potentially large number of nodes, only certain hard-coded values are allowed. +* Certain visual effects, such as making signal signs reflective or lit at night, are not implemented. +* Distant signaling is not yet implemented. +* The location of most signals are not checked. The location of Zs 3 and Zs 3v are only checked relative to the location of the main (Ks) signal. +* The "shunt signals" in this mod are actually known as "Schutzsignale". The word "Rangiersignale" refers to a different set of signals (including acoustic signals) given by the person specifically responsible for train shunting. +* The ex-DB definition of Sh 1 ("Fahrverbot aufgehoben") is that the track section ahead is clear and does not imply that the driver is allowed to proceed. diff --git a/advtrains_signals_ks/init.lua b/advtrains_signals_ks/init.lua index b05506e..bdbd50d 100755 --- a/advtrains_signals_ks/init.lua +++ b/advtrains_signals_ks/init.lua @@ -4,28 +4,78 @@ -- Note that the group value of advtrains_signal is 2, which means "step 2 of signal capabilities" -- advtrains_signal=1 is meant for signals that do not implement set_aspect. +local function asp_to_zs3type(asp) + local n = tonumber(asp) + if not n or n < 4 then return "off" end + if n < 8 then return 2*math.floor(n/2) end + return math.min(16,4*math.floor(n/4)) +end + +local function setzs3(msp, lim, rot) + local pos = {x = msp.x, y = msp.y+1, z = msp.z} + local node = advtrains.ndb.get_node(pos) + local asp = asp_to_zs3type(lim) + if node.name:find("^advtrains_signals_ks:zs3_") then + advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:zs3_"..asp.."_"..rot, param2 = node.param2}) + end +end + +local function getzs3(msp) + local pos = {x = msp.x, y = msp.y+1, z = msp.z} + local nodename = advtrains.ndb.get_node(pos).name + local speed = nodename:match("^advtrains_signals_ks:zs3_(%w+)_%d+$") + if not speed then return nil end + speed = tonumber(speed) + if not speed then return false end + return speed +end + +local function setzs3v(msp, lim, rot) + local pos = {x = msp.x, y = msp.y-1, z = msp.z} + local node = advtrains.ndb.get_node(pos) + local asp = asp_to_zs3type(lim) + if node.name:find("^advtrains_signals_ks:zs3v_") then + advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:zs3v_"..asp.."_"..rot, param2 = node.param2}) + end +end + +local function getzs3v(msp) + local pos = {x = msp.x, y = msp.y-1, z = msp.z} + local nodename = advtrains.ndb.get_node(pos).name + local speed = nodename:match("^advtrains_signals_ks:zs3v_(%w+)_%d+$") + if not speed then return nil end + speed = tonumber(speed) + if not speed then return false end + return speed +end + local setaspectf = function(rot) return function(pos, node, asp) + setzs3(pos, asp.main, rot) if asp.main == 0 then if asp.shunt then advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:hs_shunt_"..rot, param2 = node.param2}) else advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:hs_danger_"..rot, param2 = node.param2}) end + setzs3v(pos, nil, rot) else - if asp.dst ~= 0 and asp.main == -1 then + if not asp.dst or asp.dst == -1 then advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:hs_free_"..rot, param2 = node.param2}) - else + elseif asp.dst == 0 then advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:hs_slow_"..rot, param2 = node.param2}) + else + advtrains.ndb.swap_node(pos, {name="advtrains_signals_ks:hs_nextslow_"..rot, param2 = node.param2}) end + setzs3v(pos, asp.dst, rot) end end end local suppasp = { - main = {0, 6, -1}, - dst = {0, false}, + main = {0, 4, 6, 8, 12, 16, -1}, + dst = {0, 4, 6, 8, 12, 16, -1, false}, shunt = nil, proceed_as_main = true, info = { @@ -66,6 +116,10 @@ local suppasp_ra = { 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:sign_lf") +advtrains.trackplacer.register_tracktype("advtrains_signals_ks:sign_lf7") +advtrains.trackplacer.register_tracktype("advtrains_signals_ks:zs3") +advtrains.trackplacer.register_tracktype("advtrains_signals_ks:zs3v") advtrains.trackplacer.register_tracktype("advtrains_signals_ks:mast") for _, rtab in ipairs({ @@ -76,16 +130,48 @@ for _, rtab in ipairs({ }) do local rot = rtab.rot for typ, prts in pairs({ - danger = {asp = advtrains.interlocking.DANGER, n = "slow", ici=true}, - slow = {asp = { main = 6, proceed_as_main = true} , n = "free"}, - free = {asp = { main = -1, proceed_as_main = true} , n = "shunt"}, - shunt = {asp = { main = 0, shunt = true} , n = "danger"}, + danger = {asp = advtrains.interlocking.DANGER, n = "slow", ici=true}, + slow = { + asp = function(pos) + return { main = getzs3(pos) or -1, proceed_as_main = true, dst = 0 } + end, + n = "nextslow" + }, + nextslow = { + asp = function(pos) + return { main = getzs3(pos) or -1, proceed_as_main = true, dst = getzs3v(pos) or 6 } + end, + n = "free" + }, + free = { + asp = function(pos) + return { main = getzs3(pos) or -1, proceed_as_main = true, dst = -1 } + end, + n = "shunt" + }, + shunt = {asp = { main = 0, shunt = true} , n = "danger"}, }) do + local tile = "advtrains_signals_ks_ltm_"..typ..".png" + local afunc = prts.asp + if type(afunc) == "table" then + afunc = function() return prts.asp end + end + if typ == "nextslow" then + tile = { + name = tile, + animation = { + type = "vertical_frames", + aspect_w = 32, + aspect_h = 32, + length = 1, + } + } + end 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"}, + tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png", "advtrains_signals_ks_head.png", tile}, paramtype="light", sunlight_propagates=true, @@ -108,16 +194,14 @@ for _, rtab in ipairs({ advtrains = { set_aspect = setaspectf(rot), supported_aspects = suppasp, - get_aspect = function(pos, node) - return prts.asp - end, + get_aspect = afunc, }, on_rightclick = advtrains.interlocking.signal_rc_handler, can_dig = advtrains.interlocking.signal_can_dig, after_dig_node = advtrains.interlocking.signal_after_dig, }) -- rotatable by trackworker - advtrains.trackplacer.add_worked("advtrains_signals_ks:hs", typ, "_"..rot, prts.n) + advtrains.trackplacer.add_worked("advtrains_signals_ks:hs", typ, "_"..rot) end @@ -162,26 +246,16 @@ for _, rtab in ipairs({ after_dig_node = advtrains.interlocking.signal_after_dig, }) -- rotatable by trackworker - advtrains.trackplacer.add_worked("advtrains_signals_ks:ra", typ, "_"..rot, prts.n) + advtrains.trackplacer.add_worked("advtrains_signals_ks:ra", typ, "_"..rot) end - - --Schilder: - for typ, prts in pairs({ - -- Speed restrictions: - ["8"] = {asp = { main = 8, shunt = true }, n = "12", ici=true}, - ["12"] = {asp = { main = 12, shunt = true }, n = "16"}, - ["16"] = {asp = { main = 16, shunt = true }, n = "e"}, - -- Speed restriction lifted - ["e"] = {asp = { main = -1, shunt = true }, n = "hfs"}, - -- Halt for shunt moves: - ["hfs"] = {asp = { main = false, shunt = false }, n = "pam"}, - ["pam"] = {asp = { main = -1, shunt = false, proceed_as_main = true}, n = "8"}, - }) do - minetest.register_node("advtrains_signals_ks:sign_"..typ.."_"..rot, { - description = "Signal Sign", + + -- Schilder: + local function register_sign(prefix, typ, nxt, description, mesh, tile2, dtyp, inv, asp) + minetest.register_node("advtrains_signals_ks:"..prefix.."_"..typ.."_"..rot, { + description = description, drawtype = "mesh", - mesh = "advtrains_signals_ks_sign_smr"..rot..".obj", - tiles = {"advtrains_signals_ks_signpost.png", "advtrains_signals_ks_sign_"..typ..".png"}, + mesh = "advtrains_signals_ks_"..mesh.."_smr"..rot..".obj", + tiles = {"advtrains_signals_ks_signpost.png", tile2}, paramtype="light", sunlight_propagates=true, @@ -197,22 +271,123 @@ for _, rtab in ipairs({ 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, + not_in_creative_inventory = (rtab.ici and typ == dtyp) and 0 or 1, }, - drop = "advtrains_signals_ks:sign_8_0", - inventory_image = "advtrains_signals_ks_sign_8.png", + drop = "advtrains_signals_ks:"..prefix.."_"..dtyp.."_0", + inventory_image = inv, advtrains = { - -- This is a static signal! No set_aspect - get_aspect = function(pos, node) - return prts.asp - end, + get_aspect = function() return asp end }, on_rightclick = advtrains.interlocking.signal_rc_handler, can_dig = advtrains.interlocking.signal_can_dig, after_dig_node = advtrains.interlocking.signal_after_dig, }) -- rotatable by trackworker - advtrains.trackplacer.add_worked("advtrains_signals_ks:sign", typ, "_"..rot, prts.n) + advtrains.trackplacer.add_worked("advtrains_signals_ks:"..prefix, typ, "_"..rot, nxt) + end + + for typ, prts in pairs { + ["hfs"] = {asp = {main = false, shunt = false}, n = "pam", mesh = "_hfs"}, + ["pam"] = {asp = {main = -1, shunt = false, proceed_as_main = true}, n = "hfs"} + } do + local mesh = prts.mesh or "" + local tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_"..typ..".png^[makealpha:255,255,255)" + if typ == "hfs" then + tile2 = "advtrains_signals_ks_sign_hfs.png" + end + register_sign("sign", typ, prts.n, "Signal Sign", "sign"..mesh, tile2, "hfs", "advtrains_signals_ks_sign_lf7.png", prts.asp) + end + + for typ, prts in pairs { + -- Speed restrictions: + ["4"] = {asp = { main = 4, shunt = true }, n = "6"}, + ["6"] = {asp = { main = 6, shunt = true }, n = "8"}, + ["8"] = {asp = { main = 8, shunt = true }, n = "12"}, + ["12"] = {asp = { main = 12, shunt = true }, n = "16"}, + ["16"] = {asp = { main = 16, shunt = true }, n = "e"}, + -- Speed restriction lifted + ["e"] = {asp = { main = -1, shunt = true }, n = "4", mesh = "_zs10"}, + } do + local mesh = tonumber(typ) and "_zs3" or prts.mesh or "" + local tile2 = "[combine:40x40:0,0=\\(advtrains_signals_ks_sign_off.png\\^[resize\\:40x40\\):3,-2=advtrains_signals_ks_sign_"..typ..".png^[invert:rgb" + if typ == "e" then + tile2 = "advtrains_signals_ks_sign_zs10.png" + end + register_sign("sign", typ, prts.n, "Permanent local speed restriction sign", "sign"..mesh, tile2, "8", "advtrains_signals_ks_sign_8.png^[invert:rgb", prts.asp) + end + + for typ, prts in pairs { + ["4"] = {main = 4, n = "6"}, + ["6"] = {main = 6, n = "8"}, + ["8"] = {main = 8, n = "12"}, + ["12"] = {main = 12, n = "16"}, + ["16"] = {main = 16, n = "e"}, + ["e"] = {main = -1, n = "4"}, + } do + local tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_"..typ..".png^[makealpha:255,255,255)"..(typ == "e" and "" or "^[multiply:orange") + local inv = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_8.png^[makealpha:255,255,255)^[multiply:orange" + register_sign("sign_lf", typ, prts.n, "Temporary local speed restriction sign", "sign", tile2, "8", inv, {main = prts.main, shunt = true, type = "temp"}) + end + + for typ, prts in pairs { + ["4"] = {main = 4, n = "6"}, + ["6"] = {main = 6, n = "8"}, + ["8"] = {main = 8, n = "12"}, + ["12"] = {main = 12, n = "16"}, + ["16"] = {main = 16, n = "20"}, + ["20"] = {main = 20, n = "4"}, + } do + local tile2 = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_"..typ..".png^[makealpha:255,255,255)" + local inv = "advtrains_signals_ks_sign_lf7.png^(advtrains_signals_ks_sign_8.png^[makealpha:255,255,255)" + register_sign("sign_lf7", typ, prts.n, "Line speed restriction sign", "sign", tile2, "8", inv, {main = prts.main, shunt = true, type = "line"}) + end + + -- Geschwindigkeits(vor)anzeiger für Ks-Signale + for typ, prts in pairs({ + ["off"] = {n = "4", ici = true}, + ["4"] = {n = "6"}, + ["6"] = {n = "8"}, + ["8"] = {n = "12"}, + ["12"] = {n = "16"}, + ["16"] = {n = "off"}, + }) do + local def = { + drawtype = "mesh", + tiles = {"advtrains_signals_ks_mast.png","advtrains_signals_ks_head.png","advtrains_signals_ks_sign_"..typ..".png^[invert:rgb^[noalpha"}, + 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, + save_in_at_nodedb = 1, + not_in_creative_inventory = (rtab.ici and prts.ici) and 0 or 1, + }, + after_dig_node = function(pos) advtrains.ndb.update(pos) end + } + + -- Zs 3 + local t = table.copy(def) + t.description = "Ks speed limit indicator" + t.mesh = "advtrains_signals_ks_zs_top_smr"..rot..".obj" + t.drop = "advtrains_signals_ks:zs3_off_0" + t.selection_box.fixed[1][5] = 0 + minetest.register_node("advtrains_signals_ks:zs3_"..typ.."_"..rot, t) + advtrains.trackplacer.add_worked("advtrains_signals_ks:zs3", typ, "_"..rot) + + -- Zs 3v + local t = table.copy(def) + t.description = "Ks distant speed limit indicator" + t.mesh = "advtrains_signals_ks_zs_bottom_smr"..rot..".obj" + t.drop = "advtrains_signals_ks:zs3v_off_0" + t.tiles[3] = t.tiles[3] .. "^[multiply:yellow" + minetest.register_node("advtrains_signals_ks:zs3v_"..typ.."_"..rot, t) + advtrains.trackplacer.add_worked("advtrains_signals_ks:zs3v", typ, "_"..rot) end minetest.register_node("advtrains_signals_ks:mast_mast_"..rot, { @@ -269,6 +444,23 @@ minetest.register_craft({ }, }) +minetest.register_craft({ + output = "advtrains_signals_ks:zs3_off_0 2", + recipe = { + {"","default:steel_ingot",""}, + {"default:steel_ingot","dye:white","default:steel_ingot"}, + {"","advtrains_signals_ks:mast_mast_0",""} + }, +}) +minetest.register_craft({ + output = "advtrains_signals_ks:zs3v_off_0 2", + recipe = { + {"","default:steel_ingot",""}, + {"default:steel_ingot","dye:yellow","default:steel_ingot"}, + {"","advtrains_signals_ks:mast_mast_0",""} + }, +}) + local sign_material = "default:sign_wall_steel" --fallback if minetest.get_modpath("basic_materials") then sign_material = "basic_materials:plastic_sheet" @@ -284,3 +476,23 @@ minetest.register_craft({ }, }) sign_material = nil + +minetest.register_craft{ + output = "advtrains_signals_ks:sign_8_0 1", + recipe = {{"advtrains_signals_ks:sign_lf7_8_0"}} +} + +minetest.register_craft{ + output = "advtrains_signals_ks:sign_hfs_0 1", + recipe = {{"advtrains_signals_ks:sign_8_0"}} +} + +minetest.register_craft{ + output = "advtrains_signals_ks:sign_lf_8_0 1", + recipe = {{"advtrains_signals_ks:sign_hfs_0"}} +} + +minetest.register_craft{ + output = "advtrains_signals_ks:sign_lf7_8_0 1", + recipe = {{"advtrains_signals_ks:sign_lf_8_0"}} +} diff --git a/advtrains_signals_ks/init_degrotate_nodes.lua b/advtrains_signals_ks/init_degrotate_nodes.lua index da1c980..bd213cb 100644 --- a/advtrains_signals_ks/init_degrotate_nodes.lua +++ b/advtrains_signals_ks/init_degrotate_nodes.lua @@ -60,7 +60,7 @@ minetest.register_node("advtrains_signals_ks:zs_top", { type = "fixed", fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, }, - mesh = "advtrains_signals_ks_zs_top.obj", + mesh = "advtrains_signals_ks_zs_top_smr0.obj", tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png"}, description="Ks Speed Restriction Signal (top)", sunlight_propagates=true, @@ -81,7 +81,7 @@ minetest.register_node("advtrains_signals_ks:zs_bottom", { type = "fixed", fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, }, - mesh = "advtrains_signals_ks_zs_bottom.obj", + mesh = "advtrains_signals_ks_zs_bottom_smr0.obj", tiles = {"advtrains_signals_ks_mast.png", "advtrains_signals_ks_head.png"}, description="Ks Speed Restriction Signal (bottom)", sunlight_propagates=true, diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj new file mode 100644 index 0000000..6452345 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj @@ -0,0 +1,262 @@ +# Blender v2.92.0 OBJ File: 'rangierhalttafel.blend' +# www.blender.org +mtllib advtrains_signals_ks_sign_hfs_smr0.mtl +o Cube +v -0.024805 1.055075 -0.274918 +v -0.035079 1.055075 -0.299723 +v -0.000000 1.055075 -0.264644 +v -0.024805 1.055075 -0.324528 +v 0.024805 1.055075 -0.274918 +v -0.000000 1.055075 -0.334802 +v 0.035079 1.055075 -0.299723 +v 0.024805 1.055075 -0.324528 +v 0.024805 1.055075 -0.324528 +v 0.035079 1.055075 -0.299723 +v -0.000000 1.055075 -0.334802 +v 0.024805 1.055075 -0.274918 +v -0.035079 1.055075 -0.299723 +v -0.000000 1.055075 -0.264644 +v -0.024805 1.055075 -0.324528 +v -0.024805 1.055075 -0.274918 +v -0.000000 -0.698893 -0.299723 +v -0.035079 -0.499729 -0.299723 +v -0.024804 -0.499729 -0.274918 +v 0.000000 -0.499729 -0.264644 +v 0.024805 -0.499729 -0.274918 +v 0.035080 -0.499729 -0.299723 +v 0.024805 -0.499729 -0.324528 +v 0.000000 -0.499729 -0.334802 +v -0.024804 -0.499729 -0.324528 +v 0.340021 0.866098 -0.338486 +v 0.340021 0.866098 -0.324528 +v -0.340022 0.866098 -0.338486 +v -0.340022 0.866098 -0.324528 +v -0.333488 0.932433 -0.338486 +v -0.333488 0.932433 -0.324528 +v -0.314139 0.996219 -0.338486 +v -0.314139 0.996219 -0.324528 +v -0.282718 1.055004 -0.338486 +v -0.282718 1.055004 -0.324528 +v -0.240432 1.106529 -0.338486 +v -0.240432 1.106529 -0.324528 +v -0.188906 1.148815 -0.338486 +v -0.188906 1.148815 -0.324528 +v -0.130121 1.180236 -0.338486 +v -0.130121 1.180236 -0.324528 +v -0.066335 1.199586 -0.338486 +v -0.066335 1.199586 -0.324528 +v -0.000000 1.206119 -0.338486 +v -0.000000 1.206119 -0.324528 +v 0.066335 1.199586 -0.338486 +v 0.066335 1.199586 -0.324528 +v 0.130121 1.180236 -0.338486 +v 0.130121 1.180236 -0.324528 +v 0.188906 1.148815 -0.338486 +v 0.188906 1.148815 -0.324528 +v 0.240431 1.106529 -0.338486 +v 0.240431 1.106529 -0.324528 +v 0.282717 1.055003 -0.338486 +v 0.282717 1.055003 -0.324528 +v 0.314139 0.996218 -0.338486 +v 0.314139 0.996218 -0.324528 +v 0.333488 0.932432 -0.338486 +v 0.333488 0.932432 -0.324528 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.009730 0.997467 +vt 0.000000 0.983831 +vt 0.000000 0.967080 +vt 0.009730 0.957025 +vt 0.023490 0.959558 +vt 0.033220 0.973194 +vt 0.033220 0.989946 +vt 0.023490 1.000000 +vt 0.250000 0.984749 +vt 0.250000 0.001193 +vt 0.265954 0.000000 +vt 0.265954 0.983556 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.983556 +vt 0.250000 0.000000 +vt 0.265954 0.001193 +vt 0.265954 0.984749 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.639500 +vt 0.250000 0.005108 +vt 0.265954 0.000000 +vt 0.265954 0.634392 +vt 0.250000 0.634392 +vt 0.250000 0.000000 +vt 0.265954 0.005108 +vt 0.265954 0.639500 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.258978 0.361919 +vt 0.250000 0.361919 +vt 0.250000 0.331604 +vt 0.258978 0.331604 +vt 0.250000 0.295958 +vt 0.258978 0.295958 +vt 0.250000 0.256351 +vt 0.258978 0.256351 +vt 0.250000 0.214304 +vt 0.258978 0.214304 +vt 0.250000 0.171433 +vt 0.258978 0.171433 +vt 0.250000 0.129386 +vt 0.258978 0.129386 +vt 0.250000 0.089778 +vt 0.258978 0.089778 +vt 0.250000 0.054132 +vt 0.258978 0.054132 +vt 0.250000 0.023818 +vt 0.258978 0.023818 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258977 0.223103 +vt 0.250000 0.223103 +vt 0.250000 0.196398 +vt 0.258977 0.196398 +vt 0.250000 0.163663 +vt 0.258977 0.163663 +vt 0.250000 0.126156 +vt 0.258977 0.126156 +vt 0.218691 0.000000 +vt 0.218691 0.437382 +vt 0.176027 0.433180 +vt 0.135002 0.420735 +vt 0.097193 0.400526 +vt 0.064053 0.373329 +vt 0.036856 0.340189 +vt 0.016647 0.302381 +vt 0.004202 0.261356 +vt 0.000000 0.218691 +vt 0.004202 0.176027 +vt 0.016647 0.135002 +vt 0.036856 0.097193 +vt 0.064053 0.064053 +vt 0.097193 0.036856 +vt 0.135001 0.016647 +vt 0.176026 0.004202 +vt 0.250000 0.085319 +vt 0.258977 0.085319 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258978 0.437382 +vt 0.250000 0.437382 +vt 0.250000 0.042722 +vt 0.258977 0.042722 +vt 0.250000 0.000000 +vt 0.258977 0.000000 +vt 0.218691 0.562618 +vt 0.218691 1.000000 +vt 0.176026 0.995798 +vt 0.135001 0.983353 +vt 0.097193 0.963144 +vt 0.064053 0.935947 +vt 0.036856 0.902807 +vt 0.016647 0.864998 +vt 0.004202 0.823973 +vt 0.000000 0.781309 +vt 0.004202 0.738644 +vt 0.016647 0.697619 +vt 0.036856 0.659811 +vt 0.064053 0.626671 +vt 0.097193 0.599474 +vt 0.135002 0.579265 +vt 0.176027 0.566820 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9239 0.0000 0.3827 +vn 0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 -0.0000 0.9239 +vn -0.9239 -0.0000 -0.3827 +vn -0.9239 -0.0000 0.3827 +vn -0.3827 -0.0000 -0.9239 +vn -0.9952 0.0980 0.0000 +vn -0.9569 0.2903 0.0000 +vn -0.8819 0.4714 0.0000 +vn -0.7730 0.6344 0.0000 +vn -0.6344 0.7730 0.0000 +vn -0.4714 0.8819 0.0000 +vn -0.2903 0.9569 0.0000 +vn -0.0980 0.9952 0.0000 +vn 0.0980 0.9952 0.0000 +vn 0.2903 0.9569 0.0000 +vn 0.4714 0.8819 0.0000 +vn 0.6344 0.7730 0.0000 +vn 0.7730 0.6344 0.0000 +vn 0.8819 0.4714 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.9569 0.2903 0.0000 +vn 0.9952 0.0980 0.0000 +vn -0.0000 0.0000 -1.0000 +g Cube_Cube_Material +usemtl Material +s off +f 8/1/1 6/2/1 11/3/1 9/4/1 +f 2/5/1 16/6/1 1/7/1 13/8/1 +f 12/9/1 10/10/1 7/11/1 5/12/1 +f 6/2/1 4/13/1 15/14/1 11/3/1 +f 16/6/1 14/15/1 3/16/1 1/7/1 +f 10/10/1 8/1/1 9/4/1 7/11/1 +f 4/17/2 2/18/2 16/19/2 14/20/2 12/21/2 10/22/2 8/23/2 6/24/2 +f 5/25/3 21/26/3 22/27/3 7/28/3 +f 4/13/1 2/5/1 13/8/1 15/14/1 +f 14/15/1 12/9/1 5/12/1 3/16/1 +f 3/29/4 20/30/4 21/31/4 5/32/4 +f 9/33/5 23/34/5 24/35/5 11/36/5 +f 7/37/6 22/38/6 23/39/6 9/40/6 +f 1/41/7 19/42/7 20/43/7 3/44/7 +f 15/45/8 25/46/8 18/47/8 13/48/8 +f 13/49/9 18/50/9 19/51/9 1/52/9 +f 11/53/10 24/54/10 25/55/10 15/56/10 +f 28/57/11 29/58/11 31/59/11 30/60/11 +f 30/60/12 31/59/12 33/61/12 32/62/12 +f 32/62/13 33/61/13 35/63/13 34/64/13 +f 34/64/14 35/63/14 37/65/14 36/66/14 +f 36/66/15 37/65/15 39/67/15 38/68/15 +f 38/68/16 39/67/16 41/69/16 40/70/16 +f 40/70/17 41/69/17 43/71/17 42/72/17 +f 42/72/18 43/71/18 45/73/18 44/74/18 +f 44/74/19 45/73/19 47/75/19 46/76/19 +f 46/76/20 47/75/20 49/77/20 48/78/20 +f 48/79/21 49/80/21 51/81/21 50/82/21 +f 50/82/22 51/81/22 53/83/22 52/84/22 +f 52/84/23 53/83/23 55/85/23 54/86/23 +f 29/87/1 27/88/1 59/89/1 57/90/1 55/91/1 53/92/1 51/93/1 49/94/1 47/95/1 45/96/1 43/97/1 41/98/1 39/99/1 37/100/1 35/101/1 33/102/1 31/103/1 +f 54/86/24 55/85/24 57/104/24 56/105/24 +f 26/106/25 27/107/25 29/108/25 28/109/25 +f 56/105/26 57/104/26 59/110/26 58/111/26 +f 58/111/27 59/110/27 27/112/27 26/113/27 +g Cube_Cube_Display +usemtl Display +f 26/114/28 28/115/28 30/116/28 32/117/28 34/118/28 36/119/28 38/120/28 40/121/28 42/122/28 44/123/28 46/124/28 48/125/28 50/126/28 52/127/28 54/128/28 56/129/28 58/130/28 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj new file mode 100644 index 0000000..e126edf --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj @@ -0,0 +1,262 @@ +# Blender v2.92.0 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_hfs_smr30.mtl +o Cube.001 +v 0.171853 1.055075 -0.276406 +v 0.154594 1.055075 -0.296973 +v 0.154594 1.055075 -0.296973 +v 0.171853 1.055075 -0.276406 +v 0.107281 1.055075 -0.282055 +v 0.104941 1.055075 -0.255309 +v 0.104941 1.055075 -0.255309 +v 0.107281 1.055075 -0.282055 +v 0.148945 1.055075 -0.232402 +v 0.169512 1.055075 -0.249660 +v 0.169512 1.055075 -0.249660 +v 0.148945 1.055075 -0.232402 +v 0.127848 1.055075 -0.299313 +v 0.127848 1.055075 -0.299313 +v 0.122199 1.055075 -0.234742 +v 0.122199 1.055075 -0.234742 +v 0.148945 -0.499729 -0.232402 +v 0.169513 -0.499729 -0.249659 +v 0.122199 -0.499729 -0.234742 +v 0.171853 -0.499729 -0.276406 +v 0.154594 -0.499729 -0.296973 +v 0.104942 -0.499729 -0.255308 +v 0.127849 -0.499729 -0.299313 +v 0.107281 -0.499729 -0.282055 +v -0.145308 0.866098 -0.457245 +v -0.151753 0.866098 -0.444865 +v -0.145957 0.932433 -0.441847 +v -0.139512 0.932433 -0.454228 +v -0.128794 0.996219 -0.432913 +v -0.122349 0.996219 -0.445294 +v -0.100924 1.055004 -0.418404 +v -0.094479 1.055004 -0.430785 +v -0.063415 1.106529 -0.398879 +v -0.056970 1.106529 -0.411260 +v -0.017711 1.148815 -0.375087 +v -0.011266 1.148815 -0.387468 +v 0.034432 1.180236 -0.347943 +v 0.040877 1.180236 -0.360324 +v 0.091010 1.199586 -0.318490 +v 0.097456 1.199586 -0.330871 +v 0.149850 1.206119 -0.287860 +v 0.156295 1.206119 -0.300241 +v 0.208690 1.199586 -0.257230 +v 0.215135 1.199586 -0.269611 +v 0.265269 1.180236 -0.227777 +v 0.271714 1.180236 -0.240157 +v 0.317412 1.148815 -0.200633 +v 0.323857 1.148815 -0.213014 +v 0.363115 1.106529 -0.176841 +v 0.369560 1.106529 -0.189222 +v 0.400623 1.055003 -0.157316 +v 0.407068 1.055003 -0.169697 +v 0.451453 0.866098 -0.130856 +v 0.445658 0.932432 -0.133872 +v 0.428495 0.996218 -0.142807 +v 0.434940 0.996218 -0.155187 +v 0.457898 0.866098 -0.143236 +v 0.452103 0.932432 -0.146253 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.009730 0.997467 +vt 0.000000 0.983831 +vt 0.000000 0.967080 +vt 0.009730 0.957025 +vt 0.023490 0.959558 +vt 0.033220 0.973194 +vt 0.033220 0.989946 +vt 0.023490 1.000000 +vt 0.250000 0.984749 +vt 0.250000 0.001193 +vt 0.265954 0.000000 +vt 0.265954 0.983556 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.983556 +vt 0.250000 0.000000 +vt 0.265954 0.001193 +vt 0.265954 0.984749 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.639500 +vt 0.250000 0.005108 +vt 0.265954 0.000000 +vt 0.265954 0.634392 +vt 0.250000 0.634392 +vt 0.250000 0.000000 +vt 0.265954 0.005108 +vt 0.265954 0.639500 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.258978 0.361919 +vt 0.250000 0.361919 +vt 0.250000 0.331604 +vt 0.258978 0.331604 +vt 0.250000 0.295958 +vt 0.258978 0.295958 +vt 0.250000 0.256351 +vt 0.258978 0.256351 +vt 0.250000 0.214304 +vt 0.258978 0.214304 +vt 0.250000 0.171433 +vt 0.258978 0.171433 +vt 0.250000 0.129386 +vt 0.258978 0.129386 +vt 0.250000 0.089778 +vt 0.258978 0.089778 +vt 0.250000 0.054132 +vt 0.258978 0.054132 +vt 0.250000 0.023818 +vt 0.258978 0.023818 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258977 0.223103 +vt 0.250000 0.223103 +vt 0.250000 0.196398 +vt 0.258977 0.196398 +vt 0.250000 0.163663 +vt 0.258977 0.163663 +vt 0.250000 0.126156 +vt 0.258977 0.126156 +vt 0.218691 0.000000 +vt 0.218691 0.437382 +vt 0.176027 0.433180 +vt 0.135002 0.420735 +vt 0.097193 0.400526 +vt 0.064053 0.373329 +vt 0.036856 0.340189 +vt 0.016647 0.302381 +vt 0.004202 0.261356 +vt 0.000000 0.218691 +vt 0.004202 0.176027 +vt 0.016647 0.135002 +vt 0.036856 0.097193 +vt 0.064053 0.064053 +vt 0.097193 0.036856 +vt 0.135001 0.016647 +vt 0.176026 0.004202 +vt 0.250000 0.085319 +vt 0.258977 0.085319 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258978 0.437382 +vt 0.250000 0.437382 +vt 0.250000 0.042722 +vt 0.258977 0.042722 +vt 0.250000 0.000000 +vt 0.258977 0.000000 +vt 0.218691 0.562618 +vt 0.218691 1.000000 +vt 0.176026 0.995798 +vt 0.135001 0.983353 +vt 0.097193 0.963144 +vt 0.064053 0.935947 +vt 0.036856 0.902807 +vt 0.016647 0.864998 +vt 0.004202 0.823973 +vt 0.000000 0.781309 +vt 0.004202 0.738644 +vt 0.016647 0.697619 +vt 0.036856 0.659811 +vt 0.064053 0.626671 +vt 0.097193 0.599474 +vt 0.135002 0.579265 +vt 0.176027 0.566820 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.6428 0.0000 0.7660 +vn -0.0872 -0.0000 0.9962 +vn 0.7660 0.0000 -0.6428 +vn 0.9962 0.0000 0.0872 +vn -0.7660 -0.0000 0.6428 +vn -0.6428 -0.0000 -0.7660 +vn -0.9962 -0.0000 -0.0872 +vn 0.0872 -0.0000 -0.9962 +vn -0.8827 0.0980 -0.4595 +vn -0.8488 0.2903 -0.4419 +vn -0.7823 0.4714 -0.4072 +vn -0.6857 0.6344 -0.3569 +vn -0.5627 0.7730 -0.2929 +vn -0.4181 0.8819 -0.2177 +vn -0.2575 0.9569 -0.1340 +vn -0.0869 0.9952 -0.0453 +vn 0.0869 0.9952 0.0453 +vn 0.2575 0.9569 0.1340 +vn 0.4181 0.8819 0.2177 +vn 0.5627 0.7730 0.2929 +vn 0.6857 0.6344 0.3569 +vn -0.4617 0.0000 0.8870 +vn 0.7823 0.4714 0.4072 +vn 0.0000 -1.0000 0.0000 +vn 0.8488 0.2903 0.4419 +vn 0.8827 0.0980 0.4595 +vn 0.4617 0.0000 -0.8870 +g Cube.001_Cube.001_Material.001 +usemtl Material.001 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/1 10/10/1 11/11/1 12/12/1 +f 2/2/1 13/13/1 14/14/1 3/3/1 +f 6/6/1 15/15/1 16/16/1 7/7/1 +f 10/10/1 1/1/1 4/4/1 11/11/1 +f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2 +f 12/25/3 17/26/3 18/27/3 11/28/3 +f 13/13/1 5/5/1 8/8/1 14/14/1 +f 15/15/1 9/9/1 12/12/1 16/16/1 +f 16/29/4 19/30/4 17/31/4 12/32/4 +f 4/33/5 20/34/5 21/35/5 3/36/5 +f 11/37/6 18/38/6 20/39/6 4/40/6 +f 7/41/7 22/42/7 19/43/7 16/44/7 +f 14/45/8 23/46/8 24/47/8 8/48/8 +f 8/49/9 24/50/9 22/51/9 7/52/9 +f 3/53/10 21/54/10 23/55/10 14/56/10 +f 25/57/11 26/58/11 27/59/11 28/60/11 +f 28/60/12 27/59/12 29/61/12 30/62/12 +f 30/62/13 29/61/13 31/63/13 32/64/13 +f 32/64/14 31/63/14 33/65/14 34/66/14 +f 34/66/15 33/65/15 35/67/15 36/68/15 +f 36/68/16 35/67/16 37/69/16 38/70/16 +f 38/70/17 37/69/17 39/71/17 40/72/17 +f 40/72/18 39/71/18 41/73/18 42/74/18 +f 42/74/19 41/73/19 43/75/19 44/76/19 +f 44/76/20 43/75/20 45/77/20 46/78/20 +f 46/79/21 45/80/21 47/81/21 48/82/21 +f 48/82/22 47/81/22 49/83/22 50/84/22 +f 50/84/23 49/83/23 51/85/23 52/86/23 +f 26/87/24 53/88/24 54/89/24 55/90/24 51/91/24 49/92/24 47/93/24 45/94/24 43/95/24 41/96/24 39/97/24 37/98/24 35/99/24 33/100/24 31/101/24 29/102/24 27/103/24 +f 52/86/25 51/85/25 55/104/25 56/105/25 +f 57/106/26 53/107/26 26/108/26 25/109/26 +f 56/105/27 55/104/27 54/110/27 58/111/27 +f 58/111/28 54/110/28 53/112/28 57/113/28 +g Cube.001_Cube.001_Display +usemtl Display +f 57/114/29 25/115/29 28/116/29 30/117/29 32/118/29 34/119/29 36/120/29 38/121/29 40/122/29 42/123/29 44/124/29 46/125/29 48/126/29 50/127/29 52/128/29 56/129/29 58/130/29 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj new file mode 100644 index 0000000..847f68c --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj @@ -0,0 +1,262 @@ +# Blender v2.92.0 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_hfs_smr45.mtl +o Cube.001 +v 0.247016 1.055075 -0.211936 +v 0.236741 1.055075 -0.236741 +v 0.236741 1.055075 -0.236741 +v 0.247016 1.055075 -0.211936 +v 0.187132 1.055075 -0.236741 +v 0.176857 1.055075 -0.211936 +v 0.176857 1.055075 -0.211936 +v 0.187132 1.055075 -0.236741 +v 0.211936 1.055075 -0.176857 +v 0.236741 1.055075 -0.187132 +v 0.236741 1.055075 -0.187132 +v 0.211936 1.055075 -0.176857 +v 0.211936 1.055075 -0.247016 +v 0.211936 1.055075 -0.247016 +v 0.187132 1.055075 -0.187132 +v 0.187132 1.055075 -0.187132 +v 0.211936 -0.499729 -0.176857 +v 0.236741 -0.499729 -0.187131 +v 0.187132 -0.499729 -0.187132 +v 0.247016 -0.499729 -0.211936 +v 0.236741 -0.499729 -0.236741 +v 0.176857 -0.499729 -0.211935 +v 0.211937 -0.499729 -0.247015 +v 0.187132 -0.499729 -0.236741 +v -0.001086 0.866098 -0.479778 +v -0.010956 0.866098 -0.469908 +v -0.006336 0.932433 -0.465288 +v 0.003534 0.932433 -0.475157 +v 0.007346 0.996219 -0.451606 +v 0.017216 0.996219 -0.461476 +v 0.029564 1.055004 -0.429388 +v 0.039434 1.055004 -0.439258 +v 0.059465 1.106529 -0.399487 +v 0.069335 1.106529 -0.409357 +v 0.095899 1.148815 -0.363053 +v 0.105769 1.148815 -0.372922 +v 0.137466 1.180236 -0.321485 +v 0.147336 1.180236 -0.331355 +v 0.182570 1.199586 -0.276382 +v 0.192440 1.199586 -0.286252 +v 0.229476 1.206119 -0.229476 +v 0.239346 1.206119 -0.239346 +v 0.276382 1.199586 -0.182570 +v 0.286252 1.199586 -0.192440 +v 0.321485 1.180236 -0.137466 +v 0.331355 1.180236 -0.147336 +v 0.363053 1.148815 -0.095899 +v 0.372922 1.148815 -0.105769 +v 0.399486 1.106529 -0.059466 +v 0.409356 1.106529 -0.069335 +v 0.429387 1.055003 -0.029565 +v 0.439257 1.055003 -0.039435 +v 0.469907 0.866098 0.010955 +v 0.465288 0.932432 0.006336 +v 0.451606 0.996218 -0.007346 +v 0.461476 0.996218 -0.017216 +v 0.479777 0.866098 0.001085 +v 0.475157 0.932432 -0.003534 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.009730 0.997467 +vt 0.000000 0.983831 +vt 0.000000 0.967080 +vt 0.009730 0.957025 +vt 0.023490 0.959558 +vt 0.033220 0.973194 +vt 0.033220 0.989946 +vt 0.023490 1.000000 +vt 0.250000 0.984749 +vt 0.250000 0.001193 +vt 0.265954 0.000000 +vt 0.265954 0.983556 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.983556 +vt 0.250000 0.000000 +vt 0.265954 0.001193 +vt 0.265954 0.984749 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.639500 +vt 0.250000 0.005108 +vt 0.265954 0.000000 +vt 0.265954 0.634392 +vt 0.250000 0.634392 +vt 0.250000 0.000000 +vt 0.265954 0.005108 +vt 0.265954 0.639500 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.258978 0.361919 +vt 0.250000 0.361919 +vt 0.250000 0.331604 +vt 0.258978 0.331604 +vt 0.250000 0.295958 +vt 0.258978 0.295958 +vt 0.250000 0.256351 +vt 0.258978 0.256351 +vt 0.250000 0.214304 +vt 0.258978 0.214304 +vt 0.250000 0.171433 +vt 0.258978 0.171433 +vt 0.250000 0.129386 +vt 0.258978 0.129386 +vt 0.250000 0.089778 +vt 0.258978 0.089778 +vt 0.250000 0.054132 +vt 0.258978 0.054132 +vt 0.250000 0.023818 +vt 0.258978 0.023818 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258977 0.223103 +vt 0.250000 0.223103 +vt 0.250000 0.196398 +vt 0.258977 0.196398 +vt 0.250000 0.163663 +vt 0.258977 0.163663 +vt 0.250000 0.126156 +vt 0.258977 0.126156 +vt 0.218691 0.000000 +vt 0.218691 0.437382 +vt 0.176027 0.433180 +vt 0.135002 0.420735 +vt 0.097193 0.400526 +vt 0.064053 0.373329 +vt 0.036856 0.340189 +vt 0.016647 0.302381 +vt 0.004202 0.261356 +vt 0.000000 0.218691 +vt 0.004202 0.176027 +vt 0.016647 0.135002 +vt 0.036856 0.097193 +vt 0.064053 0.064053 +vt 0.097193 0.036856 +vt 0.135001 0.016647 +vt 0.176026 0.004202 +vt 0.250000 0.085319 +vt 0.258977 0.085319 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258978 0.437382 +vt 0.250000 0.437382 +vt 0.250000 0.042722 +vt 0.258977 0.042722 +vt 0.250000 0.000000 +vt 0.258977 0.000000 +vt 0.218691 0.562618 +vt 0.218691 1.000000 +vt 0.176026 0.995798 +vt 0.135001 0.983353 +vt 0.097193 0.963144 +vt 0.064053 0.935947 +vt 0.036856 0.902807 +vt 0.016647 0.864998 +vt 0.004202 0.823973 +vt 0.000000 0.781309 +vt 0.004202 0.738644 +vt 0.016647 0.697619 +vt 0.036856 0.659811 +vt 0.064053 0.626671 +vt 0.097193 0.599474 +vt 0.135002 0.579265 +vt 0.176027 0.566820 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.3827 0.0000 0.9239 +vn -0.3827 -0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 -0.0000 0.3827 +vn -0.3827 -0.0000 -0.9239 +vn -0.9239 -0.0000 -0.3827 +vn 0.3827 -0.0000 -0.9239 +vn -0.7037 0.0980 -0.7037 +vn -0.6767 0.2903 -0.6767 +vn -0.6236 0.4714 -0.6236 +vn -0.5466 0.6344 -0.5466 +vn -0.4486 0.7730 -0.4486 +vn -0.3333 0.8819 -0.3333 +vn -0.2053 0.9569 -0.2053 +vn -0.0693 0.9952 -0.0693 +vn 0.0693 0.9952 0.0693 +vn 0.2053 0.9569 0.2053 +vn 0.3333 0.8819 0.3333 +vn 0.4486 0.7730 0.4486 +vn 0.5466 0.6344 0.5466 +vn -0.7071 0.0000 0.7071 +vn 0.6236 0.4714 0.6236 +vn 0.0000 -1.0000 0.0000 +vn 0.6767 0.2903 0.6767 +vn 0.7037 0.0980 0.7037 +vn 0.7071 0.0000 -0.7071 +g Cube.001_Cube.001_Material.001 +usemtl Material.001 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/1 10/10/1 11/11/1 12/12/1 +f 2/2/1 13/13/1 14/14/1 3/3/1 +f 6/6/1 15/15/1 16/16/1 7/7/1 +f 10/10/1 1/1/1 4/4/1 11/11/1 +f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2 +f 12/25/3 17/26/3 18/27/3 11/28/3 +f 13/13/1 5/5/1 8/8/1 14/14/1 +f 15/15/1 9/9/1 12/12/1 16/16/1 +f 16/29/4 19/30/4 17/31/4 12/32/4 +f 4/33/5 20/34/5 21/35/5 3/36/5 +f 11/37/6 18/38/6 20/39/6 4/40/6 +f 7/41/7 22/42/7 19/43/7 16/44/7 +f 14/45/8 23/46/8 24/47/8 8/48/8 +f 8/49/9 24/50/9 22/51/9 7/52/9 +f 3/53/10 21/54/10 23/55/10 14/56/10 +f 25/57/11 26/58/11 27/59/11 28/60/11 +f 28/60/12 27/59/12 29/61/12 30/62/12 +f 30/62/13 29/61/13 31/63/13 32/64/13 +f 32/64/14 31/63/14 33/65/14 34/66/14 +f 34/66/15 33/65/15 35/67/15 36/68/15 +f 36/68/16 35/67/16 37/69/16 38/70/16 +f 38/70/17 37/69/17 39/71/17 40/72/17 +f 40/72/18 39/71/18 41/73/18 42/74/18 +f 42/74/19 41/73/19 43/75/19 44/76/19 +f 44/76/20 43/75/20 45/77/20 46/78/20 +f 46/79/21 45/80/21 47/81/21 48/82/21 +f 48/82/22 47/81/22 49/83/22 50/84/22 +f 50/84/23 49/83/23 51/85/23 52/86/23 +f 26/87/24 53/88/24 54/89/24 55/90/24 51/91/24 49/92/24 47/93/24 45/94/24 43/95/24 41/96/24 39/97/24 37/98/24 35/99/24 33/100/24 31/101/24 29/102/24 27/103/24 +f 52/86/25 51/85/25 55/104/25 56/105/25 +f 57/106/26 53/107/26 26/108/26 25/109/26 +f 56/105/27 55/104/27 54/110/27 58/111/27 +f 58/111/28 54/110/28 53/112/28 57/113/28 +g Cube.001_Cube.001_Display +usemtl Display +f 57/114/29 25/115/29 28/116/29 30/117/29 32/118/29 34/119/29 36/120/29 38/121/29 40/122/29 42/123/29 44/124/29 46/125/29 48/126/29 50/127/29 52/128/29 56/129/29 58/130/29 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj new file mode 100644 index 0000000..0d54e87 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj @@ -0,0 +1,262 @@ +# Blender v2.92.0 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_hfs_smr60.mtl +o Cube.001 +v 0.303593 1.055075 -0.117324 +v 0.302187 1.055075 -0.144136 +v 0.302187 1.055075 -0.144136 +v 0.303593 1.055075 -0.117324 +v 0.255424 1.055075 -0.160696 +v 0.237458 1.055075 -0.140744 +v 0.237458 1.055075 -0.140744 +v 0.255424 1.055075 -0.160696 +v 0.258816 1.055075 -0.095967 +v 0.285627 1.055075 -0.097372 +v 0.285627 1.055075 -0.097372 +v 0.258816 1.055075 -0.095967 +v 0.282235 1.055075 -0.162102 +v 0.282235 1.055075 -0.162102 +v 0.238864 1.055075 -0.113932 +v 0.238864 1.055075 -0.113932 +v 0.258816 -0.499729 -0.095967 +v 0.285628 -0.499729 -0.097371 +v 0.238864 -0.499729 -0.113932 +v 0.303593 -0.499729 -0.117324 +v 0.302187 -0.499729 -0.144136 +v 0.237459 -0.499729 -0.140743 +v 0.282236 -0.499729 -0.162101 +v 0.255424 -0.499729 -0.160696 +v 0.159129 0.866098 -0.452621 +v 0.146531 0.866098 -0.446612 +v 0.149344 0.932433 -0.440714 +v 0.161942 0.932433 -0.446723 +v 0.157674 0.996219 -0.423250 +v 0.170272 0.996219 -0.429259 +v 0.171201 1.055004 -0.394890 +v 0.183799 1.055004 -0.400899 +v 0.189406 1.106529 -0.356723 +v 0.202004 1.106529 -0.362732 +v 0.211588 1.148815 -0.310217 +v 0.224186 1.148815 -0.316226 +v 0.236896 1.180236 -0.257158 +v 0.249494 1.180236 -0.263167 +v 0.264356 1.199586 -0.199586 +v 0.276954 1.199586 -0.205595 +v 0.292914 1.206119 -0.139713 +v 0.305512 1.206119 -0.145722 +v 0.321472 1.199586 -0.079840 +v 0.334070 1.199586 -0.085849 +v 0.348933 1.180236 -0.022268 +v 0.361531 1.180236 -0.028277 +v 0.374240 1.148815 0.030791 +v 0.386839 1.148815 0.024782 +v 0.396422 1.106529 0.077297 +v 0.409021 1.106529 0.071287 +v 0.414627 1.055003 0.115463 +v 0.427225 1.055003 0.109454 +v 0.439297 0.866098 0.167185 +v 0.436484 0.932432 0.161288 +v 0.428155 0.996218 0.143824 +v 0.440753 0.996218 0.137815 +v 0.451895 0.866098 0.161176 +v 0.449083 0.932432 0.155279 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.033220 0.437382 +vt 0.009730 0.997467 +vt 0.000000 0.983831 +vt 0.000000 0.967080 +vt 0.009730 0.957025 +vt 0.023490 0.959558 +vt 0.033220 0.973194 +vt 0.033220 0.989946 +vt 0.023490 1.000000 +vt 0.250000 0.984749 +vt 0.250000 0.001193 +vt 0.265954 0.000000 +vt 0.265954 0.983556 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.983556 +vt 0.250000 0.000000 +vt 0.265954 0.001193 +vt 0.265954 0.984749 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.250000 0.639500 +vt 0.250000 0.005108 +vt 0.265954 0.000000 +vt 0.265954 0.634392 +vt 0.250000 0.634392 +vt 0.250000 0.000000 +vt 0.265954 0.005108 +vt 0.265954 0.639500 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.265954 0.000000 +vt 0.265954 1.000000 +vt 0.258978 0.361919 +vt 0.250000 0.361919 +vt 0.250000 0.331604 +vt 0.258978 0.331604 +vt 0.250000 0.295958 +vt 0.258978 0.295958 +vt 0.250000 0.256351 +vt 0.258978 0.256351 +vt 0.250000 0.214304 +vt 0.258978 0.214304 +vt 0.250000 0.171433 +vt 0.258978 0.171433 +vt 0.250000 0.129386 +vt 0.258978 0.129386 +vt 0.250000 0.089778 +vt 0.258978 0.089778 +vt 0.250000 0.054132 +vt 0.258978 0.054132 +vt 0.250000 0.023818 +vt 0.258978 0.023818 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258977 0.223103 +vt 0.250000 0.223103 +vt 0.250000 0.196398 +vt 0.258977 0.196398 +vt 0.250000 0.163663 +vt 0.258977 0.163663 +vt 0.250000 0.126156 +vt 0.258977 0.126156 +vt 0.218691 0.000000 +vt 0.218691 0.437382 +vt 0.176027 0.433180 +vt 0.135002 0.420735 +vt 0.097193 0.400526 +vt 0.064053 0.373329 +vt 0.036856 0.340189 +vt 0.016647 0.302381 +vt 0.004202 0.261356 +vt 0.000000 0.218691 +vt 0.004202 0.176027 +vt 0.016647 0.135002 +vt 0.036856 0.097193 +vt 0.064053 0.064053 +vt 0.097193 0.036856 +vt 0.135001 0.016647 +vt 0.176026 0.004202 +vt 0.250000 0.085319 +vt 0.258977 0.085319 +vt 0.250000 0.000000 +vt 0.258978 0.000000 +vt 0.258978 0.437382 +vt 0.250000 0.437382 +vt 0.250000 0.042722 +vt 0.258977 0.042722 +vt 0.250000 0.000000 +vt 0.258977 0.000000 +vt 0.218691 0.562618 +vt 0.218691 1.000000 +vt 0.176026 0.995798 +vt 0.135001 0.983353 +vt 0.097193 0.963144 +vt 0.064053 0.935947 +vt 0.036856 0.902807 +vt 0.016647 0.864998 +vt 0.004202 0.823973 +vt 0.000000 0.781309 +vt 0.004202 0.738644 +vt 0.016647 0.697619 +vt 0.036856 0.659811 +vt 0.064053 0.626671 +vt 0.097193 0.599474 +vt 0.135002 0.579265 +vt 0.176027 0.566820 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0523 0.0000 0.9986 +vn -0.6691 -0.0000 0.7431 +vn 0.9986 0.0000 -0.0524 +vn 0.7431 0.0000 0.6691 +vn -0.9986 -0.0000 0.0523 +vn -0.0523 -0.0000 -0.9986 +vn -0.7431 -0.0000 -0.6691 +vn 0.6691 -0.0000 -0.7431 +vn -0.4284 0.0980 -0.8982 +vn -0.4120 0.2903 -0.8637 +vn -0.3797 0.4714 -0.7960 +vn -0.3328 0.6344 -0.6977 +vn -0.2731 0.7730 -0.5726 +vn -0.2029 0.8819 -0.4255 +vn -0.1250 0.9569 -0.2620 +vn -0.0422 0.9952 -0.0885 +vn 0.0422 0.9952 0.0885 +vn 0.1250 0.9569 0.2620 +vn 0.2029 0.8819 0.4255 +vn 0.2731 0.7730 0.5726 +vn 0.3328 0.6344 0.6977 +vn -0.9026 0.0000 0.4305 +vn 0.3797 0.4714 0.7960 +vn 0.0000 -1.0000 0.0000 +vn 0.4120 0.2903 0.8637 +vn 0.4284 0.0980 0.8982 +vn 0.9026 0.0000 -0.4305 +g Cube.001_Cube.001_Material.001 +usemtl Material.001 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/1 10/10/1 11/11/1 12/12/1 +f 2/2/1 13/13/1 14/14/1 3/3/1 +f 6/6/1 15/15/1 16/16/1 7/7/1 +f 10/10/1 1/1/1 4/4/1 11/11/1 +f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2 +f 12/25/3 17/26/3 18/27/3 11/28/3 +f 13/13/1 5/5/1 8/8/1 14/14/1 +f 15/15/1 9/9/1 12/12/1 16/16/1 +f 16/29/4 19/30/4 17/31/4 12/32/4 +f 4/33/5 20/34/5 21/35/5 3/36/5 +f 11/37/6 18/38/6 20/39/6 4/40/6 +f 7/41/7 22/42/7 19/43/7 16/44/7 +f 14/45/8 23/46/8 24/47/8 8/48/8 +f 8/49/9 24/50/9 22/51/9 7/52/9 +f 3/53/10 21/54/10 23/55/10 14/56/10 +f 25/57/11 26/58/11 27/59/11 28/60/11 +f 28/60/12 27/59/12 29/61/12 30/62/12 +f 30/62/13 29/61/13 31/63/13 32/64/13 +f 32/64/14 31/63/14 33/65/14 34/66/14 +f 34/66/15 33/65/15 35/67/15 36/68/15 +f 36/68/16 35/67/16 37/69/16 38/70/16 +f 38/70/17 37/69/17 39/71/17 40/72/17 +f 40/72/18 39/71/18 41/73/18 42/74/18 +f 42/74/19 41/73/19 43/75/19 44/76/19 +f 44/76/20 43/75/20 45/77/20 46/78/20 +f 46/79/21 45/80/21 47/81/21 48/82/21 +f 48/82/22 47/81/22 49/83/22 50/84/22 +f 50/84/23 49/83/23 51/85/23 52/86/23 +f 26/87/24 53/88/24 54/89/24 55/90/24 51/91/24 49/92/24 47/93/24 45/94/24 43/95/24 41/96/24 39/97/24 37/98/24 35/99/24 33/100/24 31/101/24 29/102/24 27/103/24 +f 52/86/25 51/85/25 55/104/25 56/105/25 +f 57/106/26 53/107/26 26/108/26 25/109/26 +f 56/105/27 55/104/27 54/110/27 58/111/27 +f 58/111/28 54/110/28 53/112/28 57/113/28 +g Cube.001_Cube.001_Display +usemtl Display +f 57/114/29 25/115/29 28/116/29 30/117/29 32/118/29 34/119/29 36/120/29 38/121/29 40/122/29 42/123/29 44/124/29 46/125/29 48/126/29 50/127/29 52/128/29 56/129/29 58/130/29 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr0.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr0.obj new file mode 100644 index 0000000..a733a2f --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr0.obj @@ -0,0 +1,227 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs10_smr0.mtl +o Cube.001 +v 0.000000 1.300000 -0.324543 +v 0.100000 1.200000 -0.324543 +v 0.100000 1.200000 -0.344543 +v 0.000000 1.300000 -0.344543 +v -0.100000 1.200000 -0.344543 +v -0.100000 1.200000 -0.324543 +v 0.000000 0.800000 -0.344543 +v 0.100000 0.700000 -0.344543 +v 0.100000 0.700000 -0.324543 +v 0.000000 0.800000 -0.324543 +v -0.100000 0.700000 -0.344543 +v -0.100000 0.700000 -0.324543 +v 0.100000 0.800000 -0.324543 +v 0.000000 0.900000 -0.324543 +v 0.100000 0.900000 -0.324543 +v 0.000000 1.000000 -0.324543 +v 0.100000 1.000000 -0.324543 +v 0.000000 1.100000 -0.324543 +v 0.100000 1.100000 -0.324543 +v 0.000000 1.200000 -0.324543 +v -0.100000 0.800000 -0.324543 +v -0.100000 0.900000 -0.324543 +v -0.100000 1.000000 -0.324543 +v -0.100000 1.100000 -0.324543 +v 0.100000 0.800000 -0.344543 +v 0.100000 0.900000 -0.344543 +v 0.100000 1.000000 -0.344543 +v 0.100000 1.100000 -0.344543 +v -0.100000 0.800000 -0.344543 +v -0.100000 0.900000 -0.344543 +v -0.100000 1.000000 -0.344543 +v -0.100000 1.100000 -0.344543 +v 0.024805 1.055075 -0.324528 +v 0.000000 1.055075 -0.334802 +v 0.000000 1.055075 -0.334802 +v 0.024805 1.055075 -0.324528 +v -0.035079 1.055075 -0.299723 +v -0.024805 1.055075 -0.274918 +v -0.024805 1.055075 -0.274918 +v -0.035079 1.055075 -0.299723 +v 0.024805 1.055075 -0.274918 +v 0.035079 1.055075 -0.299723 +v 0.035079 1.055075 -0.299723 +v 0.024805 1.055075 -0.274918 +v -0.024805 1.055075 -0.324528 +v -0.024805 1.055075 -0.324528 +v 0.000000 1.055075 -0.264644 +v 0.000000 1.055075 -0.264644 +v 0.024805 -0.499729 -0.274918 +v 0.035080 -0.499729 -0.299723 +v 0.000000 -0.499729 -0.264644 +v 0.024805 -0.499729 -0.324528 +v 0.000000 -0.499729 -0.334802 +v -0.024804 -0.499729 -0.274918 +v -0.024804 -0.499729 -0.324528 +v -0.035079 -0.499729 -0.299723 +vt 0.583333 0.875000 +vt 0.583333 0.750000 +vt 0.583333 0.500000 +vt 0.583333 0.375000 +vt 0.583333 0.250000 +vt 0.583333 1.000000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.416667 0.750000 +vt 0.416667 0.875000 +vt 0.375000 0.875000 +vt 0.458333 0.750000 +vt 0.458333 0.875000 +vt 0.500000 0.750000 +vt 0.500000 0.875000 +vt 0.541667 0.750000 +vt 0.541667 0.875000 +vt 0.416667 1.000000 +vt 0.375000 1.000000 +vt 0.458333 1.000000 +vt 0.500000 1.000000 +vt 0.541667 1.000000 +vt 0.416667 0.500000 +vt 0.458333 0.500000 +vt 0.500000 0.500000 +vt 0.541667 0.500000 +vt 0.375000 0.000000 +vt 0.416667 0.000000 +vt 0.416667 0.250000 +vt 0.375000 0.250000 +vt 0.458333 0.000000 +vt 0.458333 0.250000 +vt 0.500000 0.000000 +vt 0.500000 0.250000 +vt 0.541667 0.000000 +vt 0.541667 0.250000 +vt 0.583333 0.000000 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.875000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.000000 0.500000 +vt 0.000000 0.375000 +vt 0.125000 0.375000 +vt 0.250000 0.875000 +vt 0.250000 1.000000 +vt 0.250000 0.375000 +vt 0.250000 0.500000 +vt 0.250000 0.625000 +vt 0.250000 0.750000 +vn 0.0001 -0.7071 0.7071 +vn 0.9239 0.3827 -0.0000 +vn -0.0000 0.3827 -0.9239 +vn 0.0002 -0.7071 -0.7071 +vn -0.9239 0.3827 0.0000 +vn 0.0000 0.3827 0.9239 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9239 0.0000 0.3827 +vn 0.3827 -0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 -0.0000 0.9239 +vn -0.9239 -0.0000 -0.3827 +vn -0.9239 -0.0000 0.3827 +vn -0.3827 -0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +g Cube.001_Cube.001_Default_OBJ +usemtl Default_OBJ +s off +f 1/1/1 2/2/2 3/3/3 4/4/4 5/5/5 6/6/6 +f 7/7/7 8/8/7 9/9/7 10/10/7 +f 11/11/8 7/7/8 10/10/8 12/12/8 +f 9/9/9 13/13/9 14/14/9 10/15/9 +f 13/13/9 15/16/9 16/17/9 14/14/9 +f 15/16/9 17/18/9 18/19/9 16/17/9 +f 17/18/9 19/20/9 20/21/9 18/19/9 +f 19/20/9 2/2/9 1/1/9 20/21/9 +f 10/15/9 14/14/9 21/22/9 12/23/9 +f 14/14/9 16/17/9 22/24/9 21/22/9 +f 16/17/9 18/19/9 23/25/9 22/24/9 +f 18/19/9 20/21/9 24/26/9 23/25/9 +f 20/21/9 1/1/9 6/6/9 24/26/9 +f 8/8/10 25/27/10 13/13/10 9/9/10 +f 25/27/10 26/28/10 15/16/10 13/13/10 +f 26/28/10 27/29/10 17/18/10 15/16/10 +f 27/29/10 28/30/10 19/20/10 17/18/10 +f 28/30/10 3/3/10 2/2/10 19/20/10 +f 12/31/11 21/32/11 29/33/11 11/34/11 +f 21/32/11 22/35/11 30/36/11 29/33/11 +f 22/35/11 23/37/11 31/38/11 30/36/11 +f 23/37/11 24/39/11 32/40/11 31/38/11 +f 24/39/11 6/41/11 5/5/11 32/40/11 +s 1 +f 33/42/9 34/43/9 35/44/9 36/45/9 +f 37/46/9 38/47/9 39/48/9 40/49/9 +f 41/50/9 42/51/9 43/52/9 44/53/9 +f 34/43/9 45/54/9 46/55/9 35/44/9 +f 38/47/9 47/56/9 48/57/9 39/48/9 +f 42/51/9 33/42/9 36/45/9 43/52/9 +f 45/58/12 37/59/12 38/60/12 47/61/12 41/62/12 42/63/12 33/64/12 34/65/12 +f 44/66/13 49/67/13 50/68/13 43/69/13 +f 45/54/9 37/46/9 40/49/9 46/55/9 +f 47/56/9 41/50/9 44/53/9 48/57/9 +f 48/70/14 51/71/14 49/67/14 44/66/14 +f 36/72/15 52/73/15 53/74/15 35/75/15 +f 43/69/16 50/68/16 52/73/16 36/72/16 +f 39/76/17 54/77/17 51/78/17 48/79/17 +f 46/80/18 55/81/18 56/82/18 40/83/18 +f 40/83/19 56/82/19 54/77/19 39/76/19 +f 35/75/20 53/74/20 55/81/20 46/80/20 +g Cube.001_Cube.001_Anzeige +usemtl Anzeige +s off +f 4/84/21 3/85/21 28/86/21 27/87/21 26/88/21 25/89/21 8/90/21 7/91/21 +f 32/92/21 5/93/21 4/84/21 7/91/21 11/94/21 29/95/21 30/96/21 31/97/21 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr30.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr30.obj new file mode 100644 index 0000000..8c2557c --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr30.obj @@ -0,0 +1,228 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs10_smr30.mtl +o Cube.001 +v 0.144810 1.300000 -0.290445 +v 0.234304 1.200000 -0.245825 +v 0.243228 1.200000 -0.263724 +v 0.153734 1.300000 -0.308343 +v 0.064241 1.200000 -0.352963 +v 0.055317 1.200000 -0.335064 +v 0.153734 0.800000 -0.308343 +v 0.243228 0.700000 -0.263724 +v 0.234304 0.700000 -0.245825 +v 0.144810 0.800000 -0.290445 +v 0.064241 0.700000 -0.352963 +v 0.055317 0.700000 -0.335064 +v 0.234304 0.800000 -0.245825 +v 0.144810 0.900000 -0.290445 +v 0.234304 0.900000 -0.245825 +v 0.144810 1.000000 -0.290445 +v 0.234304 1.000000 -0.245825 +v 0.144810 1.100000 -0.290445 +v 0.234304 1.100000 -0.245825 +v 0.144810 1.200000 -0.290445 +v 0.055317 0.800000 -0.335064 +v 0.055317 0.900000 -0.335064 +v 0.055317 1.000000 -0.335064 +v 0.055317 1.100000 -0.335064 +v 0.243228 0.800000 -0.263724 +v 0.243228 0.900000 -0.263724 +v 0.243228 1.000000 -0.263724 +v 0.243228 1.100000 -0.263724 +v 0.064241 0.800000 -0.352963 +v 0.064241 0.900000 -0.352963 +v 0.064241 1.000000 -0.352963 +v 0.064241 1.100000 -0.352963 +v 0.167003 1.055075 -0.279363 +v 0.149388 1.055075 -0.299626 +v 0.149388 1.055075 -0.299626 +v 0.167003 1.055075 -0.279363 +v 0.102342 1.055075 -0.283885 +v 0.100469 1.055075 -0.257101 +v 0.100469 1.055075 -0.257101 +v 0.102342 1.055075 -0.283885 +v 0.144867 1.055075 -0.234966 +v 0.165129 1.055075 -0.252580 +v 0.165129 1.055075 -0.252580 +v 0.144867 1.055075 -0.234966 +v 0.122605 1.055075 -0.301499 +v 0.122605 1.055075 -0.301499 +v 0.118084 1.055075 -0.236839 +v 0.118084 1.055075 -0.236839 +v 0.144867 -0.499729 -0.234966 +v 0.165130 -0.499729 -0.252580 +v 0.118084 -0.499729 -0.236839 +v 0.167003 -0.499729 -0.279363 +v 0.149388 -0.499729 -0.299626 +v 0.100470 -0.499729 -0.257101 +v 0.122606 -0.499729 -0.301499 +v 0.102342 -0.499729 -0.283885 +vt 0.583333 0.875000 +vt 0.583333 0.750000 +vt 0.583333 0.500000 +vt 0.583333 0.375000 +vt 0.583333 0.250000 +vt 0.583333 1.000000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.416667 0.750000 +vt 0.416667 0.875000 +vt 0.375000 0.875000 +vt 0.458333 0.750000 +vt 0.458333 0.875000 +vt 0.500000 0.750000 +vt 0.500000 0.875000 +vt 0.541667 0.750000 +vt 0.541667 0.875000 +vt 0.416667 1.000000 +vt 0.375000 1.000000 +vt 0.458333 1.000000 +vt 0.500000 1.000000 +vt 0.541667 1.000000 +vt 0.416667 0.500000 +vt 0.458333 0.500000 +vt 0.500000 0.500000 +vt 0.541667 0.500000 +vt 0.375000 0.000000 +vt 0.416667 0.000000 +vt 0.416667 0.250000 +vt 0.375000 0.250000 +vt 0.458333 0.000000 +vt 0.458333 0.250000 +vt 0.500000 0.000000 +vt 0.500000 0.250000 +vt 0.541667 0.000000 +vt 0.541667 0.250000 +vt 0.583333 0.000000 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.875000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.000000 0.500000 +vt 0.000000 0.375000 +vt 0.125000 0.375000 +vt 0.250000 0.875000 +vt 0.250000 1.000000 +vt 0.250000 0.375000 +vt 0.250000 0.500000 +vt 0.250000 0.625000 +vt 0.250000 0.750000 +vn -0.3152 -0.7071 0.6329 +vn 0.8268 0.3827 0.4122 +vn 0.4122 0.3827 -0.8268 +vn 0.3156 -0.7071 -0.6327 +vn -0.8268 0.3827 -0.4122 +vn -0.4122 0.3827 0.8268 +vn -0.6328 -0.7071 -0.3155 +vn 0.6328 -0.7071 0.3155 +vn -0.4462 -0.0000 0.8949 +vn 0.8949 -0.0000 0.4462 +vn -0.8949 0.0000 -0.4462 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.6561 0.0000 0.7547 +vn -0.0698 -0.0000 0.9976 +vn 0.7547 0.0000 -0.6561 +vn 0.9976 0.0000 0.0698 +vn -0.7547 -0.0000 0.6561 +vn -0.6561 -0.0000 -0.7547 +vn -0.9976 -0.0000 -0.0698 +vn 0.0698 -0.0000 -0.9976 +vn 0.4462 0.0000 -0.8949 +g Cube.001_Cube.001_Default_OBJ +usemtl Default_OBJ +s off +f 1/1/1 2/2/2 3/3/3 4/4/4 5/5/5 6/6/6 +f 7/7/7 8/8/7 9/9/7 10/10/7 +f 11/11/8 7/7/8 10/10/8 12/12/8 +f 9/9/9 13/13/9 14/14/9 10/15/9 +f 13/13/9 15/16/9 16/17/9 14/14/9 +f 15/16/9 17/18/9 18/19/9 16/17/9 +f 17/18/9 19/20/9 20/21/9 18/19/9 +f 19/20/9 2/2/9 1/1/9 20/21/9 +f 10/15/9 14/14/9 21/22/9 12/23/9 +f 14/14/9 16/17/9 22/24/9 21/22/9 +f 16/17/9 18/19/9 23/25/9 22/24/9 +f 18/19/9 20/21/9 24/26/9 23/25/9 +f 20/21/9 1/1/9 6/6/9 24/26/9 +f 8/8/10 25/27/10 13/13/10 9/9/10 +f 25/27/10 26/28/10 15/16/10 13/13/10 +f 26/28/10 27/29/10 17/18/10 15/16/10 +f 27/29/10 28/30/10 19/20/10 17/18/10 +f 28/30/10 3/3/10 2/2/10 19/20/10 +f 12/31/11 21/32/11 29/33/11 11/34/11 +f 21/32/11 22/35/11 30/36/11 29/33/11 +f 22/35/11 23/37/11 31/38/11 30/36/11 +f 23/37/11 24/39/11 32/40/11 31/38/11 +f 24/39/11 6/41/11 5/5/11 32/40/11 +s 1 +f 33/42/12 34/43/12 35/44/12 36/45/12 +f 37/46/12 38/47/12 39/48/12 40/49/12 +f 41/50/12 42/51/12 43/52/12 44/53/12 +f 34/43/12 45/54/12 46/55/12 35/44/12 +f 38/47/12 47/56/12 48/57/12 39/48/12 +f 42/51/12 33/42/12 36/45/12 43/52/12 +f 45/58/13 37/59/13 38/60/13 47/61/13 41/62/13 42/63/13 33/64/13 34/65/13 +f 44/66/14 49/67/14 50/68/14 43/69/14 +f 45/54/12 37/46/12 40/49/12 46/55/12 +f 47/56/12 41/50/12 44/53/12 48/57/12 +f 48/70/15 51/71/15 49/67/15 44/66/15 +f 36/72/16 52/73/16 53/74/16 35/75/16 +f 43/69/17 50/68/17 52/73/17 36/72/17 +f 39/76/18 54/77/18 51/78/18 48/79/18 +f 46/80/19 55/81/19 56/82/19 40/83/19 +f 40/83/20 56/82/20 54/77/20 39/76/20 +f 35/75/21 53/74/21 55/81/21 46/80/21 +g Cube.001_Cube.001_Anzeige +usemtl Anzeige +s off +f 4/84/22 3/85/22 28/86/22 27/87/22 26/88/22 25/89/22 8/90/22 7/91/22 +f 32/92/22 5/93/22 4/84/22 7/91/22 11/94/22 29/95/22 30/96/22 31/97/22 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr45.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr45.obj new file mode 100644 index 0000000..6343595 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr45.obj @@ -0,0 +1,228 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs10_smr45.mtl +o Cube.001 +v 0.229487 1.300000 -0.229487 +v 0.300197 1.200000 -0.158776 +v 0.314339 1.200000 -0.172918 +v 0.243629 1.300000 -0.243629 +v 0.172918 1.200000 -0.314339 +v 0.158776 1.200000 -0.300197 +v 0.243629 0.800000 -0.243629 +v 0.314339 0.700000 -0.172918 +v 0.300197 0.700000 -0.158776 +v 0.229487 0.800000 -0.229487 +v 0.172918 0.700000 -0.314339 +v 0.158776 0.700000 -0.300197 +v 0.300197 0.800000 -0.158776 +v 0.229487 0.900000 -0.229487 +v 0.300197 0.900000 -0.158776 +v 0.229487 1.000000 -0.229487 +v 0.300197 1.000000 -0.158776 +v 0.229487 1.100000 -0.229487 +v 0.300197 1.100000 -0.158776 +v 0.229487 1.200000 -0.229487 +v 0.158776 0.800000 -0.300197 +v 0.158776 0.900000 -0.300197 +v 0.158776 1.000000 -0.300197 +v 0.158776 1.100000 -0.300197 +v 0.314339 0.800000 -0.172918 +v 0.314339 0.900000 -0.172918 +v 0.314339 1.000000 -0.172918 +v 0.314339 1.100000 -0.172918 +v 0.172918 0.800000 -0.314339 +v 0.172918 0.900000 -0.314339 +v 0.172918 1.000000 -0.314339 +v 0.172918 1.100000 -0.314339 +v 0.247016 1.055075 -0.211936 +v 0.236741 1.055075 -0.236741 +v 0.236741 1.055075 -0.236741 +v 0.247016 1.055075 -0.211936 +v 0.187132 1.055075 -0.236741 +v 0.176857 1.055075 -0.211936 +v 0.176857 1.055075 -0.211936 +v 0.187132 1.055075 -0.236741 +v 0.211936 1.055075 -0.176857 +v 0.236741 1.055075 -0.187132 +v 0.236741 1.055075 -0.187132 +v 0.211936 1.055075 -0.176857 +v 0.211936 1.055075 -0.247016 +v 0.211936 1.055075 -0.247016 +v 0.187132 1.055075 -0.187132 +v 0.187132 1.055075 -0.187132 +v 0.211936 -0.499729 -0.176857 +v 0.236741 -0.499729 -0.187131 +v 0.187132 -0.499729 -0.187132 +v 0.247016 -0.499729 -0.211936 +v 0.236741 -0.499729 -0.236741 +v 0.176857 -0.499729 -0.211935 +v 0.211937 -0.499729 -0.247015 +v 0.187132 -0.499729 -0.236741 +vt 0.583333 0.875000 +vt 0.583333 0.750000 +vt 0.583333 0.500000 +vt 0.583333 0.375000 +vt 0.583333 0.250000 +vt 0.583333 1.000000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.416667 0.750000 +vt 0.416667 0.875000 +vt 0.375000 0.875000 +vt 0.458333 0.750000 +vt 0.458333 0.875000 +vt 0.500000 0.750000 +vt 0.500000 0.875000 +vt 0.541667 0.750000 +vt 0.541667 0.875000 +vt 0.416667 1.000000 +vt 0.375000 1.000000 +vt 0.458333 1.000000 +vt 0.500000 1.000000 +vt 0.541667 1.000000 +vt 0.416667 0.500000 +vt 0.458333 0.500000 +vt 0.500000 0.500000 +vt 0.541667 0.500000 +vt 0.375000 0.000000 +vt 0.416667 0.000000 +vt 0.416667 0.250000 +vt 0.375000 0.250000 +vt 0.458333 0.000000 +vt 0.458333 0.250000 +vt 0.500000 0.000000 +vt 0.500000 0.250000 +vt 0.541667 0.000000 +vt 0.541667 0.250000 +vt 0.583333 0.000000 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.875000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.000000 0.500000 +vt 0.000000 0.375000 +vt 0.125000 0.375000 +vt 0.250000 0.875000 +vt 0.250000 1.000000 +vt 0.250000 0.375000 +vt 0.250000 0.500000 +vt 0.250000 0.625000 +vt 0.250000 0.750000 +vn -0.4998 -0.7071 0.5002 +vn 0.6533 0.3827 0.6533 +vn 0.6533 0.3827 -0.6533 +vn 0.5001 -0.7071 -0.4999 +vn -0.6533 0.3827 -0.6532 +vn -0.6533 0.3827 0.6533 +vn -0.5000 -0.7071 -0.5000 +vn 0.5000 -0.7071 0.5000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.3827 0.0000 0.9239 +vn -0.3827 -0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 -0.0000 0.3827 +vn -0.3827 -0.0000 -0.9239 +vn -0.9239 -0.0000 -0.3827 +vn 0.3827 -0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +g Cube.001_Cube.001_Default_OBJ +usemtl Default_OBJ +s off +f 1/1/1 2/2/2 3/3/3 4/4/4 5/5/5 6/6/6 +f 7/7/7 8/8/7 9/9/7 10/10/7 +f 11/11/8 7/7/8 10/10/8 12/12/8 +f 9/9/9 13/13/9 14/14/9 10/15/9 +f 13/13/9 15/16/9 16/17/9 14/14/9 +f 15/16/9 17/18/9 18/19/9 16/17/9 +f 17/18/9 19/20/9 20/21/9 18/19/9 +f 19/20/9 2/2/9 1/1/9 20/21/9 +f 10/15/9 14/14/9 21/22/9 12/23/9 +f 14/14/9 16/17/9 22/24/9 21/22/9 +f 16/17/9 18/19/9 23/25/9 22/24/9 +f 18/19/9 20/21/9 24/26/9 23/25/9 +f 20/21/9 1/1/9 6/6/9 24/26/9 +f 8/8/10 25/27/10 13/13/10 9/9/10 +f 25/27/10 26/28/10 15/16/10 13/13/10 +f 26/28/10 27/29/10 17/18/10 15/16/10 +f 27/29/10 28/30/10 19/20/10 17/18/10 +f 28/30/10 3/3/10 2/2/10 19/20/10 +f 12/31/11 21/32/11 29/33/11 11/34/11 +f 21/32/11 22/35/11 30/36/11 29/33/11 +f 22/35/11 23/37/11 31/38/11 30/36/11 +f 23/37/11 24/39/11 32/40/11 31/38/11 +f 24/39/11 6/41/11 5/5/11 32/40/11 +s 1 +f 33/42/12 34/43/12 35/44/12 36/45/12 +f 37/46/12 38/47/12 39/48/12 40/49/12 +f 41/50/12 42/51/12 43/52/12 44/53/12 +f 34/43/12 45/54/12 46/55/12 35/44/12 +f 38/47/12 47/56/12 48/57/12 39/48/12 +f 42/51/12 33/42/12 36/45/12 43/52/12 +f 45/58/13 37/59/13 38/60/13 47/61/13 41/62/13 42/63/13 33/64/13 34/65/13 +f 44/66/14 49/67/14 50/68/14 43/69/14 +f 45/54/12 37/46/12 40/49/12 46/55/12 +f 47/56/12 41/50/12 44/53/12 48/57/12 +f 48/70/15 51/71/15 49/67/15 44/66/15 +f 36/72/16 52/73/16 53/74/16 35/75/16 +f 43/69/17 50/68/17 52/73/17 36/72/17 +f 39/76/18 54/77/18 51/78/18 48/79/18 +f 46/80/19 55/81/19 56/82/19 40/83/19 +f 40/83/20 56/82/20 54/77/20 39/76/20 +f 35/75/21 53/74/21 55/81/21 46/80/21 +g Cube.001_Cube.001_Anzeige +usemtl Anzeige +s off +f 4/84/22 3/85/22 28/86/22 27/87/22 26/88/22 25/89/22 8/90/22 7/91/22 +f 32/92/22 5/93/22 4/84/22 7/91/22 11/94/22 29/95/22 30/96/22 31/97/22 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr60.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr60.obj new file mode 100644 index 0000000..94aa189 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr60.obj @@ -0,0 +1,228 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs10_smr60.mtl +o Cube.001 +v 0.290445 1.300000 -0.144810 +v 0.335064 1.200000 -0.055317 +v 0.352963 1.200000 -0.064241 +v 0.308343 1.300000 -0.153734 +v 0.263724 1.200000 -0.243228 +v 0.245825 1.200000 -0.234304 +v 0.308343 0.800000 -0.153734 +v 0.352963 0.700000 -0.064241 +v 0.335064 0.700000 -0.055317 +v 0.290445 0.800000 -0.144810 +v 0.263724 0.700000 -0.243228 +v 0.245825 0.700000 -0.234304 +v 0.335064 0.800000 -0.055317 +v 0.290445 0.900000 -0.144810 +v 0.335064 0.900000 -0.055317 +v 0.290445 1.000000 -0.144810 +v 0.335064 1.000000 -0.055317 +v 0.290445 1.100000 -0.144810 +v 0.335064 1.100000 -0.055317 +v 0.290445 1.200000 -0.144810 +v 0.245825 0.800000 -0.234304 +v 0.245825 0.900000 -0.234304 +v 0.245825 1.000000 -0.234304 +v 0.245825 1.100000 -0.234304 +v 0.352963 0.800000 -0.064241 +v 0.352963 0.900000 -0.064241 +v 0.352963 1.000000 -0.064241 +v 0.352963 1.100000 -0.064241 +v 0.263724 0.800000 -0.243228 +v 0.263724 0.900000 -0.243228 +v 0.263724 1.000000 -0.243228 +v 0.263724 1.100000 -0.243228 +v 0.301499 1.055075 -0.122605 +v 0.299626 1.055075 -0.149388 +v 0.299626 1.055075 -0.149388 +v 0.301499 1.055075 -0.122605 +v 0.252580 1.055075 -0.165129 +v 0.234966 1.055075 -0.144867 +v 0.234966 1.055075 -0.144867 +v 0.252580 1.055075 -0.165129 +v 0.257101 1.055075 -0.100469 +v 0.283885 1.055075 -0.102342 +v 0.283885 1.055075 -0.102342 +v 0.257101 1.055075 -0.100469 +v 0.279363 1.055075 -0.167002 +v 0.279363 1.055075 -0.167002 +v 0.236839 1.055075 -0.118084 +v 0.236839 1.055075 -0.118084 +v 0.257102 -0.499729 -0.100469 +v 0.283885 -0.499729 -0.102341 +v 0.236839 -0.499729 -0.118084 +v 0.301499 -0.499729 -0.122605 +v 0.299626 -0.499729 -0.149388 +v 0.234966 -0.499729 -0.144866 +v 0.279364 -0.499729 -0.167002 +v 0.252580 -0.499729 -0.165129 +vt 0.583333 0.875000 +vt 0.583333 0.750000 +vt 0.583333 0.500000 +vt 0.583333 0.375000 +vt 0.583333 0.250000 +vt 0.583333 1.000000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.416667 0.750000 +vt 0.416667 0.875000 +vt 0.375000 0.875000 +vt 0.458333 0.750000 +vt 0.458333 0.875000 +vt 0.500000 0.750000 +vt 0.500000 0.875000 +vt 0.541667 0.750000 +vt 0.541667 0.875000 +vt 0.416667 1.000000 +vt 0.375000 1.000000 +vt 0.458333 1.000000 +vt 0.500000 1.000000 +vt 0.541667 1.000000 +vt 0.416667 0.500000 +vt 0.458333 0.500000 +vt 0.500000 0.500000 +vt 0.541667 0.500000 +vt 0.375000 0.000000 +vt 0.416667 0.000000 +vt 0.416667 0.250000 +vt 0.375000 0.250000 +vt 0.458333 0.000000 +vt 0.458333 0.250000 +vt 0.500000 0.000000 +vt 0.500000 0.250000 +vt 0.541667 0.000000 +vt 0.541667 0.250000 +vt 0.583333 0.000000 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.875000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.000000 0.500000 +vt 0.000000 0.375000 +vt 0.125000 0.375000 +vt 0.250000 0.875000 +vt 0.250000 1.000000 +vt 0.250000 0.375000 +vt 0.250000 0.500000 +vt 0.250000 0.625000 +vt 0.250000 0.750000 +vn -0.6326 -0.7071 0.3159 +vn 0.4123 0.3827 0.8268 +vn 0.8268 0.3827 -0.4123 +vn 0.6328 -0.7071 -0.3155 +vn -0.4123 0.3827 -0.8268 +vn -0.8268 0.3827 0.4123 +vn -0.3155 -0.7071 -0.6328 +vn 0.3155 -0.7071 0.6328 +vn -0.8949 0.0000 0.4462 +vn 0.4462 0.0000 0.8949 +vn -0.4462 0.0000 -0.8949 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0698 0.0000 0.9976 +vn -0.6561 -0.0000 0.7547 +vn 0.9976 0.0000 -0.0698 +vn 0.7547 0.0000 0.6561 +vn -0.9976 -0.0000 0.0698 +vn -0.0698 -0.0000 -0.9976 +vn -0.7547 -0.0000 -0.6561 +vn 0.6561 -0.0000 -0.7547 +vn 0.8949 0.0000 -0.4462 +g Cube.001_Cube.001_Default_OBJ +usemtl Default_OBJ +s off +f 1/1/1 2/2/2 3/3/3 4/4/4 5/5/5 6/6/6 +f 7/7/7 8/8/7 9/9/7 10/10/7 +f 11/11/8 7/7/8 10/10/8 12/12/8 +f 9/9/9 13/13/9 14/14/9 10/15/9 +f 13/13/9 15/16/9 16/17/9 14/14/9 +f 15/16/9 17/18/9 18/19/9 16/17/9 +f 17/18/9 19/20/9 20/21/9 18/19/9 +f 19/20/9 2/2/9 1/1/9 20/21/9 +f 10/15/9 14/14/9 21/22/9 12/23/9 +f 14/14/9 16/17/9 22/24/9 21/22/9 +f 16/17/9 18/19/9 23/25/9 22/24/9 +f 18/19/9 20/21/9 24/26/9 23/25/9 +f 20/21/9 1/1/9 6/6/9 24/26/9 +f 8/8/10 25/27/10 13/13/10 9/9/10 +f 25/27/10 26/28/10 15/16/10 13/13/10 +f 26/28/10 27/29/10 17/18/10 15/16/10 +f 27/29/10 28/30/10 19/20/10 17/18/10 +f 28/30/10 3/3/10 2/2/10 19/20/10 +f 12/31/11 21/32/11 29/33/11 11/34/11 +f 21/32/11 22/35/11 30/36/11 29/33/11 +f 22/35/11 23/37/11 31/38/11 30/36/11 +f 23/37/11 24/39/11 32/40/11 31/38/11 +f 24/39/11 6/41/11 5/5/11 32/40/11 +s 1 +f 33/42/12 34/43/12 35/44/12 36/45/12 +f 37/46/12 38/47/12 39/48/12 40/49/12 +f 41/50/12 42/51/12 43/52/12 44/53/12 +f 34/43/12 45/54/12 46/55/12 35/44/12 +f 38/47/12 47/56/12 48/57/12 39/48/12 +f 42/51/12 33/42/12 36/45/12 43/52/12 +f 45/58/13 37/59/13 38/60/13 47/61/13 41/62/13 42/63/13 33/64/13 34/65/13 +f 44/66/14 49/67/14 50/68/14 43/69/14 +f 45/54/12 37/46/12 40/49/12 46/55/12 +f 47/56/12 41/50/12 44/53/12 48/57/12 +f 48/70/15 51/71/15 49/67/15 44/66/15 +f 36/72/16 52/73/16 53/74/16 35/75/16 +f 43/69/17 50/68/17 52/73/17 36/72/17 +f 39/76/18 54/77/18 51/78/18 48/79/18 +f 46/80/19 55/81/19 56/82/19 40/83/19 +f 40/83/20 56/82/20 54/77/20 39/76/20 +f 35/75/21 53/74/21 55/81/21 46/80/21 +g Cube.001_Cube.001_Anzeige +usemtl Anzeige +s off +f 4/84/22 3/85/22 28/86/22 27/87/22 26/88/22 25/89/22 8/90/22 7/91/22 +f 32/92/22 5/93/22 4/84/22 7/91/22 11/94/22 29/95/22 30/96/22 31/97/22 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr0.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr0.obj new file mode 100644 index 0000000..cfda47d --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr0.obj @@ -0,0 +1,128 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs3_smr0.mtl +o Cube.002 +v 0.024805 1.055075 -0.324528 +v 0.000000 1.055075 -0.334802 +v 0.000000 1.055075 -0.334802 +v 0.024805 1.055075 -0.324528 +v -0.035079 1.055075 -0.299723 +v -0.024805 1.055075 -0.274918 +v -0.024805 1.055075 -0.274918 +v -0.035079 1.055075 -0.299723 +v 0.024805 1.055075 -0.274918 +v 0.035079 1.055075 -0.299723 +v 0.035079 1.055075 -0.299723 +v 0.024805 1.055075 -0.274918 +v -0.024805 1.055075 -0.324528 +v -0.024805 1.055075 -0.324528 +v 0.000000 1.055075 -0.264644 +v 0.000000 1.055075 -0.264644 +v 0.024805 -0.499729 -0.274918 +v 0.035080 -0.499729 -0.299723 +v 0.324981 1.306899 -0.346144 +v 0.324981 1.306899 -0.330481 +v 0.000000 0.746135 -0.330481 +v 0.000000 0.746135 -0.346144 +v -0.324981 1.306899 -0.346144 +v -0.324981 1.306899 -0.330481 +v 0.000000 -0.499729 -0.264644 +v 0.024805 -0.499729 -0.324528 +v 0.000000 -0.499729 -0.334802 +v -0.024804 -0.499729 -0.274918 +v -0.024804 -0.499729 -0.324528 +v -0.035079 -0.499729 -0.299723 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.677908 0.520935 +vt 0.657776 0.520935 +vt 0.485125 0.020439 +vt 0.677907 0.020439 +vt 0.312476 0.541067 +vt 0.312476 0.520935 +vt 0.657776 0.541067 +vt 0.292344 0.020439 +vt 0.292344 0.520935 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.492188 0.003906 +vt 1.003906 0.996094 +vt -0.023438 0.996094 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9239 0.0000 0.3827 +vn 0.8652 -0.5014 0.0000 +vn -0.8652 -0.5014 0.0000 +vn 0.3827 -0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 -0.0000 0.9239 +vn -0.9239 -0.0000 -0.3827 +vn -0.9239 -0.0000 0.3827 +vn -0.3827 -0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +g Cube.002_Cube.002_Default_OBJ.001 +usemtl Default_OBJ.001 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/1 10/10/1 11/11/1 12/12/1 +f 2/2/1 13/13/1 14/14/1 3/3/1 +f 6/6/1 15/15/1 16/16/1 7/7/1 +f 10/10/1 1/1/1 4/4/1 11/11/1 +f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2 +f 12/25/3 17/26/3 18/27/3 11/28/3 +f 13/13/1 5/5/1 8/8/1 14/14/1 +f 19/29/4 20/30/4 21/31/4 22/32/4 +f 23/33/2 24/34/2 20/30/2 19/35/2 +f 21/31/1 20/30/1 24/34/1 +f 22/36/5 21/31/5 24/34/5 23/37/5 +f 15/15/1 9/9/1 12/12/1 16/16/1 +f 16/38/6 25/39/6 17/26/6 12/25/6 +f 4/40/7 26/41/7 27/42/7 3/43/7 +f 11/28/8 18/27/8 26/41/8 4/40/8 +f 7/44/9 28/45/9 25/46/9 16/47/9 +f 14/48/10 29/49/10 30/50/10 8/51/10 +f 8/51/11 30/50/11 28/45/11 7/44/11 +f 3/43/12 27/42/12 29/49/12 14/48/12 +g Cube.002_Cube.002_Anzeige +usemtl Anzeige +f 22/52/13 23/53/13 19/54/13 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr30.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr30.obj new file mode 100644 index 0000000..bbb1b77 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr30.obj @@ -0,0 +1,129 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs3_smr30.mtl +o Cube.002 +v 0.167003 1.055075 -0.279363 +v 0.149388 1.055075 -0.299626 +v 0.149388 1.055075 -0.299626 +v 0.167003 1.055075 -0.279363 +v 0.102342 1.055075 -0.283885 +v 0.100469 1.055075 -0.257101 +v 0.100469 1.055075 -0.257101 +v 0.102342 1.055075 -0.283885 +v 0.144867 1.055075 -0.234966 +v 0.165129 1.055075 -0.252580 +v 0.165129 1.055075 -0.252580 +v 0.144867 1.055075 -0.234966 +v 0.122605 1.055075 -0.301499 +v 0.122605 1.055075 -0.301499 +v 0.118084 1.055075 -0.236839 +v 0.118084 1.055075 -0.236839 +v 0.144867 -0.499729 -0.234966 +v 0.165130 -0.499729 -0.252580 +v 0.445285 1.306899 -0.164770 +v 0.438296 1.306899 -0.150753 +v 0.147460 0.746135 -0.295759 +v 0.154449 0.746135 -0.309776 +v -0.136388 1.306899 -0.454782 +v -0.143377 1.306899 -0.440764 +v 0.118084 -0.499729 -0.236839 +v 0.167003 -0.499729 -0.279363 +v 0.149388 -0.499729 -0.299626 +v 0.100470 -0.499729 -0.257101 +v 0.122606 -0.499729 -0.301499 +v 0.102342 -0.499729 -0.283885 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.677908 0.520935 +vt 0.657776 0.520935 +vt 0.485125 0.020439 +vt 0.677907 0.020439 +vt 0.312476 0.541067 +vt 0.312476 0.520935 +vt 0.657776 0.541067 +vt 0.292344 0.020439 +vt 0.292344 0.520935 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.492188 0.003906 +vt 1.003906 0.996094 +vt -0.023438 0.996094 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.6561 0.0000 0.7547 +vn 0.7743 -0.5014 0.3861 +vn -0.4462 -0.0000 0.8949 +vn -0.7743 -0.5014 -0.3861 +vn -0.0698 -0.0000 0.9976 +vn 0.7547 0.0000 -0.6561 +vn 0.9976 0.0000 0.0698 +vn -0.7547 -0.0000 0.6561 +vn -0.6561 -0.0000 -0.7547 +vn -0.9976 -0.0000 -0.0698 +vn 0.0698 -0.0000 -0.9976 +vn 0.4462 0.0000 -0.8949 +g Cube.002_Cube.002_Default_OBJ.001 +usemtl Default_OBJ.001 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/1 10/10/1 11/11/1 12/12/1 +f 2/2/1 13/13/1 14/14/1 3/3/1 +f 6/6/1 15/15/1 16/16/1 7/7/1 +f 10/10/1 1/1/1 4/4/1 11/11/1 +f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2 +f 12/25/3 17/26/3 18/27/3 11/28/3 +f 13/13/1 5/5/1 8/8/1 14/14/1 +f 19/29/4 20/30/4 21/31/4 22/32/4 +f 23/33/2 24/34/2 20/30/2 19/35/2 +f 21/31/5 20/30/5 24/34/5 +f 22/36/6 21/31/6 24/34/6 23/37/6 +f 15/15/1 9/9/1 12/12/1 16/16/1 +f 16/38/7 25/39/7 17/26/7 12/25/7 +f 4/40/8 26/41/8 27/42/8 3/43/8 +f 11/28/9 18/27/9 26/41/9 4/40/9 +f 7/44/10 28/45/10 25/46/10 16/47/10 +f 14/48/11 29/49/11 30/50/11 8/51/11 +f 8/51/12 30/50/12 28/45/12 7/44/12 +f 3/43/13 27/42/13 29/49/13 14/48/13 +g Cube.002_Cube.002_Anzeige +usemtl Anzeige +f 22/52/14 23/53/14 19/54/14 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr45.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr45.obj new file mode 100644 index 0000000..98bdecd --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr45.obj @@ -0,0 +1,129 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs3_smr45.mtl +o Cube.002 +v 0.247016 1.055075 -0.211936 +v 0.236741 1.055075 -0.236741 +v 0.236741 1.055075 -0.236741 +v 0.247016 1.055075 -0.211936 +v 0.187132 1.055075 -0.236741 +v 0.176857 1.055075 -0.211936 +v 0.176857 1.055075 -0.211936 +v 0.187132 1.055075 -0.236741 +v 0.211936 1.055075 -0.176857 +v 0.236741 1.055075 -0.187132 +v 0.236741 1.055075 -0.187132 +v 0.211936 1.055075 -0.176857 +v 0.211936 1.055075 -0.247016 +v 0.211936 1.055075 -0.247016 +v 0.187132 1.055075 -0.187132 +v 0.187132 1.055075 -0.187132 +v 0.211936 -0.499729 -0.176857 +v 0.236741 -0.499729 -0.187131 +v 0.474557 1.306899 -0.014965 +v 0.463481 1.306899 -0.003889 +v 0.233685 0.746135 -0.233685 +v 0.244761 0.746135 -0.244761 +v 0.014965 1.306899 -0.474557 +v 0.003889 1.306899 -0.463481 +v 0.187132 -0.499729 -0.187132 +v 0.247016 -0.499729 -0.211936 +v 0.236741 -0.499729 -0.236741 +v 0.176857 -0.499729 -0.211935 +v 0.211937 -0.499729 -0.247015 +v 0.187132 -0.499729 -0.236741 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.677908 0.520935 +vt 0.657776 0.520935 +vt 0.485125 0.020439 +vt 0.677907 0.020439 +vt 0.312476 0.541067 +vt 0.312476 0.520935 +vt 0.657776 0.541067 +vt 0.292344 0.020439 +vt 0.292344 0.520935 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.492188 0.003906 +vt 1.003906 0.996094 +vt -0.023438 0.996094 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.3827 0.0000 0.9239 +vn 0.6118 -0.5014 0.6118 +vn -0.7071 -0.0000 0.7071 +vn -0.6118 -0.5014 -0.6118 +vn -0.3827 -0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 -0.0000 0.3827 +vn -0.3827 -0.0000 -0.9239 +vn -0.9239 -0.0000 -0.3827 +vn 0.3827 -0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +g Cube.002_Cube.002_Default_OBJ.001 +usemtl Default_OBJ.001 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/1 10/10/1 11/11/1 12/12/1 +f 2/2/1 13/13/1 14/14/1 3/3/1 +f 6/6/1 15/15/1 16/16/1 7/7/1 +f 10/10/1 1/1/1 4/4/1 11/11/1 +f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2 +f 12/25/3 17/26/3 18/27/3 11/28/3 +f 13/13/1 5/5/1 8/8/1 14/14/1 +f 19/29/4 20/30/4 21/31/4 22/32/4 +f 23/33/2 24/34/2 20/30/2 19/35/2 +f 21/31/5 20/30/5 24/34/5 +f 22/36/6 21/31/6 24/34/6 23/37/6 +f 15/15/1 9/9/1 12/12/1 16/16/1 +f 16/38/7 25/39/7 17/26/7 12/25/7 +f 4/40/8 26/41/8 27/42/8 3/43/8 +f 11/28/9 18/27/9 26/41/9 4/40/9 +f 7/44/10 28/45/10 25/46/10 16/47/10 +f 14/48/11 29/49/11 30/50/11 8/51/11 +f 8/51/12 30/50/12 28/45/12 7/44/12 +f 3/43/13 27/42/13 29/49/13 14/48/13 +g Cube.002_Cube.002_Anzeige +usemtl Anzeige +f 22/52/14 23/53/14 19/54/14 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr60.obj b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr60.obj new file mode 100644 index 0000000..458cf62 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr60.obj @@ -0,0 +1,129 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_sign_zs3_smr60.mtl +o Cube.002 +v 0.301499 1.055075 -0.122605 +v 0.299626 1.055075 -0.149388 +v 0.299626 1.055075 -0.149388 +v 0.301499 1.055075 -0.122605 +v 0.252580 1.055075 -0.165129 +v 0.234966 1.055075 -0.144867 +v 0.234966 1.055075 -0.144867 +v 0.252580 1.055075 -0.165129 +v 0.257101 1.055075 -0.100469 +v 0.283885 1.055075 -0.102342 +v 0.283885 1.055075 -0.102342 +v 0.257101 1.055075 -0.100469 +v 0.279363 1.055075 -0.167002 +v 0.279363 1.055075 -0.167002 +v 0.236839 1.055075 -0.118084 +v 0.236839 1.055075 -0.118084 +v 0.257102 -0.499729 -0.100469 +v 0.283885 -0.499729 -0.102341 +v 0.454782 1.306899 0.136388 +v 0.440764 1.306899 0.143377 +v 0.295759 0.746135 -0.147460 +v 0.309776 0.746135 -0.154449 +v 0.164770 1.306899 -0.445285 +v 0.150753 1.306899 -0.438296 +v 0.236839 -0.499729 -0.118084 +v 0.301499 -0.499729 -0.122605 +v 0.299626 -0.499729 -0.149388 +v 0.234966 -0.499729 -0.144866 +v 0.279364 -0.499729 -0.167002 +v 0.252580 -0.499729 -0.165129 +vt 0.372863 0.578719 +vt 0.372317 0.613951 +vt 0.371666 0.613734 +vt 0.372221 0.578991 +vt 0.315877 0.640082 +vt 0.292344 0.614764 +vt 0.292986 0.614492 +vt 0.316131 0.639438 +vt 0.315346 0.553400 +vt 0.349331 0.553400 +vt 0.349077 0.554044 +vt 0.315664 0.554020 +vt 0.349861 0.640082 +vt 0.349543 0.639462 +vt 0.292889 0.579531 +vt 0.293541 0.579748 +vt 0.444102 0.636706 +vt 0.409596 0.636706 +vt 0.385196 0.612306 +vt 0.385196 0.577799 +vt 0.409596 0.553400 +vt 0.444102 0.553400 +vt 0.468502 0.577800 +vt 0.468502 0.612306 +vt 0.037160 1.987962 +vt 0.036793 0.000397 +vt 0.071486 0.000384 +vt 0.071853 1.987948 +vt 0.677908 0.520935 +vt 0.657776 0.520935 +vt 0.485125 0.020439 +vt 0.677907 0.020439 +vt 0.312476 0.541067 +vt 0.312476 0.520935 +vt 0.657776 0.541067 +vt 0.292344 0.020439 +vt 0.292344 0.520935 +vt 0.002468 1.987974 +vt 0.002100 0.000409 +vt 0.106546 1.987936 +vt 0.106179 0.000371 +vt 0.140872 0.000358 +vt 0.141239 1.987923 +vt 0.245318 1.987885 +vt 0.244951 0.000319 +vt 0.279643 0.000307 +vt 0.280011 1.987871 +vt 0.175932 1.987910 +vt 0.175565 0.000345 +vt 0.210258 0.000332 +vt 0.210625 1.987897 +vt 0.492188 0.003906 +vt 1.003906 0.996094 +vt -0.023438 0.996094 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0698 0.0000 0.9976 +vn 0.3861 -0.5014 0.7743 +vn -0.8949 -0.0000 0.4462 +vn -0.3861 -0.5014 -0.7743 +vn -0.6561 -0.0000 0.7547 +vn 0.9976 0.0000 -0.0698 +vn 0.7547 0.0000 0.6561 +vn -0.9976 -0.0000 0.0698 +vn -0.0698 -0.0000 -0.9976 +vn -0.7547 -0.0000 -0.6561 +vn 0.6561 -0.0000 -0.7547 +vn 0.8949 0.0000 -0.4462 +g Cube.002_Cube.002_Default_OBJ.001 +usemtl Default_OBJ.001 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/1 10/10/1 11/11/1 12/12/1 +f 2/2/1 13/13/1 14/14/1 3/3/1 +f 6/6/1 15/15/1 16/16/1 7/7/1 +f 10/10/1 1/1/1 4/4/1 11/11/1 +f 13/17/2 5/18/2 6/19/2 15/20/2 9/21/2 10/22/2 1/23/2 2/24/2 +f 12/25/3 17/26/3 18/27/3 11/28/3 +f 13/13/1 5/5/1 8/8/1 14/14/1 +f 19/29/4 20/30/4 21/31/4 22/32/4 +f 23/33/2 24/34/2 20/30/2 19/35/2 +f 21/31/5 20/30/5 24/34/5 +f 22/36/6 21/31/6 24/34/6 23/37/6 +f 15/15/1 9/9/1 12/12/1 16/16/1 +f 16/38/7 25/39/7 17/26/7 12/25/7 +f 4/40/8 26/41/8 27/42/8 3/43/8 +f 11/28/9 18/27/9 26/41/9 4/40/9 +f 7/44/10 28/45/10 25/46/10 16/47/10 +f 14/48/11 29/49/11 30/50/11 8/51/11 +f 8/51/12 30/50/12 28/45/12 7/44/12 +f 3/43/13 27/42/13 29/49/13 14/48/13 +g Cube.002_Cube.002_Anzeige +usemtl Anzeige +f 22/52/14 23/53/14 19/54/14 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom.obj deleted file mode 100644 index fcef5ce..0000000 --- a/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom.obj +++ /dev/null @@ -1,956 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'signal_ks_exportd.blend' -# www.blender.org -mtllib advtrains_signals_ks_zs_bottom.mtl -o HsVsAnzUnten_Cube.009 -v 0.028581 -0.495697 0.268412 -v -0.028581 -0.495697 0.268412 -v -0.028581 -0.495697 0.496774 -v 0.028581 -0.495697 0.496774 -v 0.028581 -0.495697 0.325575 -v 0.028581 -0.495697 0.439611 -v -0.028581 -0.495697 0.325575 -v -0.028581 -0.495697 0.439611 -v -0.028581 -0.291434 0.439611 -v -0.028581 -0.164538 0.439611 -v 0.028581 -0.164538 0.439611 -v 0.028581 -0.291434 0.439611 -v 0.028581 -0.291434 0.496774 -v 0.028581 -0.164538 0.496774 -v -0.028581 -0.164538 0.496774 -v -0.028581 -0.291434 0.496774 -v -0.028581 -0.291434 0.325575 -v -0.028581 -0.164538 0.325575 -v -0.028581 -0.164538 0.268412 -v -0.028581 -0.291434 0.268412 -v 0.028581 -0.291434 0.268412 -v 0.028581 -0.164538 0.268412 -v 0.028581 -0.164538 0.325575 -v 0.028581 -0.291434 0.325575 -v 0.028581 -0.164538 0.268412 -v -0.028581 -0.164538 0.268412 -v -0.028581 -0.164538 0.496774 -v 0.028581 -0.164538 0.496774 -v 0.028581 -0.164538 0.325575 -v 0.028581 -0.164538 0.439611 -v -0.028581 -0.164538 0.325575 -v -0.028581 -0.164538 0.439611 -v -0.028581 0.039726 0.439611 -v -0.028581 0.166622 0.439611 -v 0.028581 0.166622 0.439611 -v 0.028581 0.039726 0.439611 -v 0.028581 0.039726 0.496774 -v 0.028581 0.166622 0.496774 -v -0.028581 0.166622 0.496774 -v -0.028581 0.039726 0.496774 -v -0.028581 0.039726 0.325575 -v -0.028581 0.166622 0.325575 -v -0.028581 0.166622 0.268412 -v -0.028581 0.039726 0.268412 -v 0.028581 0.039726 0.268412 -v 0.028581 0.166622 0.268412 -v 0.028581 0.166622 0.325575 -v 0.028581 0.039726 0.325575 -v 0.028581 0.166622 0.268412 -v -0.028581 0.166622 0.268412 -v -0.028581 0.166622 0.496774 -v 0.028581 0.166622 0.496774 -v 0.028581 0.166622 0.325575 -v 0.028581 0.166622 0.439611 -v -0.028581 0.166622 0.325575 -v -0.028581 0.166622 0.439611 -v -0.028581 0.370885 0.439611 -v -0.028581 0.497782 0.439611 -v 0.028581 0.497782 0.439611 -v 0.028581 0.370885 0.439611 -v 0.028581 0.370885 0.496774 -v 0.028581 0.497782 0.496774 -v -0.028581 0.497782 0.496774 -v -0.028581 0.370885 0.496774 -v -0.028581 0.370885 0.325575 -v -0.028581 0.497782 0.325575 -v -0.028581 0.497782 0.268412 -v -0.028581 0.370885 0.268412 -v 0.028581 0.370885 0.268412 -v 0.028581 0.497782 0.268412 -v 0.028581 0.497782 0.325575 -v 0.028581 0.370885 0.325575 -v -0.138251 0.483868 0.541156 -v -0.138251 0.483868 0.444371 -v -0.138251 0.459446 0.541156 -v -0.138251 0.465184 0.541156 -v -0.107395 0.483868 0.541156 -v -0.114848 0.483868 0.541156 -v -0.107395 0.465184 0.541156 -v -0.107395 0.459446 0.541156 -v -0.114848 0.465184 0.541156 -v -0.114848 0.459446 0.541156 -v -0.107395 0.459446 0.597615 -v -0.107395 0.465184 0.597615 -v -0.114848 0.459446 0.597615 -v -0.114848 0.465184 0.597615 -v -0.138251 0.449042 0.541156 -v -0.107395 0.449042 0.541156 -v -0.114848 0.449042 0.541156 -v -0.107395 0.449042 0.597615 -v -0.114848 0.449042 0.597615 -v -0.107395 0.431511 0.541156 -v -0.114848 0.431511 0.541156 -v -0.107395 0.431511 0.566450 -v -0.114848 0.431511 0.566450 -v -0.138251 0.431511 0.541156 -v 0.138251 0.483868 0.541156 -v 0.138251 0.483868 0.444371 -v 0.000000 0.483868 0.541156 -v 0.000000 0.483868 0.444371 -v 0.138251 0.459446 0.541156 -v 0.138251 0.465184 0.541156 -v 0.000000 0.465184 0.541156 -v 0.000000 0.459446 0.541156 -v 0.107395 0.483868 0.541156 -v 0.114848 0.483868 0.541156 -v 0.107395 0.465184 0.541156 -v 0.107395 0.459446 0.541156 -v 0.114848 0.465184 0.541156 -v 0.114848 0.459446 0.541156 -v 0.000000 0.465184 0.597615 -v 0.000000 0.459446 0.597615 -v 0.107395 0.459446 0.597615 -v 0.107395 0.465184 0.597615 -v 0.114848 0.459446 0.597615 -v 0.114848 0.465184 0.597615 -v 0.000000 0.449042 0.541156 -v 0.138251 0.449042 0.541156 -v 0.107395 0.449042 0.541156 -v 0.114848 0.449042 0.541156 -v 0.107395 0.449042 0.597615 -v 0.114848 0.449042 0.597615 -v 0.000000 0.431511 0.541156 -v 0.107395 0.431511 0.541156 -v 0.114848 0.431511 0.541156 -v 0.107395 0.431511 0.566450 -v 0.114848 0.431511 0.566450 -v 0.138251 0.431511 0.541156 -v -0.138251 0.154897 0.541156 -v -0.138251 0.154897 0.444371 -v -0.138251 0.179319 0.541156 -v -0.138251 0.173581 0.541156 -v -0.107395 0.154897 0.541156 -v -0.114848 0.154897 0.541156 -v -0.107395 0.173581 0.541156 -v -0.107395 0.179319 0.541156 -v -0.114848 0.173581 0.541156 -v -0.114848 0.179319 0.541156 -v -0.107395 0.179319 0.566450 -v -0.107395 0.173581 0.566450 -v -0.114848 0.179319 0.566450 -v -0.114848 0.173581 0.566450 -v -0.138251 0.189722 0.541156 -v -0.107395 0.189722 0.541156 -v -0.114848 0.189722 0.541156 -v -0.107395 0.189722 0.566450 -v -0.114848 0.189722 0.566450 -v -0.107395 0.207254 0.541156 -v -0.114848 0.207254 0.541156 -v -0.107395 0.207254 0.566450 -v -0.114848 0.207254 0.566450 -v -0.138251 0.207254 0.541156 -v -0.138251 0.319382 0.541156 -v -0.138251 0.319382 0.444371 -v -0.114848 0.319382 0.541156 -v -0.107395 0.319382 0.541156 -v -0.114848 0.319382 0.566450 -v -0.107395 0.319382 0.566450 -v 0.138251 0.154897 0.541156 -v 0.138251 0.154897 0.444371 -v 0.000000 0.154897 0.541156 -v 0.000000 0.154897 0.444371 -v 0.138251 0.179319 0.541156 -v 0.138251 0.173581 0.541156 -v 0.000000 0.173581 0.541156 -v 0.000000 0.179319 0.541156 -v 0.107395 0.154897 0.541156 -v 0.114848 0.154897 0.541156 -v 0.107395 0.173581 0.541156 -v 0.107395 0.179319 0.541156 -v 0.114848 0.173581 0.541156 -v 0.114848 0.179319 0.541156 -v 0.000000 0.173581 0.566450 -v 0.000000 0.179319 0.566450 -v 0.107395 0.179319 0.566450 -v 0.107395 0.173581 0.566450 -v 0.114848 0.179319 0.566450 -v 0.114848 0.173581 0.566450 -v 0.000000 0.189722 0.541156 -v 0.138251 0.189722 0.541156 -v 0.107395 0.189722 0.541156 -v 0.114848 0.189722 0.541156 -v 0.107395 0.189722 0.566450 -v 0.114848 0.189722 0.566450 -v 0.000000 0.207254 0.541156 -v 0.107395 0.207254 0.541156 -v 0.114848 0.207254 0.541156 -v 0.107395 0.207254 0.566450 -v 0.114848 0.207254 0.566450 -v 0.138251 0.207254 0.541156 -v 0.138251 0.319382 0.541156 -v 0.138251 0.319382 0.444371 -v 0.000000 0.319382 0.541156 -v 0.000000 0.319382 0.444371 -v 0.114848 0.319382 0.541156 -v 0.107395 0.319382 0.541156 -v 0.114848 0.319382 0.566450 -v 0.107395 0.319382 0.566450 -vt 0.646743 0.371805 -vt 0.646743 0.142471 -vt 0.705619 0.142471 -vt 0.646743 0.000000 -vt 0.705619 0.000000 -vt 0.470413 0.743610 -vt 0.470413 0.514276 -vt 0.529289 0.514276 -vt 0.470413 0.371805 -vt 0.529289 0.371805 -vt 0.705619 0.371805 -vt 0.764495 0.142471 -vt 0.764495 0.000000 -vt 0.941124 0.371805 -vt 0.941124 0.142471 -vt 1.000000 0.142471 -vt 0.941124 0.000000 -vt 1.000000 0.000000 -vt 0.882248 0.743610 -vt 0.882248 0.514276 -vt 0.941124 0.514276 -vt 0.882248 0.371805 -vt 0.117752 0.972944 -vt 0.117752 0.743610 -vt 0.176628 0.743610 -vt 0.470413 0.142471 -vt 0.529289 0.142471 -vt 0.470413 0.000000 -vt 0.529289 0.000000 -vt 0.646743 0.743610 -vt 0.646743 0.514276 -vt 0.705619 0.514276 -vt 0.529289 0.743610 -vt 0.529289 0.871642 -vt 0.588165 0.743610 -vt 0.411537 0.743610 -vt 0.411537 0.514276 -vt 0.411537 0.371805 -vt 0.235206 0.371805 -vt 0.235206 0.142471 -vt 0.294083 0.142471 -vt 0.235206 0.000000 -vt 0.294083 0.000000 -vt 0.823372 0.371805 -vt 0.823372 0.142471 -vt 0.882248 0.142471 -vt 0.823372 0.000000 -vt 0.882248 0.000000 -vt 0.764495 0.743610 -vt 0.764495 0.514276 -vt 0.823372 0.514276 -vt 0.764495 0.371805 -vt 0.176628 0.972944 -vt 0.235504 0.743610 -vt 0.235206 0.743610 -vt 0.235206 0.514276 -vt 0.294083 0.514276 -vt 0.294083 0.371805 -vt 0.411537 0.142471 -vt 0.411537 0.000000 -vt 0.294381 0.743610 -vt 0.353257 0.743610 -vt 0.353257 0.871643 -vt 0.411537 0.871642 -vt 0.058876 0.371805 -vt 0.058876 0.601139 -vt 0.000000 0.601139 -vt 0.058876 0.743610 -vt 0.000000 0.743610 -vt 0.000000 0.371805 -vt 0.000000 0.142471 -vt 0.058876 0.142471 -vt 0.000000 0.000000 -vt 0.058876 0.000000 -vt 0.705619 0.743610 -vt 0.823372 0.743610 -vt 0.058876 0.972944 -vt 0.235206 0.601139 -vt 0.176330 0.601139 -vt 0.176330 0.743610 -vt 0.176330 0.371805 -vt 0.176330 0.142471 -vt 0.176330 0.000000 -vt 0.294381 0.871643 -vt 0.000000 0.935821 -vt 0.000000 0.807789 -vt 0.058876 0.807789 -vt 0.058876 0.935821 -vt 0.058876 1.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 0.371805 -vt 0.941124 0.743610 -vt 0.470413 0.871642 -vt 0.588165 0.871642 -vt 0.235505 0.972944 -vt 0.294083 0.743610 -vt 0.235505 0.871643 -vt 0.665377 0.373761 -vt 0.772053 0.346842 -vt 0.772053 0.353167 -vt 0.490653 0.373761 -vt 0.490653 0.192467 -vt 0.643030 0.192467 -vt 0.011173 0.316053 -vt 0.011173 0.192467 -vt 0.036968 0.192467 -vt 0.551766 0.888289 -vt 0.585764 0.781041 -vt 0.585769 0.781634 -vt 0.292586 0.674069 -vt 0.292629 0.550483 -vt 0.410998 0.550524 -vt 0.019388 0.948870 -vt 0.019388 0.886643 -vt 0.137756 0.886643 -vt 0.045182 0.373761 -vt 0.045182 0.353168 -vt 0.163551 0.353167 -vt 0.011173 0.948870 -vt 0.011173 0.886643 -vt 0.036968 0.373761 -vt 0.036968 0.353168 -vt 0.011173 0.373761 -vt 0.011173 0.353168 -vt 0.011173 0.346842 -vt 0.036968 0.346842 -vt 0.011173 0.678014 -vt 0.011583 0.555988 -vt 0.019722 0.556019 -vt 0.020806 0.733322 -vt 0.020483 0.727150 -vt 0.139957 0.720157 -vt 0.012751 0.733737 -vt 0.012436 0.727539 -vt 0.856627 0.319924 -vt 0.794399 0.319924 -vt 0.794399 0.308458 -vt 0.405055 0.886643 -vt 0.405055 0.948870 -vt 0.286686 0.948870 -vt 0.765364 0.711183 -vt 0.827591 0.711183 -vt 0.827592 0.717508 -vt 0.765364 0.556808 -vt 0.793243 0.556808 -vt 0.793243 0.680394 -vt 0.765364 0.699717 -vt 0.827591 0.699717 -vt 0.856627 0.308458 -vt 0.828748 0.289135 -vt 0.011935 0.716293 -vt 0.019940 0.716025 -vt 0.292576 0.704858 -vt 0.292580 0.693392 -vt 0.410948 0.693433 -vt 0.011173 0.335376 -vt 0.036968 0.335376 -vt 0.856627 0.289135 -vt 0.828749 0.165549 -vt 0.765364 0.680394 -vt 0.019200 0.677955 -vt 0.410955 0.674110 -vt 0.036968 0.316053 -vt 0.551768 0.700990 -vt 0.658443 0.577402 -vt 0.658442 0.758694 -vt 0.338275 0.192467 -vt 0.290134 0.192467 -vt 0.315929 0.192467 -vt 0.315929 0.316053 -vt 0.822460 0.781634 -vt 0.856462 0.888289 -vt 0.704114 0.888289 -vt 0.529366 0.550565 -vt 0.529324 0.674151 -vt 0.256125 0.886643 -vt 0.256125 0.948870 -vt 0.281920 0.353167 -vt 0.281920 0.373761 -vt 0.264339 0.886643 -vt 0.264339 0.948870 -vt 0.290134 0.353167 -vt 0.290134 0.373761 -vt 0.315929 0.353167 -vt 0.315929 0.373761 -vt 0.290134 0.346842 -vt 0.315929 0.346842 -vt 0.257912 0.557015 -vt 0.266077 0.556832 -vt 0.270229 0.678520 -vt 0.260857 0.727988 -vt 0.260493 0.734236 -vt 0.269006 0.728421 -vt 0.912166 0.693392 -vt 0.912166 0.704858 -vt 0.849938 0.704858 -vt 0.523424 0.948870 -vt 0.680790 0.717508 -vt 0.680790 0.711183 -vt 0.743017 0.711183 -vt 0.715139 0.680394 -vt 0.715139 0.556808 -vt 0.743017 0.556808 -vt 0.680790 0.699717 -vt 0.743017 0.699717 -vt 0.877817 0.674069 -vt 0.849938 0.693392 -vt 0.261459 0.716736 -vt 0.269558 0.717023 -vt 0.529317 0.693474 -vt 0.529313 0.704940 -vt 0.290134 0.335376 -vt 0.315929 0.335376 -vt 0.877817 0.550483 -vt 0.849938 0.674069 -vt 0.262231 0.678588 -vt 0.290134 0.316053 -vt 0.772053 0.068880 -vt 0.665377 0.192466 -vt 0.665378 0.011173 -vt 0.490653 0.011173 -vt 0.011173 0.068881 -vt 0.045176 0.863703 -vt 0.011173 0.757048 -vt 0.163521 0.757048 -vt 0.292671 0.426896 -vt 0.678349 0.938558 -vt 0.559981 0.938517 -vt 0.559990 0.910638 -vt 0.163551 0.031767 -vt 0.045182 0.031767 -vt 0.045182 0.011173 -vt 0.551766 0.938514 -vt 0.551776 0.910636 -vt 0.036968 0.031767 -vt 0.036968 0.011173 -vt 0.011173 0.031767 -vt 0.011173 0.011173 -vt 0.036968 0.038092 -vt 0.011173 0.038092 -vt 0.012099 0.433087 -vt 0.138415 0.402789 -vt 0.020379 0.402437 -vt 0.020398 0.396131 -vt 0.012192 0.402412 -vt 0.828749 0.022639 -vt 0.828749 0.011173 -vt 0.856627 0.011173 -vt 0.551766 0.960948 -vt 0.670135 0.960948 -vt 0.670135 0.988827 -vt 0.793243 0.396107 -vt 0.793243 0.402432 -vt 0.765364 0.402432 -vt 0.793243 0.433221 -vt 0.793243 0.413898 -vt 0.765364 0.413898 -vt 0.828749 0.041962 -vt 0.856627 0.022639 -vt 0.020343 0.413865 -vt 0.012159 0.413840 -vt 0.411047 0.407614 -vt 0.292678 0.407573 -vt 0.292682 0.396107 -vt 0.036968 0.049558 -vt 0.011173 0.049558 -vt 0.856627 0.041962 -vt 0.765364 0.433221 -vt 0.020276 0.433118 -vt 0.411040 0.426937 -vt 0.036968 0.068881 -vt 0.658442 0.396107 -vt 0.551767 0.423026 -vt 0.551767 0.416701 -vt 0.315929 0.068880 -vt 0.315869 0.757048 -vt 0.281872 0.864296 -vt 0.281867 0.863702 -vt 0.529409 0.426978 -vt 0.796728 0.910720 -vt 0.796718 0.938599 -vt 0.281920 0.011173 -vt 0.281920 0.031767 -vt 0.804942 0.910723 -vt 0.804932 0.938601 -vt 0.290134 0.011173 -vt 0.290134 0.031767 -vt 0.315929 0.011173 -vt 0.315929 0.031767 -vt 0.315929 0.038092 -vt 0.290134 0.038092 -vt 0.264798 0.433076 -vt 0.256461 0.396133 -vt 0.256482 0.402439 -vt 0.264648 0.396107 -vt 0.264668 0.402411 -vt 0.849939 0.396107 -vt 0.877817 0.396107 -vt 0.877817 0.407573 -vt 0.788504 0.960948 -vt 0.743017 0.402432 -vt 0.715139 0.402432 -vt 0.715139 0.396107 -vt 0.715139 0.433221 -vt 0.743017 0.413898 -vt 0.715139 0.413898 -vt 0.849939 0.407573 -vt 0.877817 0.426896 -vt 0.264708 0.413837 -vt 0.256523 0.413870 -vt 0.529420 0.396189 -vt 0.529416 0.407655 -vt 0.315929 0.049558 -vt 0.290134 0.049558 -vt 0.849939 0.426896 -vt 0.743017 0.433221 -vt 0.256621 0.433134 -vt 0.290134 0.068880 -vt 0.772053 0.373761 -vt 0.772053 0.316053 -vt 0.772053 0.335376 -vt 0.772053 0.192466 -vt 0.643030 0.373761 -vt 0.704114 0.781634 -vt 0.551766 0.781634 -vt 0.137756 0.948870 -vt 0.163551 0.373761 -vt 0.139936 0.726612 -vt 0.286686 0.886643 -vt 0.765364 0.717508 -vt 0.410944 0.704899 -vt 0.856627 0.165548 -vt 0.551768 0.758694 -vt 0.551768 0.738101 -vt 0.551768 0.731777 -vt 0.551768 0.720312 -vt 0.551767 0.577402 -vt 0.338275 0.373761 -vt 0.839461 0.781486 -vt 0.856462 0.781634 -vt 0.268654 0.734701 -vt 0.523424 0.886643 -vt 0.743017 0.717508 -vt 0.743017 0.680394 -vt 0.849938 0.550483 -vt 0.772053 0.011174 -vt 0.772053 0.031767 -vt 0.772053 0.038091 -vt 0.772053 0.049557 -vt 0.643030 0.011173 -vt 0.163521 0.863702 -vt 0.028174 0.863851 -vt 0.011173 0.863703 -vt 0.678359 0.910679 -vt 0.163551 0.011173 -vt 0.138415 0.396480 -vt 0.012211 0.396107 -vt 0.551766 0.988827 -vt 0.765364 0.396107 -vt 0.411051 0.396148 -vt 0.551766 0.396108 -vt 0.551767 0.453815 -vt 0.551767 0.434492 -vt 0.338275 0.011173 -vt 0.315869 0.863702 -vt 0.788504 0.988827 -vt 0.743017 0.396107 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -0.871600 0.490300 -g HsVsAnzUnten_Cube.009_Mast -usemtl Mast -s off -f 6/1/1 12/2/1 13/3/1 -f 12/2/1 11/4/1 14/5/1 -f 3/6/2 16/7/2 9/8/2 -f 16/7/2 15/9/2 10/10/2 -f 4/11/3 13/3/3 16/12/3 -f 13/3/3 14/5/3 15/13/3 -f 8/14/4 9/15/4 12/16/4 -f 9/15/4 10/17/4 11/18/4 -f 2/19/4 20/20/4 21/21/4 -f 20/20/4 19/22/4 22/14/4 -f 5/23/3 24/24/3 17/25/3 -f 1/9/1 21/26/1 24/27/1 -f 21/26/1 22/28/1 23/29/1 -f 7/30/2 17/31/2 20/32/2 -f 17/31/2 18/1/2 19/11/2 -f 23/29/1 11/4/1 12/2/1 -f 17/6/5 24/33/5 12/34/5 -f 17/31/2 9/8/2 10/10/2 -f 18/34/6 10/33/6 11/35/6 -f 30/36/1 36/37/1 37/7/1 -f 36/37/1 35/38/1 38/9/1 -f 27/39/2 40/40/2 33/41/2 -f 40/40/2 39/42/2 34/43/2 -f 28/44/3 37/45/3 40/46/3 -f 37/45/3 38/47/3 39/48/3 -f 32/49/4 33/50/4 36/51/4 -f 33/50/4 34/52/4 35/44/4 -f 26/52/4 44/12/4 45/45/4 -f 44/12/4 43/13/4 46/47/4 -f 29/53/3 48/25/3 41/54/3 -f 25/55/1 45/56/1 48/57/1 -f 45/56/1 46/39/1 47/58/1 -f 31/38/2 41/59/2 44/26/2 -f 41/59/2 42/60/2 43/28/2 -f 47/58/1 35/38/1 36/37/1 -f 41/61/5 48/62/5 36/63/5 -f 41/59/2 33/41/2 34/43/2 -f 42/64/6 34/36/6 35/6/6 -f 54/65/1 60/66/1 61/67/1 -f 60/66/1 59/68/1 62/69/1 -f 51/70/2 64/71/2 57/72/2 -f 64/71/2 63/73/2 58/74/2 -f 52/75/3 61/32/3 64/50/3 -f 61/32/3 62/11/3 63/52/3 -f 56/22/4 57/46/4 60/15/4 -f 57/46/4 58/48/4 59/17/4 -f 50/76/4 68/51/4 69/20/4 -f 68/51/4 67/44/4 70/22/4 -f 53/77/3 72/68/3 65/24/3 -f 49/39/1 69/78/1 72/79/1 -f 69/78/1 70/55/1 71/80/1 -f 55/81/2 65/82/2 68/40/2 -f 65/82/2 66/83/2 67/42/2 -f 71/80/1 59/68/1 60/66/1 -f 65/54/5 72/61/5 60/84/5 -f 65/82/2 57/72/2 58/74/2 -f 66/85/6 58/86/6 59/87/6 -f 66/85/6 71/88/6 70/89/6 -f 58/86/6 63/69/6 62/68/6 -f 112/18/2 111/90/2 103/91/2 -f 156/18/5 158/90/5 157/91/5 -f 165/18/2 173/90/2 174/91/2 -f 197/18/5 198/90/5 196/91/5 -f 4/11/1 6/1/1 13/3/1 -f 13/3/1 12/2/1 14/5/1 -f 8/33/2 3/6/2 9/8/2 -f 9/8/2 16/7/2 10/10/2 -f 3/52/3 4/11/3 16/12/3 -f 16/12/3 13/3/3 15/13/3 -f 6/92/4 8/14/4 12/16/4 -f 12/16/4 9/15/4 11/18/4 -f 1/93/4 2/19/4 21/21/4 -f 21/21/4 20/20/4 22/14/4 -f 7/53/3 5/23/3 17/25/3 -f 5/10/1 1/9/1 24/27/1 -f 24/27/1 21/26/1 23/29/1 -f 2/75/2 7/30/2 20/32/2 -f 20/32/2 17/31/2 19/11/2 -f 24/27/1 23/29/1 12/2/1 -f 9/94/5 17/6/5 12/34/5 -f 18/1/2 17/31/2 10/10/2 -f 23/95/6 18/34/6 11/35/6 -f 28/6/1 30/36/1 37/7/1 -f 37/7/1 36/37/1 38/9/1 -f 32/58/2 27/39/2 33/41/2 -f 33/41/2 40/40/2 34/43/2 -f 27/22/3 28/44/3 40/46/3 -f 40/46/3 37/45/3 39/48/3 -f 30/76/4 32/49/4 36/51/4 -f 36/51/4 33/50/4 35/44/4 -f 25/44/4 26/52/4 45/45/4 -f 45/45/4 44/12/4 46/47/4 -f 31/96/3 29/53/3 41/54/3 -f 29/97/1 25/55/1 48/57/1 -f 48/57/1 45/56/1 47/58/1 -f 26/9/2 31/38/2 44/26/2 -f 44/26/2 41/59/2 43/28/2 -f 48/57/1 47/58/1 36/37/1 -f 33/84/5 41/61/5 36/63/5 -f 42/60/2 41/59/2 34/43/2 -f 47/94/6 42/64/6 35/6/6 -f 52/70/1 54/65/1 61/67/1 -f 61/67/1 60/66/1 62/69/1 -f 56/65/2 51/70/2 57/72/2 -f 57/72/2 64/71/2 58/74/2 -f 51/49/3 52/75/3 64/50/3 -f 64/50/3 61/32/3 63/52/3 -f 54/14/4 56/22/4 60/15/4 -f 60/15/4 57/46/4 59/17/4 -f 49/19/4 50/76/4 69/20/4 -f 69/20/4 68/51/4 70/22/4 -f 55/23/3 53/77/3 65/24/3 -f 53/81/1 49/39/1 72/79/1 -f 72/79/1 69/78/1 71/80/1 -f 50/39/2 55/81/2 68/40/2 -f 68/40/2 65/82/2 67/42/2 -f 72/79/1 71/80/1 60/66/1 -f 57/98/5 65/54/5 60/84/5 -f 66/83/2 65/82/2 58/74/2 -f 71/88/6 66/85/6 59/87/6 -f 67/91/6 66/85/6 70/89/6 -f 59/87/6 58/86/6 62/68/6 -f 104/73/2 112/18/2 103/91/2 -f 155/73/5 156/18/5 157/91/5 -f 166/73/2 165/18/2 174/91/2 -f 195/73/5 197/18/5 196/91/5 -g HsVsAnzUnten_Cube.009_Schirm -usemtl Schirm -f 74/99/2 75/100/2 76/101/2 -f 100/102/4 194/103/4 154/104/4 -f 96/105/3 153/106/3 155/107/3 -f 74/108/6 78/109/6 77/110/6 -f 92/111/3 156/112/3 193/113/3 -f 79/114/6 84/115/6 111/116/6 -f 77/117/3 79/118/3 103/119/3 -f 81/120/6 86/121/6 84/115/6 -f 78/122/3 81/123/3 79/118/3 -f 73/124/3 76/125/3 81/123/3 -f 76/125/3 75/126/3 82/127/3 -f 95/128/3 157/129/3 158/130/3 -f 84/131/3 83/132/3 112/133/3 -f 84/131/3 86/134/3 85/135/3 -f 80/136/1 83/137/1 90/138/1 -f 104/139/5 112/140/5 83/141/5 -f 82/142/2 85/143/2 86/144/2 -f 155/145/2 157/146/2 95/147/2 -f 89/148/2 91/149/2 85/143/2 -f 88/150/1 90/138/1 94/151/1 -f 85/135/3 91/152/3 90/153/3 -f 80/154/3 88/155/3 117/156/3 -f 75/126/3 87/157/3 89/158/3 -f 92/159/1 94/151/1 158/160/1 -f 89/148/2 93/161/2 95/147/2 -f 91/152/7 95/128/7 94/162/7 -f 88/155/3 92/111/3 123/163/3 -f 87/157/3 96/105/3 93/164/3 -f 128/165/1 192/166/1 98/167/1 -f 192/168/4 194/103/4 100/102/4 -f 195/169/3 191/170/3 128/171/3 -f 105/172/6 98/173/6 100/174/6 -f 193/113/3 196/175/3 124/176/3 -f 111/116/6 114/177/6 107/178/6 -f 103/119/3 107/179/3 105/180/3 -f 114/177/6 116/181/6 109/182/6 -f 107/179/3 109/183/3 106/184/3 -f 109/183/3 102/185/3 97/186/3 -f 110/187/3 101/188/3 102/185/3 -f 198/189/3 197/190/3 127/191/3 -f 112/133/3 113/192/3 114/193/3 -f 114/193/3 113/192/3 115/194/3 -f 121/195/2 113/196/2 108/197/2 -f 113/198/5 112/140/5 104/139/5 -f 116/199/1 115/200/1 110/201/1 -f 127/202/1 197/203/1 195/204/1 -f 115/200/1 122/205/1 120/206/1 -f 126/207/2 121/195/2 119/208/2 -f 121/209/3 122/210/3 115/194/3 -f 117/156/3 119/211/3 108/212/3 -f 120/213/3 118/214/3 101/188/3 -f 198/215/2 126/207/2 124/216/2 -f 120/206/1 122/205/1 127/202/1 -f 126/217/7 127/191/7 122/210/7 -f 123/163/3 124/176/3 119/211/3 -f 125/218/3 128/171/3 118/214/3 -f 152/219/2 154/220/2 130/221/2 -f 154/104/4 194/103/4 162/222/4 -f 155/107/3 153/106/3 152/223/3 -f 133/224/5 130/225/5 162/226/5 -f 193/113/3 156/112/3 148/227/3 -f 173/228/5 140/229/5 135/230/5 -f 165/231/3 135/232/3 133/233/3 -f 140/229/5 142/234/5 137/235/5 -f 135/232/3 137/236/3 134/237/3 -f 137/236/3 132/238/3 129/239/3 -f 138/240/3 131/241/3 132/238/3 -f 158/130/3 157/129/3 151/242/3 -f 174/243/3 139/244/3 140/245/3 -f 140/245/3 139/244/3 141/246/3 -f 146/247/1 139/248/1 136/249/1 -f 139/250/6 174/251/6 166/252/6 -f 142/253/2 141/254/2 138/255/2 -f 151/256/2 157/146/2 155/145/2 -f 141/254/2 147/257/2 145/258/2 -f 150/259/1 146/247/1 144/260/1 -f 146/261/3 147/262/3 141/246/3 -f 179/263/3 144/264/3 136/265/3 -f 145/266/3 143/267/3 131/241/3 -f 158/160/1 150/259/1 148/268/1 -f 147/257/2 151/256/2 149/269/2 -f 150/270/3 151/242/3 147/262/3 -f 185/271/3 148/227/3 144/264/3 -f 149/272/3 152/223/3 143/267/3 -f 160/273/1 163/274/1 164/275/1 -f 162/222/4 194/103/4 192/168/4 -f 190/276/3 191/170/3 195/169/3 -f 160/277/5 168/278/5 167/279/5 -f 186/280/3 196/175/3 193/113/3 -f 169/281/5 176/282/5 173/228/5 -f 167/283/3 169/284/3 165/231/3 -f 171/285/5 178/286/5 176/282/5 -f 168/287/3 171/288/3 169/284/3 -f 159/289/3 164/290/3 171/288/3 -f 164/290/3 163/291/3 172/292/3 -f 189/293/3 197/190/3 198/189/3 -f 176/294/3 175/295/3 174/243/3 -f 176/294/3 178/296/3 177/297/3 -f 170/298/2 175/299/2 183/300/2 -f 166/252/6 174/251/6 175/301/6 -f 172/302/1 177/303/1 178/304/1 -f 195/204/1 197/203/1 189/305/1 -f 182/306/1 184/307/1 177/303/1 -f 181/308/2 183/300/2 188/309/2 -f 177/297/3 184/310/3 183/311/3 -f 170/312/3 181/313/3 179/263/3 -f 163/291/3 180/314/3 182/315/3 -f 186/316/2 188/309/2 198/215/2 -f 187/317/1 189/305/1 184/307/1 -f 184/310/3 189/293/3 188/318/3 -f 181/313/3 186/280/3 185/271/3 -f 180/314/3 190/276/3 187/319/3 -f 76/101/2 73/320/2 74/99/2 -f 74/99/2 96/321/2 87/322/2 -f 153/323/2 96/321/2 154/220/2 -f 87/322/2 75/100/2 74/99/2 -f 154/220/2 96/321/2 74/99/2 -f 74/324/4 100/102/4 154/104/4 -f 93/164/3 96/105/3 155/107/3 -f 77/110/6 99/325/6 100/174/6 -f 100/174/6 74/108/6 77/110/6 -f 73/326/6 78/109/6 74/108/6 -f 123/163/3 92/111/3 193/113/3 -f 103/327/6 79/114/6 111/116/6 -f 99/328/3 77/117/3 103/119/3 -f 79/114/6 81/120/6 84/115/6 -f 77/117/3 78/122/3 79/118/3 -f 78/122/3 73/124/3 81/123/3 -f 81/123/3 76/125/3 82/127/3 -f 94/162/3 95/128/3 158/130/3 -f 111/329/3 84/131/3 112/133/3 -f 83/132/3 84/131/3 85/135/3 -f 88/150/1 80/136/1 90/138/1 -f 80/330/5 104/139/5 83/141/5 -f 81/331/2 82/142/2 86/144/2 -f 93/161/2 155/145/2 95/147/2 -f 82/142/2 89/148/2 85/143/2 -f 92/159/1 88/150/1 94/151/1 -f 83/132/3 85/135/3 90/153/3 -f 104/332/3 80/154/3 117/156/3 -f 82/127/3 75/126/3 89/158/3 -f 156/333/1 92/159/1 158/160/1 -f 91/149/2 89/148/2 95/147/2 -f 90/153/7 91/152/7 94/162/7 -f 117/156/3 88/155/3 123/163/3 -f 89/158/3 87/157/3 93/164/3 -f 98/167/1 97/334/1 102/335/1 -f 102/335/1 101/336/1 98/167/1 -f 118/337/1 128/165/1 98/167/1 -f 191/338/1 192/166/1 128/165/1 -f 98/167/1 101/336/1 118/337/1 -f 98/339/4 192/168/4 100/102/4 -f 125/218/3 195/169/3 128/171/3 -f 100/174/6 99/325/6 105/172/6 -f 105/172/6 106/340/6 98/173/6 -f 97/341/6 98/173/6 106/340/6 -f 123/163/3 193/113/3 124/176/3 -f 103/327/6 111/116/6 107/178/6 -f 99/328/3 103/119/3 105/180/3 -f 107/178/6 114/177/6 109/182/6 -f 105/180/3 107/179/3 106/184/3 -f 106/184/3 109/183/3 97/186/3 -f 109/183/3 110/187/3 102/185/3 -f 126/217/3 198/189/3 127/191/3 -f 111/329/3 112/133/3 114/193/3 -f 116/342/3 114/193/3 115/194/3 -f 119/208/2 121/195/2 108/197/2 -f 108/343/5 113/198/5 104/139/5 -f 109/344/1 116/199/1 110/201/1 -f 125/345/1 127/202/1 195/204/1 -f 110/201/1 115/200/1 120/206/1 -f 124/216/2 126/207/2 119/208/2 -f 113/192/3 121/209/3 115/194/3 -f 104/332/3 117/156/3 108/212/3 -f 110/187/3 120/213/3 101/188/3 -f 196/346/2 198/215/2 124/216/2 -f 125/345/1 120/206/1 127/202/1 -f 121/209/7 126/217/7 122/210/7 -f 117/156/3 123/163/3 119/211/3 -f 120/213/3 125/218/3 118/214/3 -f 130/221/2 129/347/2 132/348/2 -f 132/348/2 131/349/2 130/221/2 -f 143/350/2 152/219/2 130/221/2 -f 153/323/2 154/220/2 152/219/2 -f 130/221/2 131/349/2 143/350/2 -f 130/351/4 154/104/4 162/222/4 -f 149/272/3 155/107/3 152/223/3 -f 162/226/5 161/352/5 133/224/5 -f 133/224/5 134/353/5 130/225/5 -f 129/354/5 130/225/5 134/353/5 -f 185/271/3 193/113/3 148/227/3 -f 165/355/5 173/228/5 135/230/5 -f 161/356/3 165/231/3 133/233/3 -f 135/230/5 140/229/5 137/235/5 -f 133/233/3 135/232/3 134/237/3 -f 134/237/3 137/236/3 129/239/3 -f 137/236/3 138/240/3 132/238/3 -f 150/270/3 158/130/3 151/242/3 -f 173/357/3 174/243/3 140/245/3 -f 142/358/3 140/245/3 141/246/3 -f 144/260/1 146/247/1 136/249/1 -f 136/359/6 139/250/6 166/252/6 -f 137/360/2 142/253/2 138/255/2 -f 149/269/2 151/256/2 155/145/2 -f 138/255/2 141/254/2 145/258/2 -f 148/268/1 150/259/1 144/260/1 -f 139/244/3 146/261/3 141/246/3 -f 166/361/3 179/263/3 136/265/3 -f 138/240/3 145/266/3 131/241/3 -f 156/333/1 158/160/1 148/268/1 -f 145/258/2 147/257/2 149/269/2 -f 146/261/3 150/270/3 147/262/3 -f 179/263/3 185/271/3 144/264/3 -f 145/266/3 149/272/3 143/267/3 -f 164/275/1 159/362/1 160/273/1 -f 160/273/1 190/363/1 180/364/1 -f 191/338/1 190/363/1 192/166/1 -f 180/364/1 163/274/1 160/273/1 -f 192/166/1 190/363/1 160/273/1 -f 160/365/4 162/222/4 192/168/4 -f 187/319/3 190/276/3 195/169/3 -f 167/279/5 161/352/5 162/226/5 -f 162/226/5 160/277/5 167/279/5 -f 159/366/5 168/278/5 160/277/5 -f 185/271/3 186/280/3 193/113/3 -f 165/355/5 169/281/5 173/228/5 -f 161/356/3 167/283/3 165/231/3 -f 169/281/5 171/285/5 176/282/5 -f 167/283/3 168/287/3 169/284/3 -f 168/287/3 159/289/3 171/288/3 -f 171/288/3 164/290/3 172/292/3 -f 188/318/3 189/293/3 198/189/3 -f 173/357/3 176/294/3 174/243/3 -f 175/295/3 176/294/3 177/297/3 -f 181/308/2 170/298/2 183/300/2 -f 170/367/6 166/252/6 175/301/6 -f 171/368/1 172/302/1 178/304/1 -f 187/317/1 195/204/1 189/305/1 -f 172/302/1 182/306/1 177/303/1 -f 186/316/2 181/308/2 188/309/2 -f 175/295/3 177/297/3 183/311/3 -f 166/361/3 170/312/3 179/263/3 -f 172/292/3 163/291/3 182/315/3 -f 196/346/2 186/316/2 198/215/2 -f 182/306/1 187/317/1 184/307/1 -f 183/311/3 184/310/3 188/318/3 -f 179/263/3 181/313/3 185/271/3 -f 182/315/3 180/314/3 187/319/3 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr0.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr0.obj new file mode 100644 index 0000000..f42fb22 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr0.obj @@ -0,0 +1,1045 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_bottom_smr0.mtl +o HsVsAnzUnten_Cube.008 +v -0.028581 -0.495697 -0.439611 +v -0.028581 -0.291434 -0.439611 +v -0.028581 -0.291434 -0.496774 +v -0.028581 -0.164538 -0.439611 +v -0.028581 -0.164538 -0.496774 +v 0.028581 -0.495697 -0.496774 +v 0.028581 -0.291434 -0.496774 +v 0.028581 -0.291434 -0.439611 +v 0.028581 -0.164538 -0.496774 +v 0.028581 -0.164538 -0.439611 +v -0.028581 -0.495697 -0.496774 +v 0.028581 -0.495697 -0.439611 +v 0.028581 -0.495697 -0.268412 +v 0.028581 -0.291434 -0.268412 +v -0.028581 -0.291434 -0.268412 +v 0.028581 -0.164538 -0.268412 +v -0.028581 -0.164538 -0.268412 +v -0.028581 -0.495697 -0.325575 +v -0.028581 -0.291434 -0.325575 +v 0.028581 -0.291434 -0.325575 +v -0.028581 -0.495697 -0.268412 +v -0.028581 -0.164538 -0.325575 +v 0.028581 -0.495697 -0.325575 +v 0.028581 -0.164538 -0.325575 +v -0.028581 -0.164538 -0.439611 +v -0.028581 0.039726 -0.439611 +v -0.028581 0.039726 -0.496774 +v -0.028581 0.166622 -0.439611 +v -0.028581 0.166622 -0.496774 +v 0.028581 -0.164538 -0.496774 +v 0.028581 0.039726 -0.496774 +v 0.028581 0.039726 -0.439611 +v 0.028581 0.166622 -0.496774 +v 0.028581 0.166622 -0.439611 +v -0.028581 -0.164538 -0.496774 +v 0.028581 -0.164538 -0.439611 +v 0.028581 -0.164538 -0.268412 +v 0.028581 0.039726 -0.268412 +v -0.028581 0.039726 -0.268412 +v 0.028581 0.166622 -0.268412 +v -0.028581 0.166622 -0.268412 +v -0.028581 -0.164538 -0.325575 +v -0.028581 0.039726 -0.325575 +v 0.028581 0.039726 -0.325575 +v -0.028581 -0.164538 -0.268412 +v -0.028581 0.166622 -0.325575 +v 0.028581 -0.164538 -0.325575 +v 0.028581 0.166622 -0.325575 +v -0.028581 0.166622 -0.439611 +v -0.028581 0.370885 -0.439611 +v -0.028581 0.370885 -0.496774 +v -0.028581 0.497782 -0.439611 +v -0.028581 0.497782 -0.496774 +v 0.028581 0.166622 -0.496774 +v 0.028581 0.370885 -0.496774 +v 0.028581 0.370885 -0.439611 +v 0.028581 0.497782 -0.496774 +v 0.028581 0.497782 -0.439611 +v -0.028581 0.166622 -0.496774 +v 0.028581 0.166622 -0.439611 +v 0.028581 0.166622 -0.268412 +v 0.028581 0.370885 -0.268412 +v -0.028581 0.370885 -0.268412 +v 0.028581 0.497782 -0.268412 +v -0.028581 0.497782 -0.268412 +v -0.028581 0.166622 -0.325575 +v -0.028581 0.370885 -0.325575 +v 0.028581 0.370885 -0.325575 +v -0.028581 0.166622 -0.268412 +v -0.028581 0.497782 -0.325575 +v 0.028581 0.166622 -0.325575 +v 0.028581 0.497782 -0.325575 +v 0.000000 0.459446 -0.597615 +v 0.000000 0.465184 -0.597615 +v 0.000000 0.465184 -0.541156 +v 0.107395 0.319382 -0.541156 +v 0.107395 0.319382 -0.566450 +v 0.114848 0.319382 -0.566450 +v 0.000000 0.173581 -0.541156 +v 0.000000 0.173581 -0.566450 +v 0.000000 0.179319 -0.566450 +v -0.114848 0.319382 -0.566450 +v -0.107395 0.319382 -0.566450 +v -0.107395 0.319382 -0.541156 +v 0.000000 0.459446 -0.541156 +v 0.114848 0.319382 -0.541156 +v 0.000000 0.179319 -0.541156 +v -0.114848 0.319382 -0.541156 +v 0.138251 0.483868 -0.444371 +v 0.138251 0.459446 -0.541156 +v 0.138251 0.465184 -0.541156 +v 0.000000 0.483868 -0.444371 +v 0.000000 0.319382 -0.444371 +v 0.138251 0.319382 -0.444371 +v 0.138251 0.431511 -0.541156 +v 0.138251 0.319382 -0.541156 +v 0.114848 0.483868 -0.541156 +v 0.107395 0.483868 -0.541156 +v 0.107395 0.465184 -0.541156 +v 0.107395 0.465184 -0.597615 +v 0.114848 0.465184 -0.541156 +v 0.114848 0.465184 -0.597615 +v 0.138251 0.483868 -0.541156 +v 0.114848 0.459446 -0.541156 +v 0.114848 0.431511 -0.566450 +v 0.107395 0.459446 -0.597615 +v 0.114848 0.459446 -0.597615 +v 0.107395 0.459446 -0.541156 +v 0.107395 0.449042 -0.597615 +v 0.114848 0.449042 -0.541156 +v 0.114848 0.449042 -0.597615 +v 0.107395 0.449042 -0.541156 +v 0.107395 0.431511 -0.566450 +v 0.000000 0.449042 -0.541156 +v 0.138251 0.449042 -0.541156 +v 0.107395 0.431511 -0.541156 +v 0.114848 0.431511 -0.541156 +v 0.000000 0.431511 -0.541156 +v -0.138251 0.431511 -0.541156 +v -0.138251 0.319382 -0.444371 +v -0.138251 0.483868 -0.444371 +v -0.138251 0.319382 -0.541156 +v -0.107395 0.483868 -0.541156 +v -0.107395 0.465184 -0.597615 +v -0.107395 0.465184 -0.541156 +v -0.114848 0.465184 -0.597615 +v -0.114848 0.465184 -0.541156 +v -0.114848 0.483868 -0.541156 +v -0.138251 0.465184 -0.541156 +v -0.138251 0.483868 -0.541156 +v -0.114848 0.459446 -0.541156 +v -0.138251 0.459446 -0.541156 +v -0.114848 0.431511 -0.566450 +v -0.107395 0.459446 -0.597615 +v -0.114848 0.459446 -0.597615 +v -0.107395 0.449042 -0.597615 +v -0.107395 0.459446 -0.541156 +v -0.114848 0.449042 -0.597615 +v -0.114848 0.449042 -0.541156 +v -0.107395 0.431511 -0.566450 +v -0.107395 0.449042 -0.541156 +v -0.138251 0.449042 -0.541156 +v -0.107395 0.431511 -0.541156 +v -0.114848 0.431511 -0.541156 +v 0.138251 0.207254 -0.541156 +v 0.138251 0.154897 -0.444371 +v 0.000000 0.154897 -0.444371 +v 0.107395 0.154897 -0.541156 +v 0.107395 0.173581 -0.566450 +v 0.107395 0.173581 -0.541156 +v 0.114848 0.173581 -0.566450 +v 0.114848 0.173581 -0.541156 +v 0.114848 0.154897 -0.541156 +v 0.138251 0.173581 -0.541156 +v 0.138251 0.154897 -0.541156 +v 0.114848 0.179319 -0.541156 +v 0.138251 0.179319 -0.541156 +v 0.114848 0.207254 -0.566450 +v 0.107395 0.179319 -0.566450 +v 0.114848 0.179319 -0.566450 +v 0.107395 0.189722 -0.566450 +v 0.107395 0.179319 -0.541156 +v 0.114848 0.189722 -0.566450 +v 0.114848 0.189722 -0.541156 +v 0.107395 0.207254 -0.566450 +v 0.107395 0.189722 -0.541156 +v 0.000000 0.189722 -0.541156 +v 0.138251 0.189722 -0.541156 +v 0.107395 0.207254 -0.541156 +v 0.114848 0.207254 -0.541156 +v 0.000000 0.207254 -0.541156 +v -0.138251 0.154897 -0.444371 +v -0.138251 0.179319 -0.541156 +v -0.138251 0.173581 -0.541156 +v -0.138251 0.207254 -0.541156 +v -0.114848 0.154897 -0.541156 +v -0.107395 0.154897 -0.541156 +v -0.107395 0.173581 -0.541156 +v -0.107395 0.173581 -0.566450 +v -0.114848 0.173581 -0.541156 +v -0.114848 0.173581 -0.566450 +v -0.138251 0.154897 -0.541156 +v -0.114848 0.179319 -0.541156 +v -0.114848 0.207254 -0.566450 +v -0.107395 0.179319 -0.566450 +v -0.114848 0.179319 -0.566450 +v -0.107395 0.179319 -0.541156 +v -0.107395 0.189722 -0.566450 +v -0.114848 0.189722 -0.541156 +v -0.114848 0.189722 -0.566450 +v -0.107395 0.189722 -0.541156 +v -0.107395 0.207254 -0.566450 +v -0.138251 0.189722 -0.541156 +v -0.107395 0.207254 -0.541156 +v -0.114848 0.207254 -0.541156 +v 0.000000 0.483868 -0.541156 +v 0.000000 0.154897 -0.541156 +v 0.000000 0.319382 -0.541156 +vt 0.646743 0.371805 +vt 0.646743 0.142471 +vt 0.705619 0.142471 +vt 0.646743 0.000000 +vt 0.705619 0.000000 +vt 0.470413 0.743610 +vt 0.470413 0.514276 +vt 0.529289 0.514276 +vt 0.470413 0.371805 +vt 0.529289 0.371805 +vt 0.705619 0.371805 +vt 0.764495 0.142471 +vt 0.764495 0.000000 +vt 0.941124 0.371805 +vt 0.941124 0.142471 +vt 1.000000 0.142471 +vt 0.941124 0.000000 +vt 1.000000 0.000000 +vt 0.882248 0.743610 +vt 0.882248 0.514276 +vt 0.941124 0.514276 +vt 0.882248 0.371805 +vt 0.941124 0.371805 +vt 0.117752 0.972944 +vt 0.117752 0.743610 +vt 0.176628 0.743610 +vt 0.470413 0.371805 +vt 0.470413 0.142471 +vt 0.529289 0.142471 +vt 0.470413 0.000000 +vt 0.529289 0.000000 +vt 0.646743 0.743610 +vt 0.646743 0.514276 +vt 0.705619 0.514276 +vt 0.646743 0.371805 +vt 0.705619 0.371805 +vt 0.470413 0.743610 +vt 0.529289 0.743610 +vt 0.529289 0.871642 +vt 0.529289 0.871642 +vt 0.529289 0.743610 +vt 0.588165 0.743610 +vt 0.411537 0.743610 +vt 0.411537 0.514276 +vt 0.470413 0.514276 +vt 0.411537 0.371805 +vt 0.470413 0.371805 +vt 0.235206 0.371805 +vt 0.235206 0.142471 +vt 0.294083 0.142471 +vt 0.235206 0.000000 +vt 0.294083 0.000000 +vt 0.823372 0.371805 +vt 0.823372 0.142471 +vt 0.882248 0.142471 +vt 0.823372 0.000000 +vt 0.882248 0.000000 +vt 0.764495 0.743610 +vt 0.764495 0.514276 +vt 0.823372 0.514276 +vt 0.764495 0.371805 +vt 0.823372 0.371805 +vt 0.764495 0.371805 +vt 0.764495 0.142471 +vt 0.823372 0.142471 +vt 0.764495 0.000000 +vt 0.823372 0.000000 +vt 0.176628 0.972944 +vt 0.176628 0.743610 +vt 0.235504 0.743610 +vt 0.235206 0.743610 +vt 0.235206 0.514276 +vt 0.294083 0.514276 +vt 0.235206 0.371805 +vt 0.294083 0.371805 +vt 0.411537 0.371805 +vt 0.411537 0.142471 +vt 0.470413 0.142471 +vt 0.411537 0.000000 +vt 0.470413 0.000000 +vt 0.294381 0.743610 +vt 0.353257 0.743610 +vt 0.353257 0.871643 +vt 0.411537 0.871642 +vt 0.411537 0.743610 +vt 0.470413 0.743610 +vt 0.058876 0.371805 +vt 0.058876 0.601139 +vt 0.000000 0.601139 +vt 0.058876 0.743610 +vt 0.000000 0.743610 +vt 0.000000 0.371805 +vt 0.000000 0.142471 +vt 0.058876 0.142471 +vt 0.000000 0.000000 +vt 0.058876 0.000000 +vt 0.705619 0.743610 +vt 0.705619 0.514276 +vt 0.764495 0.514276 +vt 0.705619 0.371805 +vt 0.764495 0.371805 +vt 0.882248 0.371805 +vt 0.882248 0.142471 +vt 0.941124 0.142471 +vt 0.882248 0.000000 +vt 0.941124 0.000000 +vt 0.823372 0.743610 +vt 0.823372 0.514276 +vt 0.882248 0.514276 +vt 0.823372 0.371805 +vt 0.882248 0.371805 +vt 0.058876 0.972944 +vt 0.058876 0.743610 +vt 0.117752 0.743610 +vt 0.235206 0.371805 +vt 0.235206 0.601139 +vt 0.176330 0.601139 +vt 0.235206 0.743610 +vt 0.176330 0.743610 +vt 0.176330 0.371805 +vt 0.176330 0.142471 +vt 0.235206 0.142471 +vt 0.176330 0.000000 +vt 0.235206 0.000000 +vt 0.235504 0.743610 +vt 0.294381 0.743610 +vt 0.294381 0.871643 +vt 0.000000 0.935821 +vt 0.000000 0.807789 +vt 0.058876 0.807789 +vt 0.058876 0.935821 +vt 0.058876 1.000000 +vt 0.000000 0.743610 +vt 0.058876 0.743610 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.529289 0.743610 +vt 0.764495 0.371805 +vt 1.000000 0.371805 +vt 0.941124 0.743610 +vt 0.176628 0.972944 +vt 0.529289 0.371805 +vt 0.705619 0.743610 +vt 0.470413 0.871642 +vt 0.588165 0.871642 +vt 0.470413 0.743610 +vt 0.294083 0.371805 +vt 0.882248 0.371805 +vt 0.823372 0.743610 +vt 0.823372 0.371805 +vt 0.235505 0.972944 +vt 0.294083 0.743610 +vt 0.470413 0.371805 +vt 0.294381 0.871643 +vt 0.470413 0.871642 +vt 0.000000 0.371805 +vt 0.058876 0.371805 +vt 0.764495 0.743610 +vt 0.941124 0.371805 +vt 0.882248 0.743610 +vt 0.117752 0.972944 +vt 0.176330 0.371805 +vt 0.235206 0.371805 +vt 0.235505 0.871643 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.665377 0.373761 +vt 0.772053 0.346842 +vt 0.772053 0.353167 +vt 0.490653 0.373761 +vt 0.490653 0.192467 +vt 0.643030 0.192467 +vt 0.011173 0.316053 +vt 0.011173 0.192467 +vt 0.036968 0.192467 +vt 0.551766 0.888289 +vt 0.585764 0.781041 +vt 0.585769 0.781634 +vt 0.019388 0.948870 +vt 0.019388 0.886643 +vt 0.137756 0.886643 +vt 0.045182 0.373761 +vt 0.045182 0.353168 +vt 0.163551 0.353167 +vt 0.011173 0.948870 +vt 0.011173 0.886643 +vt 0.036968 0.373761 +vt 0.036968 0.353168 +vt 0.011173 0.373761 +vt 0.011173 0.353168 +vt 0.011173 0.346842 +vt 0.036968 0.346842 +vt 0.011173 0.678014 +vt 0.011583 0.555988 +vt 0.019722 0.556019 +vt 0.020806 0.733322 +vt 0.020483 0.727150 +vt 0.139957 0.720157 +vt 0.012751 0.733737 +vt 0.012436 0.727539 +vt 0.856627 0.319924 +vt 0.794399 0.319924 +vt 0.794399 0.308458 +vt 0.405055 0.886643 +vt 0.405055 0.948870 +vt 0.286686 0.948870 +vt 0.765364 0.711183 +vt 0.827591 0.711183 +vt 0.827592 0.717508 +vt 0.765364 0.556808 +vt 0.793243 0.556808 +vt 0.793243 0.680394 +vt 0.765364 0.699717 +vt 0.827591 0.699717 +vt 0.856627 0.308458 +vt 0.828748 0.289135 +vt 0.011935 0.716293 +vt 0.019940 0.716025 +vt 0.292576 0.704858 +vt 0.292580 0.693392 +vt 0.410948 0.693433 +vt 0.011173 0.335376 +vt 0.036968 0.335376 +vt 0.856627 0.289135 +vt 0.828749 0.165549 +vt 0.765364 0.680394 +vt 0.019200 0.677955 +vt 0.292586 0.674069 +vt 0.410955 0.674110 +vt 0.036968 0.316053 +vt 0.551768 0.700990 +vt 0.658443 0.577402 +vt 0.658442 0.758694 +vt 0.338275 0.192467 +vt 0.290134 0.192467 +vt 0.315929 0.192467 +vt 0.315929 0.316053 +vt 0.822460 0.781634 +vt 0.856462 0.888289 +vt 0.704114 0.888289 +vt 0.256125 0.886643 +vt 0.256125 0.948870 +vt 0.281920 0.353167 +vt 0.281920 0.373761 +vt 0.264339 0.886643 +vt 0.264339 0.948870 +vt 0.290134 0.353167 +vt 0.290134 0.373761 +vt 0.315929 0.353167 +vt 0.315929 0.373761 +vt 0.290134 0.346842 +vt 0.315929 0.346842 +vt 0.257912 0.557015 +vt 0.266077 0.556832 +vt 0.270229 0.678520 +vt 0.260857 0.727988 +vt 0.260493 0.734236 +vt 0.269006 0.728421 +vt 0.912166 0.693392 +vt 0.912166 0.704858 +vt 0.849938 0.704858 +vt 0.523424 0.948870 +vt 0.680790 0.717508 +vt 0.680790 0.711183 +vt 0.743017 0.711183 +vt 0.715139 0.680394 +vt 0.715139 0.556808 +vt 0.743017 0.556808 +vt 0.680790 0.699717 +vt 0.743017 0.699717 +vt 0.877817 0.674069 +vt 0.849938 0.693392 +vt 0.261459 0.716736 +vt 0.269558 0.717023 +vt 0.529317 0.693474 +vt 0.529313 0.704940 +vt 0.290134 0.335376 +vt 0.315929 0.335376 +vt 0.877817 0.550483 +vt 0.849938 0.674069 +vt 0.262231 0.678588 +vt 0.529324 0.674151 +vt 0.290134 0.316053 +vt 0.772053 0.068880 +vt 0.665377 0.192466 +vt 0.665378 0.011173 +vt 0.490653 0.011173 +vt 0.011173 0.068881 +vt 0.045176 0.863703 +vt 0.011173 0.757048 +vt 0.163521 0.757048 +vt 0.678349 0.938558 +vt 0.559981 0.938517 +vt 0.559990 0.910638 +vt 0.163551 0.031767 +vt 0.045182 0.031767 +vt 0.045182 0.011173 +vt 0.551766 0.938514 +vt 0.551776 0.910636 +vt 0.036968 0.031767 +vt 0.036968 0.011173 +vt 0.011173 0.031767 +vt 0.011173 0.011173 +vt 0.036968 0.038092 +vt 0.011173 0.038092 +vt 0.012099 0.433087 +vt 0.138415 0.402789 +vt 0.020379 0.402437 +vt 0.020398 0.396131 +vt 0.012192 0.402412 +vt 0.828749 0.022639 +vt 0.828749 0.011173 +vt 0.856627 0.011173 +vt 0.551766 0.960948 +vt 0.670135 0.960948 +vt 0.670135 0.988827 +vt 0.793243 0.396107 +vt 0.793243 0.402432 +vt 0.765364 0.402432 +vt 0.793243 0.433221 +vt 0.793243 0.413898 +vt 0.765364 0.413898 +vt 0.828749 0.041962 +vt 0.856627 0.022639 +vt 0.020343 0.413865 +vt 0.012159 0.413840 +vt 0.411047 0.407614 +vt 0.292678 0.407573 +vt 0.292682 0.396107 +vt 0.036968 0.049558 +vt 0.011173 0.049558 +vt 0.856627 0.041962 +vt 0.765364 0.433221 +vt 0.020276 0.433118 +vt 0.411040 0.426937 +vt 0.292671 0.426896 +vt 0.036968 0.068881 +vt 0.658442 0.396107 +vt 0.551767 0.423026 +vt 0.551767 0.416701 +vt 0.315929 0.068880 +vt 0.315869 0.757048 +vt 0.281872 0.864296 +vt 0.281867 0.863702 +vt 0.796728 0.910720 +vt 0.796718 0.938599 +vt 0.281920 0.011173 +vt 0.281920 0.031767 +vt 0.804942 0.910723 +vt 0.804932 0.938601 +vt 0.290134 0.011173 +vt 0.290134 0.031767 +vt 0.315929 0.011173 +vt 0.315929 0.031767 +vt 0.315929 0.038092 +vt 0.290134 0.038092 +vt 0.264798 0.433076 +vt 0.256461 0.396133 +vt 0.256482 0.402439 +vt 0.264648 0.396107 +vt 0.264668 0.402411 +vt 0.849939 0.396107 +vt 0.877817 0.396107 +vt 0.877817 0.407573 +vt 0.788504 0.960948 +vt 0.743017 0.402432 +vt 0.715139 0.402432 +vt 0.715139 0.396107 +vt 0.715139 0.433221 +vt 0.743017 0.413898 +vt 0.715139 0.413898 +vt 0.849939 0.407573 +vt 0.877817 0.426896 +vt 0.264708 0.413837 +vt 0.256523 0.413870 +vt 0.529420 0.396189 +vt 0.529416 0.407655 +vt 0.315929 0.049558 +vt 0.290134 0.049558 +vt 0.849939 0.426896 +vt 0.743017 0.433221 +vt 0.256621 0.433134 +vt 0.529409 0.426978 +vt 0.290134 0.068880 +vt 0.772053 0.373761 +vt 0.772053 0.316053 +vt 0.772053 0.335376 +vt 0.772053 0.192466 +vt 0.643030 0.373761 +vt 0.704114 0.781634 +vt 0.551766 0.781634 +vt 0.137756 0.948870 +vt 0.163551 0.373761 +vt 0.139936 0.726612 +vt 0.286686 0.886643 +vt 0.765364 0.717508 +vt 0.410944 0.704899 +vt 0.856627 0.165548 +vt 0.551768 0.758694 +vt 0.551768 0.738101 +vt 0.551768 0.731777 +vt 0.551768 0.720312 +vt 0.551767 0.577402 +vt 0.338275 0.373761 +vt 0.839461 0.781486 +vt 0.856462 0.781634 +vt 0.268654 0.734701 +vt 0.523424 0.886643 +vt 0.743017 0.717508 +vt 0.743017 0.680394 +vt 0.849938 0.550483 +vt 0.772053 0.011174 +vt 0.772053 0.031767 +vt 0.772053 0.038091 +vt 0.772053 0.049557 +vt 0.643030 0.011173 +vt 0.163521 0.863702 +vt 0.028174 0.863851 +vt 0.011173 0.863703 +vt 0.678359 0.910679 +vt 0.163551 0.011173 +vt 0.138415 0.396480 +vt 0.012211 0.396107 +vt 0.551766 0.988827 +vt 0.765364 0.396107 +vt 0.411051 0.396148 +vt 0.551766 0.396108 +vt 0.551767 0.453815 +vt 0.551767 0.434492 +vt 0.338275 0.011173 +vt 0.315869 0.863702 +vt 0.788504 0.988827 +vt 0.743017 0.396107 +vt 0.003906 1.015625 +vt 0.003906 0.496094 +vt 0.500000 0.496094 +vt 1.000000 0.500000 +vt 1.000000 1.015625 +vt 0.003906 -0.019531 +vt 1.000000 -0.019531 +vt 0.500000 1.015625 +vt 0.500000 -0.019531 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.8716 -0.4903 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Mast.009 +usemtl Mast.009 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 2/2/1 4/4/1 5/5/1 +f 6/6/2 7/7/2 8/8/2 +f 7/7/2 9/9/2 10/10/2 +f 11/11/3 3/3/3 7/12/3 +f 3/3/3 5/5/3 9/13/3 +f 12/14/4 8/15/4 2/16/4 +f 8/15/4 10/17/4 4/18/4 +f 13/19/4 14/20/4 15/21/4 +f 14/20/4 16/22/4 17/23/4 +f 18/24/3 19/25/3 20/26/3 +f 21/27/1 15/28/1 19/29/1 +f 15/28/1 17/30/1 22/31/1 +f 23/32/2 20/33/2 14/34/2 +f 20/33/2 24/35/2 16/36/2 +f 22/31/1 4/4/1 2/2/1 +f 20/37/5 19/38/5 2/39/5 +f 20/33/2 8/8/2 10/10/2 +f 24/40/6 10/41/6 4/42/6 +f 25/43/1 26/44/1 27/45/1 +f 26/44/1 28/46/1 29/47/1 +f 30/48/2 31/49/2 32/50/2 +f 31/49/2 33/51/2 34/52/2 +f 35/53/3 27/54/3 31/55/3 +f 27/54/3 29/56/3 33/57/3 +f 36/58/4 32/59/4 26/60/4 +f 32/59/4 34/61/4 28/62/4 +f 37/63/4 38/64/4 39/65/4 +f 38/64/4 40/66/4 41/67/4 +f 42/68/3 43/69/3 44/70/3 +f 45/71/1 39/72/1 43/73/1 +f 39/72/1 41/74/1 46/75/1 +f 47/76/2 44/77/2 38/78/2 +f 44/77/2 48/79/2 40/80/2 +f 46/75/1 28/46/1 26/44/1 +f 44/81/5 43/82/5 26/83/5 +f 44/77/2 32/50/2 34/52/2 +f 48/84/6 34/85/6 28/86/6 +f 49/87/1 50/88/1 51/89/1 +f 50/88/1 52/90/1 53/91/1 +f 54/92/2 55/93/2 56/94/2 +f 55/93/2 57/95/2 58/96/2 +f 59/97/3 51/98/3 55/99/3 +f 51/98/3 53/100/3 57/101/3 +f 60/102/4 56/103/4 50/104/4 +f 56/103/4 58/105/4 52/106/4 +f 61/107/4 62/108/4 63/109/4 +f 62/108/4 64/110/4 65/111/4 +f 66/112/3 67/113/3 68/114/3 +f 69/115/1 63/116/1 67/117/1 +f 63/116/1 65/118/1 70/119/1 +f 71/120/2 68/121/2 62/122/2 +f 68/121/2 72/123/2 64/124/2 +f 70/119/1 52/90/1 50/88/1 +f 68/125/5 67/126/5 50/127/5 +f 68/121/2 56/94/2 58/96/2 +f 72/128/6 58/129/6 52/130/6 +f 72/128/6 70/131/6 65/132/6 +f 58/129/6 57/133/6 53/134/6 +f 73/135/2 74/136/2 75/137/2 +f 76/138/5 77/139/5 78/140/5 +f 79/141/2 80/142/2 81/143/2 +f 82/144/5 83/145/5 84/146/5 +f 11/11/1 1/1/1 3/3/1 +f 3/3/1 2/2/1 5/5/1 +f 12/147/2 6/6/2 8/8/2 +f 8/8/2 7/7/2 10/10/2 +f 6/148/3 11/11/3 7/12/3 +f 7/12/3 3/3/3 9/13/3 +f 1/149/4 12/14/4 2/16/4 +f 2/16/4 8/15/4 4/18/4 +f 21/150/4 13/19/4 15/21/4 +f 15/21/4 14/20/4 17/23/4 +f 23/151/3 18/24/3 20/26/3 +f 18/152/1 21/27/1 19/29/1 +f 19/29/1 15/28/1 22/31/1 +f 13/153/2 23/32/2 14/34/2 +f 14/34/2 20/33/2 16/36/2 +f 19/29/1 22/31/1 2/2/1 +f 8/154/5 20/37/5 2/39/5 +f 24/35/2 20/33/2 10/10/2 +f 22/155/6 24/40/6 4/42/6 +f 35/156/1 25/43/1 27/45/1 +f 27/45/1 26/44/1 29/47/1 +f 36/157/2 30/48/2 32/50/2 +f 32/50/2 31/49/2 34/52/2 +f 30/158/3 35/53/3 31/55/3 +f 31/55/3 27/54/3 33/57/3 +f 25/159/4 36/58/4 26/60/4 +f 26/60/4 32/59/4 28/62/4 +f 45/160/4 37/63/4 39/65/4 +f 39/65/4 38/64/4 41/67/4 +f 47/161/3 42/68/3 44/70/3 +f 42/162/1 45/71/1 43/73/1 +f 43/73/1 39/72/1 46/75/1 +f 37/163/2 47/76/2 38/78/2 +f 38/78/2 44/77/2 40/80/2 +f 43/73/1 46/75/1 26/44/1 +f 32/164/5 44/81/5 26/83/5 +f 48/79/2 44/77/2 34/52/2 +f 46/165/6 48/84/6 28/86/6 +f 59/166/1 49/87/1 51/89/1 +f 51/89/1 50/88/1 53/91/1 +f 60/167/2 54/92/2 56/94/2 +f 56/94/2 55/93/2 58/96/2 +f 54/168/3 59/97/3 55/99/3 +f 55/99/3 51/98/3 57/101/3 +f 49/169/4 60/102/4 50/104/4 +f 50/104/4 56/103/4 52/106/4 +f 69/170/4 61/107/4 63/109/4 +f 63/109/4 62/108/4 65/111/4 +f 71/171/3 66/112/3 68/114/3 +f 66/172/1 69/115/1 67/117/1 +f 67/117/1 63/116/1 70/119/1 +f 61/173/2 71/120/2 62/122/2 +f 62/122/2 68/121/2 64/124/2 +f 67/117/1 70/119/1 50/88/1 +f 56/174/5 68/125/5 50/127/5 +f 72/123/2 68/121/2 58/96/2 +f 70/131/6 72/128/6 52/130/6 +f 64/175/6 72/128/6 65/132/6 +f 52/130/6 58/129/6 53/134/6 +f 85/176/2 73/135/2 75/137/2 +f 86/177/5 76/138/5 78/140/5 +f 87/178/2 79/141/2 81/143/2 +f 88/179/5 82/144/5 84/146/5 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Schirm.009 +usemtl Schirm.009 +f 89/180/2 90/181/2 91/182/2 +f 92/183/4 93/184/4 94/185/4 +f 95/186/3 96/187/3 86/188/3 +f 89/189/6 97/190/6 98/191/6 +f 99/192/6 100/193/6 74/194/6 +f 98/195/3 99/196/3 75/197/3 +f 101/198/6 102/199/6 100/193/6 +f 97/200/3 101/201/3 99/196/3 +f 103/202/3 91/203/3 101/201/3 +f 91/203/3 90/204/3 104/205/3 +f 105/206/3 78/207/3 77/208/3 +f 100/209/3 106/210/3 73/211/3 +f 100/209/3 102/212/3 107/213/3 +f 108/214/1 106/215/1 109/216/1 +f 85/217/5 73/218/5 106/219/5 +f 104/220/2 107/221/2 102/222/2 +f 86/223/2 78/224/2 105/225/2 +f 110/226/2 111/227/2 107/221/2 +f 112/228/1 109/216/1 113/229/1 +f 107/213/3 111/230/3 109/231/3 +f 108/232/3 112/233/3 114/234/3 +f 90/204/3 115/235/3 110/236/3 +f 116/237/1 113/229/1 77/238/1 +f 110/226/2 117/239/2 105/225/2 +f 111/230/7 105/206/7 113/240/7 +f 112/233/3 116/241/3 118/242/3 +f 115/235/3 95/186/3 117/243/3 +f 119/244/1 120/245/1 121/246/1 +f 120/247/4 93/184/4 92/183/4 +f 88/248/3 122/249/3 119/250/3 +f 123/251/6 121/252/6 92/253/6 +f 74/194/6 124/254/6 125/255/6 +f 75/197/3 125/256/3 123/257/3 +f 124/254/6 126/258/6 127/259/6 +f 125/256/3 127/260/3 128/261/3 +f 127/260/3 129/262/3 130/263/3 +f 131/264/3 132/265/3 129/262/3 +f 83/266/3 82/267/3 133/268/3 +f 73/211/3 134/269/3 124/270/3 +f 124/270/3 134/269/3 135/271/3 +f 136/272/2 134/273/2 137/274/2 +f 134/275/5 73/218/5 85/217/5 +f 126/276/1 135/277/1 131/278/1 +f 133/279/1 82/280/1 88/281/1 +f 135/277/1 138/282/1 139/283/1 +f 140/284/2 136/272/2 141/285/2 +f 136/286/3 138/287/3 135/271/3 +f 114/234/3 141/288/3 137/289/3 +f 139/290/3 142/291/3 132/265/3 +f 83/292/2 140/284/2 143/293/2 +f 139/283/1 138/282/1 133/279/1 +f 140/294/7 133/268/7 138/287/7 +f 118/242/3 143/295/3 141/288/3 +f 144/296/3 119/250/3 142/291/3 +f 145/297/2 94/298/2 146/299/2 +f 94/185/4 93/184/4 147/300/4 +f 86/188/3 96/187/3 145/301/3 +f 148/302/5 146/303/5 147/304/5 +f 80/305/5 149/306/5 150/307/5 +f 79/308/3 150/309/3 148/310/3 +f 149/306/5 151/311/5 152/312/5 +f 150/309/3 152/313/3 153/314/3 +f 152/313/3 154/315/3 155/316/3 +f 156/317/3 157/318/3 154/315/3 +f 77/208/3 78/207/3 158/319/3 +f 81/320/3 159/321/3 149/322/3 +f 149/322/3 159/321/3 160/323/3 +f 161/324/1 159/325/1 162/326/1 +f 159/327/6 81/328/6 87/329/6 +f 151/330/2 160/331/2 156/332/2 +f 158/333/2 78/224/2 86/223/2 +f 160/331/2 163/334/2 164/335/2 +f 165/336/1 161/324/1 166/337/1 +f 161/338/3 163/339/3 160/323/3 +f 167/340/3 166/341/3 162/342/3 +f 164/343/3 168/344/3 157/318/3 +f 77/238/1 165/336/1 169/345/1 +f 163/334/2 158/333/2 170/346/2 +f 165/347/3 158/319/3 163/339/3 +f 171/348/3 169/349/3 166/341/3 +f 170/350/3 145/301/3 168/344/3 +f 172/351/1 173/352/1 174/353/1 +f 147/300/4 93/184/4 120/247/4 +f 175/354/3 122/249/3 88/248/3 +f 172/355/5 176/356/5 177/357/5 +f 178/358/5 179/359/5 80/305/5 +f 177/360/3 178/361/3 79/308/3 +f 180/362/5 181/363/5 179/359/5 +f 176/364/3 180/365/3 178/361/3 +f 182/366/3 174/367/3 180/365/3 +f 174/367/3 173/368/3 183/369/3 +f 184/370/3 82/267/3 83/266/3 +f 179/371/3 185/372/3 81/320/3 +f 179/371/3 181/373/3 186/374/3 +f 187/375/2 185/376/2 188/377/2 +f 87/329/6 81/328/6 185/378/6 +f 183/379/1 186/380/1 181/381/1 +f 88/281/1 82/280/1 184/382/1 +f 189/383/1 190/384/1 186/380/1 +f 191/385/2 188/377/2 192/386/2 +f 186/374/3 190/387/3 188/388/3 +f 187/389/3 191/390/3 167/340/3 +f 173/368/3 193/391/3 189/392/3 +f 194/393/2 192/386/2 83/292/2 +f 195/394/1 184/382/1 190/384/1 +f 190/387/3 184/370/3 192/395/3 +f 191/390/3 194/396/3 171/348/3 +f 193/391/3 175/354/3 195/397/3 +f 91/182/2 103/398/2 89/180/2 +f 89/180/2 95/399/2 115/400/2 +f 96/401/2 95/399/2 94/298/2 +f 115/400/2 90/181/2 89/180/2 +f 94/298/2 95/399/2 89/180/2 +f 89/402/4 92/183/4 94/185/4 +f 117/243/3 95/186/3 86/188/3 +f 98/191/6 196/403/6 92/253/6 +f 92/253/6 89/189/6 98/191/6 +f 103/404/6 97/190/6 89/189/6 +f 75/405/6 99/192/6 74/194/6 +f 196/406/3 98/195/3 75/197/3 +f 99/192/6 101/198/6 100/193/6 +f 98/195/3 97/200/3 99/196/3 +f 97/200/3 103/202/3 101/201/3 +f 101/201/3 91/203/3 104/205/3 +f 113/240/3 105/206/3 77/208/3 +f 74/407/3 100/209/3 73/211/3 +f 106/210/3 100/209/3 107/213/3 +f 112/228/1 108/214/1 109/216/1 +f 108/408/5 85/217/5 106/219/5 +f 101/409/2 104/220/2 102/222/2 +f 117/239/2 86/223/2 105/225/2 +f 104/220/2 110/226/2 107/221/2 +f 116/237/1 112/228/1 113/229/1 +f 106/210/3 107/213/3 109/231/3 +f 85/410/3 108/232/3 114/234/3 +f 104/205/3 90/204/3 110/236/3 +f 76/411/1 116/237/1 77/238/1 +f 111/227/2 110/226/2 105/225/2 +f 109/231/7 111/230/7 113/240/7 +f 114/234/3 112/233/3 118/242/3 +f 110/236/3 115/235/3 117/243/3 +f 121/246/1 130/412/1 129/413/1 +f 129/413/1 132/414/1 121/246/1 +f 142/415/1 119/244/1 121/246/1 +f 122/416/1 120/245/1 119/244/1 +f 121/246/1 132/414/1 142/415/1 +f 121/417/4 120/247/4 92/183/4 +f 144/296/3 88/248/3 119/250/3 +f 92/253/6 196/403/6 123/251/6 +f 123/251/6 128/418/6 121/252/6 +f 130/419/6 121/252/6 128/418/6 +f 75/405/6 74/194/6 125/255/6 +f 196/406/3 75/197/3 123/257/3 +f 125/255/6 124/254/6 127/259/6 +f 123/257/3 125/256/3 128/261/3 +f 128/261/3 127/260/3 130/263/3 +f 127/260/3 131/264/3 129/262/3 +f 140/294/3 83/266/3 133/268/3 +f 74/407/3 73/211/3 124/270/3 +f 126/420/3 124/270/3 135/271/3 +f 141/285/2 136/272/2 137/274/2 +f 137/421/5 134/275/5 85/217/5 +f 127/422/1 126/276/1 131/278/1 +f 144/423/1 133/279/1 88/281/1 +f 131/278/1 135/277/1 139/283/1 +f 143/293/2 140/284/2 141/285/2 +f 134/269/3 136/286/3 135/271/3 +f 85/410/3 114/234/3 137/289/3 +f 131/264/3 139/290/3 132/265/3 +f 84/424/2 83/292/2 143/293/2 +f 144/423/1 139/283/1 133/279/1 +f 136/286/7 140/294/7 138/287/7 +f 114/234/3 118/242/3 141/288/3 +f 139/290/3 144/296/3 142/291/3 +f 146/299/2 155/425/2 154/426/2 +f 154/426/2 157/427/2 146/299/2 +f 168/428/2 145/297/2 146/299/2 +f 96/401/2 94/298/2 145/297/2 +f 146/299/2 157/427/2 168/428/2 +f 146/429/4 94/185/4 147/300/4 +f 170/350/3 86/188/3 145/301/3 +f 147/304/5 197/430/5 148/302/5 +f 148/302/5 153/431/5 146/303/5 +f 155/432/5 146/303/5 153/431/5 +f 79/433/5 80/305/5 150/307/5 +f 197/434/3 79/308/3 148/310/3 +f 150/307/5 149/306/5 152/312/5 +f 148/310/3 150/309/3 153/314/3 +f 153/314/3 152/313/3 155/316/3 +f 152/313/3 156/317/3 154/315/3 +f 165/347/3 77/208/3 158/319/3 +f 80/435/3 81/320/3 149/322/3 +f 151/436/3 149/322/3 160/323/3 +f 166/337/1 161/324/1 162/326/1 +f 162/437/6 159/327/6 87/329/6 +f 152/438/2 151/330/2 156/332/2 +f 170/346/2 158/333/2 86/223/2 +f 156/332/2 160/331/2 164/335/2 +f 169/345/1 165/336/1 166/337/1 +f 159/321/3 161/338/3 160/323/3 +f 87/439/3 167/340/3 162/342/3 +f 156/317/3 164/343/3 157/318/3 +f 76/411/1 77/238/1 169/345/1 +f 164/335/2 163/334/2 170/346/2 +f 161/338/3 165/347/3 163/339/3 +f 167/340/3 171/348/3 166/341/3 +f 164/343/3 170/350/3 168/344/3 +f 174/353/1 182/440/1 172/351/1 +f 172/351/1 175/441/1 193/442/1 +f 122/416/1 175/441/1 120/245/1 +f 193/442/1 173/352/1 172/351/1 +f 120/245/1 175/441/1 172/351/1 +f 172/443/4 147/300/4 120/247/4 +f 195/397/3 175/354/3 88/248/3 +f 177/357/5 197/430/5 147/304/5 +f 147/304/5 172/355/5 177/357/5 +f 182/444/5 176/356/5 172/355/5 +f 79/433/5 178/358/5 80/305/5 +f 197/434/3 177/360/3 79/308/3 +f 178/358/5 180/362/5 179/359/5 +f 177/360/3 176/364/3 178/361/3 +f 176/364/3 182/366/3 180/365/3 +f 180/365/3 174/367/3 183/369/3 +f 192/395/3 184/370/3 83/266/3 +f 80/435/3 179/371/3 81/320/3 +f 185/372/3 179/371/3 186/374/3 +f 191/385/2 187/375/2 188/377/2 +f 187/445/6 87/329/6 185/378/6 +f 180/446/1 183/379/1 181/381/1 +f 195/394/1 88/281/1 184/382/1 +f 183/379/1 189/383/1 186/380/1 +f 194/393/2 191/385/2 192/386/2 +f 185/372/3 186/374/3 188/388/3 +f 87/439/3 187/389/3 167/340/3 +f 183/369/3 173/368/3 189/392/3 +f 84/424/2 194/393/2 83/292/2 +f 189/383/1 195/394/1 190/384/1 +f 188/388/3 190/387/3 192/395/3 +f 167/340/3 191/390/3 171/348/3 +f 189/392/3 193/391/3 195/397/3 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Anzeige.009 +usemtl Anzeige.009 +f 116/447/3 76/448/3 198/449/3 +f 198/449/3 84/450/3 143/451/3 +f 198/449/3 76/448/3 169/452/3 +f 194/453/3 84/450/3 198/449/3 +f 118/454/3 116/447/3 198/449/3 +f 118/454/3 198/449/3 143/451/3 +f 171/455/3 198/449/3 169/452/3 +f 171/455/3 194/453/3 198/449/3 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr30.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr30.obj new file mode 100644 index 0000000..3436d77 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr30.obj @@ -0,0 +1,1045 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_bottom_smr30.mtl +o HsVsAnzUnten_Cube.008 +v 0.170575 -0.495697 -0.406176 +v 0.170575 -0.291434 -0.406176 +v 0.196081 -0.291434 -0.457333 +v 0.170575 -0.164538 -0.406176 +v 0.196081 -0.164538 -0.457333 +v 0.247238 -0.495697 -0.431827 +v 0.247238 -0.291434 -0.431827 +v 0.221732 -0.291434 -0.380670 +v 0.247238 -0.164538 -0.431827 +v 0.221732 -0.164538 -0.380670 +v 0.196081 -0.495697 -0.457333 +v 0.221732 -0.495697 -0.380670 +v 0.145343 -0.495697 -0.227458 +v 0.145343 -0.291434 -0.227458 +v 0.094187 -0.291434 -0.252964 +v 0.145343 -0.164538 -0.227458 +v 0.094187 -0.164538 -0.252964 +v 0.119693 -0.495697 -0.304121 +v 0.119693 -0.291434 -0.304121 +v 0.170849 -0.291434 -0.278615 +v 0.094187 -0.495697 -0.252964 +v 0.119693 -0.164538 -0.304121 +v 0.170849 -0.495697 -0.278615 +v 0.170849 -0.164538 -0.278615 +v 0.170575 -0.164538 -0.406176 +v 0.170575 0.039726 -0.406176 +v 0.196081 0.039726 -0.457333 +v 0.170575 0.166622 -0.406176 +v 0.196081 0.166622 -0.457333 +v 0.247238 -0.164538 -0.431827 +v 0.247238 0.039726 -0.431827 +v 0.221732 0.039726 -0.380670 +v 0.247238 0.166622 -0.431827 +v 0.221732 0.166622 -0.380670 +v 0.196081 -0.164538 -0.457333 +v 0.221732 -0.164538 -0.380670 +v 0.145343 -0.164538 -0.227458 +v 0.145343 0.039726 -0.227458 +v 0.094187 0.039726 -0.252964 +v 0.145343 0.166622 -0.227458 +v 0.094187 0.166622 -0.252964 +v 0.119693 -0.164538 -0.304121 +v 0.119693 0.039726 -0.304121 +v 0.170849 0.039726 -0.278615 +v 0.094187 -0.164538 -0.252964 +v 0.119693 0.166622 -0.304121 +v 0.170849 -0.164538 -0.278615 +v 0.170849 0.166622 -0.278615 +v 0.170575 0.166622 -0.406176 +v 0.170575 0.370885 -0.406176 +v 0.196081 0.370885 -0.457333 +v 0.170575 0.497782 -0.406176 +v 0.196081 0.497782 -0.457333 +v 0.247238 0.166622 -0.431827 +v 0.247238 0.370885 -0.431827 +v 0.221732 0.370885 -0.380670 +v 0.247238 0.497782 -0.431827 +v 0.221732 0.497782 -0.380670 +v 0.196081 0.166622 -0.457333 +v 0.221732 0.166622 -0.380670 +v 0.145343 0.166622 -0.227458 +v 0.145343 0.370885 -0.227458 +v 0.094187 0.370885 -0.252964 +v 0.145343 0.497782 -0.227458 +v 0.094187 0.497782 -0.252964 +v 0.119693 0.166622 -0.304121 +v 0.119693 0.370885 -0.304121 +v 0.170849 0.370885 -0.278615 +v 0.094187 0.166622 -0.252964 +v 0.119693 0.497782 -0.304121 +v 0.170849 0.166622 -0.278615 +v 0.170849 0.497782 -0.278615 +v 0.266654 0.459446 -0.534826 +v 0.266654 0.465184 -0.534826 +v 0.241463 0.465184 -0.484299 +v 0.337574 0.319382 -0.436380 +v 0.348860 0.319382 -0.459016 +v 0.355530 0.319382 -0.455691 +v 0.241463 0.173581 -0.484299 +v 0.252749 0.173581 -0.506936 +v 0.252749 0.179319 -0.506936 +v 0.149967 0.319382 -0.558180 +v 0.156637 0.319382 -0.554855 +v 0.145351 0.319382 -0.532219 +v 0.241463 0.459446 -0.484299 +v 0.344244 0.319382 -0.433054 +v 0.241463 0.179319 -0.484299 +v 0.138681 0.319382 -0.535544 +v 0.322003 0.483868 -0.335996 +v 0.365188 0.459446 -0.422612 +v 0.365188 0.465184 -0.422612 +v 0.198277 0.483868 -0.397683 +v 0.198277 0.319382 -0.397683 +v 0.322003 0.319382 -0.335996 +v 0.365188 0.431511 -0.422612 +v 0.365188 0.319382 -0.422612 +v 0.344244 0.483868 -0.433054 +v 0.337574 0.483868 -0.436380 +v 0.337574 0.465184 -0.436380 +v 0.362766 0.465184 -0.486907 +v 0.344244 0.465184 -0.433054 +v 0.369436 0.465184 -0.483581 +v 0.365188 0.483868 -0.422612 +v 0.344244 0.459446 -0.433054 +v 0.355530 0.431511 -0.455691 +v 0.362766 0.459446 -0.486907 +v 0.369436 0.459446 -0.483581 +v 0.337574 0.459446 -0.436380 +v 0.362766 0.449042 -0.486907 +v 0.344244 0.449042 -0.433054 +v 0.369436 0.449042 -0.483581 +v 0.337574 0.449042 -0.436380 +v 0.348860 0.431511 -0.459016 +v 0.241463 0.449042 -0.484299 +v 0.365188 0.449042 -0.422612 +v 0.337574 0.431511 -0.436380 +v 0.344244 0.431511 -0.433054 +v 0.241463 0.431511 -0.484299 +v 0.117737 0.431511 -0.545986 +v 0.074552 0.319382 -0.459370 +v 0.074552 0.483868 -0.459370 +v 0.117737 0.319382 -0.545986 +v 0.145351 0.483868 -0.532219 +v 0.170543 0.465184 -0.582746 +v 0.145351 0.465184 -0.532219 +v 0.163873 0.465184 -0.586071 +v 0.138681 0.465184 -0.535544 +v 0.138681 0.483868 -0.535544 +v 0.117737 0.465184 -0.545986 +v 0.117737 0.483868 -0.545986 +v 0.138681 0.459446 -0.535544 +v 0.117737 0.459446 -0.545986 +v 0.149967 0.431511 -0.558180 +v 0.170543 0.459446 -0.582746 +v 0.163873 0.459446 -0.586071 +v 0.170543 0.449042 -0.582746 +v 0.145351 0.459446 -0.532219 +v 0.163873 0.449042 -0.586071 +v 0.138681 0.449042 -0.535544 +v 0.156637 0.431511 -0.554855 +v 0.145351 0.449042 -0.532219 +v 0.117737 0.449042 -0.545986 +v 0.145351 0.431511 -0.532219 +v 0.138681 0.431511 -0.535544 +v 0.365188 0.207254 -0.422612 +v 0.322003 0.154897 -0.335996 +v 0.198277 0.154897 -0.397683 +v 0.337574 0.154897 -0.436380 +v 0.348860 0.173581 -0.459016 +v 0.337574 0.173581 -0.436380 +v 0.355530 0.173581 -0.455691 +v 0.344244 0.173581 -0.433054 +v 0.344244 0.154897 -0.433054 +v 0.365188 0.173581 -0.422612 +v 0.365188 0.154897 -0.422612 +v 0.344244 0.179319 -0.433054 +v 0.365188 0.179319 -0.422612 +v 0.355530 0.207254 -0.455691 +v 0.348860 0.179319 -0.459016 +v 0.355530 0.179319 -0.455691 +v 0.348860 0.189722 -0.459016 +v 0.337574 0.179319 -0.436380 +v 0.355530 0.189722 -0.455691 +v 0.344244 0.189722 -0.433054 +v 0.348860 0.207254 -0.459016 +v 0.337574 0.189722 -0.436380 +v 0.241463 0.189722 -0.484299 +v 0.365188 0.189722 -0.422612 +v 0.337574 0.207254 -0.436380 +v 0.344244 0.207254 -0.433054 +v 0.241463 0.207254 -0.484299 +v 0.074552 0.154897 -0.459370 +v 0.117737 0.179319 -0.545986 +v 0.117737 0.173581 -0.545986 +v 0.117737 0.207254 -0.545986 +v 0.138681 0.154897 -0.535544 +v 0.145351 0.154897 -0.532219 +v 0.145351 0.173581 -0.532219 +v 0.156637 0.173581 -0.554855 +v 0.138681 0.173581 -0.535544 +v 0.149967 0.173581 -0.558180 +v 0.117737 0.154897 -0.545986 +v 0.138681 0.179319 -0.535544 +v 0.149967 0.207254 -0.558180 +v 0.156637 0.179319 -0.554855 +v 0.149967 0.179319 -0.558180 +v 0.145351 0.179319 -0.532219 +v 0.156637 0.189722 -0.554855 +v 0.138681 0.189722 -0.535544 +v 0.149967 0.189722 -0.558180 +v 0.145351 0.189722 -0.532219 +v 0.156637 0.207254 -0.554855 +v 0.117737 0.189722 -0.545986 +v 0.145351 0.207254 -0.532219 +v 0.138681 0.207254 -0.535544 +v 0.241463 0.483868 -0.484299 +v 0.241463 0.154897 -0.484299 +v 0.241463 0.319382 -0.484299 +vt 0.646743 0.371805 +vt 0.646743 0.142471 +vt 0.705619 0.142471 +vt 0.646743 0.000000 +vt 0.705619 0.000000 +vt 0.470413 0.743610 +vt 0.470413 0.514276 +vt 0.529289 0.514276 +vt 0.470413 0.371805 +vt 0.529289 0.371805 +vt 0.705619 0.371805 +vt 0.764495 0.142471 +vt 0.764495 0.000000 +vt 0.941124 0.371805 +vt 0.941124 0.142471 +vt 1.000000 0.142471 +vt 0.941124 0.000000 +vt 1.000000 0.000000 +vt 0.882248 0.743610 +vt 0.882248 0.514276 +vt 0.941124 0.514276 +vt 0.882248 0.371805 +vt 0.941124 0.371805 +vt 0.117752 0.972944 +vt 0.117752 0.743610 +vt 0.176628 0.743610 +vt 0.470413 0.371805 +vt 0.470413 0.142471 +vt 0.529289 0.142471 +vt 0.470413 0.000000 +vt 0.529289 0.000000 +vt 0.646743 0.743610 +vt 0.646743 0.514276 +vt 0.705619 0.514276 +vt 0.646743 0.371805 +vt 0.705619 0.371805 +vt 0.470413 0.743610 +vt 0.529289 0.743610 +vt 0.529289 0.871642 +vt 0.529289 0.871642 +vt 0.529289 0.743610 +vt 0.588165 0.743610 +vt 0.411537 0.743610 +vt 0.411537 0.514276 +vt 0.470413 0.514276 +vt 0.411537 0.371805 +vt 0.470413 0.371805 +vt 0.235206 0.371805 +vt 0.235206 0.142471 +vt 0.294083 0.142471 +vt 0.235206 0.000000 +vt 0.294083 0.000000 +vt 0.823372 0.371805 +vt 0.823372 0.142471 +vt 0.882248 0.142471 +vt 0.823372 0.000000 +vt 0.882248 0.000000 +vt 0.764495 0.743610 +vt 0.764495 0.514276 +vt 0.823372 0.514276 +vt 0.764495 0.371805 +vt 0.823372 0.371805 +vt 0.764495 0.371805 +vt 0.764495 0.142471 +vt 0.823372 0.142471 +vt 0.764495 0.000000 +vt 0.823372 0.000000 +vt 0.176628 0.972944 +vt 0.176628 0.743610 +vt 0.235504 0.743610 +vt 0.235206 0.743610 +vt 0.235206 0.514276 +vt 0.294083 0.514276 +vt 0.235206 0.371805 +vt 0.294083 0.371805 +vt 0.411537 0.371805 +vt 0.411537 0.142471 +vt 0.470413 0.142471 +vt 0.411537 0.000000 +vt 0.470413 0.000000 +vt 0.294381 0.743610 +vt 0.353257 0.743610 +vt 0.353257 0.871643 +vt 0.411537 0.871642 +vt 0.411537 0.743610 +vt 0.470413 0.743610 +vt 0.058876 0.371805 +vt 0.058876 0.601139 +vt 0.000000 0.601139 +vt 0.058876 0.743610 +vt 0.000000 0.743610 +vt 0.000000 0.371805 +vt 0.000000 0.142471 +vt 0.058876 0.142471 +vt 0.000000 0.000000 +vt 0.058876 0.000000 +vt 0.705619 0.743610 +vt 0.705619 0.514276 +vt 0.764495 0.514276 +vt 0.705619 0.371805 +vt 0.764495 0.371805 +vt 0.882248 0.371805 +vt 0.882248 0.142471 +vt 0.941124 0.142471 +vt 0.882248 0.000000 +vt 0.941124 0.000000 +vt 0.823372 0.743610 +vt 0.823372 0.514276 +vt 0.882248 0.514276 +vt 0.823372 0.371805 +vt 0.882248 0.371805 +vt 0.058876 0.972944 +vt 0.058876 0.743610 +vt 0.117752 0.743610 +vt 0.235206 0.371805 +vt 0.235206 0.601139 +vt 0.176330 0.601139 +vt 0.235206 0.743610 +vt 0.176330 0.743610 +vt 0.176330 0.371805 +vt 0.176330 0.142471 +vt 0.235206 0.142471 +vt 0.176330 0.000000 +vt 0.235206 0.000000 +vt 0.235504 0.743610 +vt 0.294381 0.743610 +vt 0.294381 0.871643 +vt 0.000000 0.935821 +vt 0.000000 0.807789 +vt 0.058876 0.807789 +vt 0.058876 0.935821 +vt 0.058876 1.000000 +vt 0.000000 0.743610 +vt 0.058876 0.743610 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.529289 0.743610 +vt 0.764495 0.371805 +vt 1.000000 0.371805 +vt 0.941124 0.743610 +vt 0.176628 0.972944 +vt 0.529289 0.371805 +vt 0.705619 0.743610 +vt 0.470413 0.871642 +vt 0.588165 0.871642 +vt 0.470413 0.743610 +vt 0.294083 0.371805 +vt 0.882248 0.371805 +vt 0.823372 0.743610 +vt 0.823372 0.371805 +vt 0.235505 0.972944 +vt 0.294083 0.743610 +vt 0.470413 0.371805 +vt 0.294381 0.871643 +vt 0.470413 0.871642 +vt 0.000000 0.371805 +vt 0.058876 0.371805 +vt 0.764495 0.743610 +vt 0.941124 0.371805 +vt 0.882248 0.743610 +vt 0.117752 0.972944 +vt 0.176330 0.371805 +vt 0.235206 0.371805 +vt 0.235505 0.871643 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.665377 0.373761 +vt 0.772053 0.346842 +vt 0.772053 0.353167 +vt 0.490653 0.373761 +vt 0.490653 0.192467 +vt 0.643030 0.192467 +vt 0.011173 0.316053 +vt 0.011173 0.192467 +vt 0.036968 0.192467 +vt 0.551766 0.888289 +vt 0.585764 0.781041 +vt 0.585769 0.781634 +vt 0.019388 0.948870 +vt 0.019388 0.886643 +vt 0.137756 0.886643 +vt 0.045182 0.373761 +vt 0.045182 0.353168 +vt 0.163551 0.353167 +vt 0.011173 0.948870 +vt 0.011173 0.886643 +vt 0.036968 0.373761 +vt 0.036968 0.353168 +vt 0.011173 0.373761 +vt 0.011173 0.353168 +vt 0.011173 0.346842 +vt 0.036968 0.346842 +vt 0.011173 0.678014 +vt 0.011583 0.555988 +vt 0.019722 0.556019 +vt 0.020806 0.733322 +vt 0.020483 0.727150 +vt 0.139957 0.720157 +vt 0.012751 0.733737 +vt 0.012436 0.727539 +vt 0.856627 0.319924 +vt 0.794399 0.319924 +vt 0.794399 0.308458 +vt 0.405055 0.886643 +vt 0.405055 0.948870 +vt 0.286686 0.948870 +vt 0.765364 0.711183 +vt 0.827591 0.711183 +vt 0.827592 0.717508 +vt 0.765364 0.556808 +vt 0.793243 0.556808 +vt 0.793243 0.680394 +vt 0.765364 0.699717 +vt 0.827591 0.699717 +vt 0.856627 0.308458 +vt 0.828748 0.289135 +vt 0.011935 0.716293 +vt 0.019940 0.716025 +vt 0.292576 0.704858 +vt 0.292580 0.693392 +vt 0.410948 0.693433 +vt 0.011173 0.335376 +vt 0.036968 0.335376 +vt 0.856627 0.289135 +vt 0.828749 0.165549 +vt 0.765364 0.680394 +vt 0.019200 0.677955 +vt 0.292586 0.674069 +vt 0.410955 0.674110 +vt 0.036968 0.316053 +vt 0.551768 0.700990 +vt 0.658443 0.577402 +vt 0.658442 0.758694 +vt 0.338275 0.192467 +vt 0.290134 0.192467 +vt 0.315929 0.192467 +vt 0.315929 0.316053 +vt 0.822460 0.781634 +vt 0.856462 0.888289 +vt 0.704114 0.888289 +vt 0.256125 0.886643 +vt 0.256125 0.948870 +vt 0.281920 0.353167 +vt 0.281920 0.373761 +vt 0.264339 0.886643 +vt 0.264339 0.948870 +vt 0.290134 0.353167 +vt 0.290134 0.373761 +vt 0.315929 0.353167 +vt 0.315929 0.373761 +vt 0.290134 0.346842 +vt 0.315929 0.346842 +vt 0.257912 0.557015 +vt 0.266077 0.556832 +vt 0.270229 0.678520 +vt 0.260857 0.727988 +vt 0.260493 0.734236 +vt 0.269006 0.728421 +vt 0.912166 0.693392 +vt 0.912166 0.704858 +vt 0.849938 0.704858 +vt 0.523424 0.948870 +vt 0.680790 0.717508 +vt 0.680790 0.711183 +vt 0.743017 0.711183 +vt 0.715139 0.680394 +vt 0.715139 0.556808 +vt 0.743017 0.556808 +vt 0.680790 0.699717 +vt 0.743017 0.699717 +vt 0.877817 0.674069 +vt 0.849938 0.693392 +vt 0.261459 0.716736 +vt 0.269558 0.717023 +vt 0.529317 0.693474 +vt 0.529313 0.704940 +vt 0.290134 0.335376 +vt 0.315929 0.335376 +vt 0.877817 0.550483 +vt 0.849938 0.674069 +vt 0.262231 0.678588 +vt 0.529324 0.674151 +vt 0.290134 0.316053 +vt 0.772053 0.068880 +vt 0.665377 0.192466 +vt 0.665378 0.011173 +vt 0.490653 0.011173 +vt 0.011173 0.068881 +vt 0.045176 0.863703 +vt 0.011173 0.757048 +vt 0.163521 0.757048 +vt 0.678349 0.938558 +vt 0.559981 0.938517 +vt 0.559990 0.910638 +vt 0.163551 0.031767 +vt 0.045182 0.031767 +vt 0.045182 0.011173 +vt 0.551766 0.938514 +vt 0.551776 0.910636 +vt 0.036968 0.031767 +vt 0.036968 0.011173 +vt 0.011173 0.031767 +vt 0.011173 0.011173 +vt 0.036968 0.038092 +vt 0.011173 0.038092 +vt 0.012099 0.433087 +vt 0.138415 0.402789 +vt 0.020379 0.402437 +vt 0.020398 0.396131 +vt 0.012192 0.402412 +vt 0.828749 0.022639 +vt 0.828749 0.011173 +vt 0.856627 0.011173 +vt 0.551766 0.960948 +vt 0.670135 0.960948 +vt 0.670135 0.988827 +vt 0.793243 0.396107 +vt 0.793243 0.402432 +vt 0.765364 0.402432 +vt 0.793243 0.433221 +vt 0.793243 0.413898 +vt 0.765364 0.413898 +vt 0.828749 0.041962 +vt 0.856627 0.022639 +vt 0.020343 0.413865 +vt 0.012159 0.413840 +vt 0.411047 0.407614 +vt 0.292678 0.407573 +vt 0.292682 0.396107 +vt 0.036968 0.049558 +vt 0.011173 0.049558 +vt 0.856627 0.041962 +vt 0.765364 0.433221 +vt 0.020276 0.433118 +vt 0.411040 0.426937 +vt 0.292671 0.426896 +vt 0.036968 0.068881 +vt 0.658442 0.396107 +vt 0.551767 0.423026 +vt 0.551767 0.416701 +vt 0.315929 0.068880 +vt 0.315869 0.757048 +vt 0.281872 0.864296 +vt 0.281867 0.863702 +vt 0.796728 0.910720 +vt 0.796718 0.938599 +vt 0.281920 0.011173 +vt 0.281920 0.031767 +vt 0.804942 0.910723 +vt 0.804932 0.938601 +vt 0.290134 0.011173 +vt 0.290134 0.031767 +vt 0.315929 0.011173 +vt 0.315929 0.031767 +vt 0.315929 0.038092 +vt 0.290134 0.038092 +vt 0.264798 0.433076 +vt 0.256461 0.396133 +vt 0.256482 0.402439 +vt 0.264648 0.396107 +vt 0.264668 0.402411 +vt 0.849939 0.396107 +vt 0.877817 0.396107 +vt 0.877817 0.407573 +vt 0.788504 0.960948 +vt 0.743017 0.402432 +vt 0.715139 0.402432 +vt 0.715139 0.396107 +vt 0.715139 0.433221 +vt 0.743017 0.413898 +vt 0.715139 0.413898 +vt 0.849939 0.407573 +vt 0.877817 0.426896 +vt 0.264708 0.413837 +vt 0.256523 0.413870 +vt 0.529420 0.396189 +vt 0.529416 0.407655 +vt 0.315929 0.049558 +vt 0.290134 0.049558 +vt 0.849939 0.426896 +vt 0.743017 0.433221 +vt 0.256621 0.433134 +vt 0.529409 0.426978 +vt 0.290134 0.068880 +vt 0.772053 0.373761 +vt 0.772053 0.316053 +vt 0.772053 0.335376 +vt 0.772053 0.192466 +vt 0.643030 0.373761 +vt 0.704114 0.781634 +vt 0.551766 0.781634 +vt 0.137756 0.948870 +vt 0.163551 0.373761 +vt 0.139936 0.726612 +vt 0.286686 0.886643 +vt 0.765364 0.717508 +vt 0.410944 0.704899 +vt 0.856627 0.165548 +vt 0.551768 0.758694 +vt 0.551768 0.738101 +vt 0.551768 0.731777 +vt 0.551768 0.720312 +vt 0.551767 0.577402 +vt 0.338275 0.373761 +vt 0.839461 0.781486 +vt 0.856462 0.781634 +vt 0.268654 0.734701 +vt 0.523424 0.886643 +vt 0.743017 0.717508 +vt 0.743017 0.680394 +vt 0.849938 0.550483 +vt 0.772053 0.011174 +vt 0.772053 0.031767 +vt 0.772053 0.038091 +vt 0.772053 0.049557 +vt 0.643030 0.011173 +vt 0.163521 0.863702 +vt 0.028174 0.863851 +vt 0.011173 0.863703 +vt 0.678359 0.910679 +vt 0.163551 0.011173 +vt 0.138415 0.396480 +vt 0.012211 0.396107 +vt 0.551766 0.988827 +vt 0.765364 0.396107 +vt 0.411051 0.396148 +vt 0.551766 0.396108 +vt 0.551767 0.453815 +vt 0.551767 0.434492 +vt 0.338275 0.011173 +vt 0.315869 0.863702 +vt 0.788504 0.988827 +vt 0.743017 0.396107 +vt 0.003906 1.015625 +vt 0.003906 0.496094 +vt 0.500000 0.496094 +vt 1.000000 0.500000 +vt 1.000000 1.015625 +vt 0.003906 -0.019531 +vt 1.000000 -0.019531 +vt 0.500000 1.015625 +vt 0.500000 -0.019531 +vn -0.8949 0.0000 -0.4462 +vn 0.8949 0.0000 0.4462 +vn 0.4462 0.0000 -0.8949 +vn -0.4462 0.0000 0.8949 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.2188 -0.8716 -0.4388 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Mast.009 +usemtl Mast.009 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 2/2/1 4/4/1 5/5/1 +f 6/6/2 7/7/2 8/8/2 +f 7/7/2 9/9/2 10/10/2 +f 11/11/3 3/3/3 7/12/3 +f 3/3/3 5/5/3 9/13/3 +f 12/14/4 8/15/4 2/16/4 +f 8/15/4 10/17/4 4/18/4 +f 13/19/4 14/20/4 15/21/4 +f 14/20/4 16/22/4 17/23/4 +f 18/24/3 19/25/3 20/26/3 +f 21/27/1 15/28/1 19/29/1 +f 15/28/1 17/30/1 22/31/1 +f 23/32/2 20/33/2 14/34/2 +f 20/33/2 24/35/2 16/36/2 +f 22/31/1 4/4/1 2/2/1 +f 20/37/5 19/38/5 2/39/5 +f 20/33/2 8/8/2 10/10/2 +f 24/40/6 10/41/6 4/42/6 +f 25/43/1 26/44/1 27/45/1 +f 26/44/1 28/46/1 29/47/1 +f 30/48/2 31/49/2 32/50/2 +f 31/49/2 33/51/2 34/52/2 +f 35/53/3 27/54/3 31/55/3 +f 27/54/3 29/56/3 33/57/3 +f 36/58/4 32/59/4 26/60/4 +f 32/59/4 34/61/4 28/62/4 +f 37/63/4 38/64/4 39/65/4 +f 38/64/4 40/66/4 41/67/4 +f 42/68/3 43/69/3 44/70/3 +f 45/71/1 39/72/1 43/73/1 +f 39/72/1 41/74/1 46/75/1 +f 47/76/2 44/77/2 38/78/2 +f 44/77/2 48/79/2 40/80/2 +f 46/75/1 28/46/1 26/44/1 +f 44/81/5 43/82/5 26/83/5 +f 44/77/2 32/50/2 34/52/2 +f 48/84/6 34/85/6 28/86/6 +f 49/87/1 50/88/1 51/89/1 +f 50/88/1 52/90/1 53/91/1 +f 54/92/2 55/93/2 56/94/2 +f 55/93/2 57/95/2 58/96/2 +f 59/97/3 51/98/3 55/99/3 +f 51/98/3 53/100/3 57/101/3 +f 60/102/4 56/103/4 50/104/4 +f 56/103/4 58/105/4 52/106/4 +f 61/107/4 62/108/4 63/109/4 +f 62/108/4 64/110/4 65/111/4 +f 66/112/3 67/113/3 68/114/3 +f 69/115/1 63/116/1 67/117/1 +f 63/116/1 65/118/1 70/119/1 +f 71/120/2 68/121/2 62/122/2 +f 68/121/2 72/123/2 64/124/2 +f 70/119/1 52/90/1 50/88/1 +f 68/125/5 67/126/5 50/127/5 +f 68/121/2 56/94/2 58/96/2 +f 72/128/6 58/129/6 52/130/6 +f 72/128/6 70/131/6 65/132/6 +f 58/129/6 57/133/6 53/134/6 +f 73/135/2 74/136/2 75/137/2 +f 76/138/5 77/139/5 78/140/5 +f 79/141/2 80/142/2 81/143/2 +f 82/144/5 83/145/5 84/146/5 +f 11/11/1 1/1/1 3/3/1 +f 3/3/1 2/2/1 5/5/1 +f 12/147/2 6/6/2 8/8/2 +f 8/8/2 7/7/2 10/10/2 +f 6/148/3 11/11/3 7/12/3 +f 7/12/3 3/3/3 9/13/3 +f 1/149/4 12/14/4 2/16/4 +f 2/16/4 8/15/4 4/18/4 +f 21/150/4 13/19/4 15/21/4 +f 15/21/4 14/20/4 17/23/4 +f 23/151/3 18/24/3 20/26/3 +f 18/152/1 21/27/1 19/29/1 +f 19/29/1 15/28/1 22/31/1 +f 13/153/2 23/32/2 14/34/2 +f 14/34/2 20/33/2 16/36/2 +f 19/29/1 22/31/1 2/2/1 +f 8/154/5 20/37/5 2/39/5 +f 24/35/2 20/33/2 10/10/2 +f 22/155/6 24/40/6 4/42/6 +f 35/156/1 25/43/1 27/45/1 +f 27/45/1 26/44/1 29/47/1 +f 36/157/2 30/48/2 32/50/2 +f 32/50/2 31/49/2 34/52/2 +f 30/158/3 35/53/3 31/55/3 +f 31/55/3 27/54/3 33/57/3 +f 25/159/4 36/58/4 26/60/4 +f 26/60/4 32/59/4 28/62/4 +f 45/160/4 37/63/4 39/65/4 +f 39/65/4 38/64/4 41/67/4 +f 47/161/3 42/68/3 44/70/3 +f 42/162/1 45/71/1 43/73/1 +f 43/73/1 39/72/1 46/75/1 +f 37/163/2 47/76/2 38/78/2 +f 38/78/2 44/77/2 40/80/2 +f 43/73/1 46/75/1 26/44/1 +f 32/164/5 44/81/5 26/83/5 +f 48/79/2 44/77/2 34/52/2 +f 46/165/6 48/84/6 28/86/6 +f 59/166/1 49/87/1 51/89/1 +f 51/89/1 50/88/1 53/91/1 +f 60/167/2 54/92/2 56/94/2 +f 56/94/2 55/93/2 58/96/2 +f 54/168/3 59/97/3 55/99/3 +f 55/99/3 51/98/3 57/101/3 +f 49/169/4 60/102/4 50/104/4 +f 50/104/4 56/103/4 52/106/4 +f 69/170/4 61/107/4 63/109/4 +f 63/109/4 62/108/4 65/111/4 +f 71/171/3 66/112/3 68/114/3 +f 66/172/1 69/115/1 67/117/1 +f 67/117/1 63/116/1 70/119/1 +f 61/173/2 71/120/2 62/122/2 +f 62/122/2 68/121/2 64/124/2 +f 67/117/1 70/119/1 50/88/1 +f 56/174/5 68/125/5 50/127/5 +f 72/123/2 68/121/2 58/96/2 +f 70/131/6 72/128/6 52/130/6 +f 64/175/6 72/128/6 65/132/6 +f 52/130/6 58/129/6 53/134/6 +f 85/176/2 73/135/2 75/137/2 +f 86/177/5 76/138/5 78/140/5 +f 87/178/2 79/141/2 81/143/2 +f 88/179/5 82/144/5 84/146/5 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Schirm.009 +usemtl Schirm.009 +f 89/180/2 90/181/2 91/182/2 +f 92/183/4 93/184/4 94/185/4 +f 95/186/3 96/187/3 86/188/3 +f 89/189/6 97/190/6 98/191/6 +f 99/192/6 100/193/6 74/194/6 +f 98/195/3 99/196/3 75/197/3 +f 101/198/6 102/199/6 100/193/6 +f 97/200/3 101/201/3 99/196/3 +f 103/202/3 91/203/3 101/201/3 +f 91/203/3 90/204/3 104/205/3 +f 105/206/3 78/207/3 77/208/3 +f 100/209/3 106/210/3 73/211/3 +f 100/209/3 102/212/3 107/213/3 +f 108/214/1 106/215/1 109/216/1 +f 85/217/5 73/218/5 106/219/5 +f 104/220/2 107/221/2 102/222/2 +f 86/223/2 78/224/2 105/225/2 +f 110/226/2 111/227/2 107/221/2 +f 112/228/1 109/216/1 113/229/1 +f 107/213/3 111/230/3 109/231/3 +f 108/232/3 112/233/3 114/234/3 +f 90/204/3 115/235/3 110/236/3 +f 116/237/1 113/229/1 77/238/1 +f 110/226/2 117/239/2 105/225/2 +f 111/230/7 105/206/7 113/240/7 +f 112/233/3 116/241/3 118/242/3 +f 115/235/3 95/186/3 117/243/3 +f 119/244/1 120/245/1 121/246/1 +f 120/247/4 93/184/4 92/183/4 +f 88/248/3 122/249/3 119/250/3 +f 123/251/6 121/252/6 92/253/6 +f 74/194/6 124/254/6 125/255/6 +f 75/197/3 125/256/3 123/257/3 +f 124/254/6 126/258/6 127/259/6 +f 125/256/3 127/260/3 128/261/3 +f 127/260/3 129/262/3 130/263/3 +f 131/264/3 132/265/3 129/262/3 +f 83/266/3 82/267/3 133/268/3 +f 73/211/3 134/269/3 124/270/3 +f 124/270/3 134/269/3 135/271/3 +f 136/272/2 134/273/2 137/274/2 +f 134/275/5 73/218/5 85/217/5 +f 126/276/1 135/277/1 131/278/1 +f 133/279/1 82/280/1 88/281/1 +f 135/277/1 138/282/1 139/283/1 +f 140/284/2 136/272/2 141/285/2 +f 136/286/3 138/287/3 135/271/3 +f 114/234/3 141/288/3 137/289/3 +f 139/290/3 142/291/3 132/265/3 +f 83/292/2 140/284/2 143/293/2 +f 139/283/1 138/282/1 133/279/1 +f 140/294/7 133/268/7 138/287/7 +f 118/242/3 143/295/3 141/288/3 +f 144/296/3 119/250/3 142/291/3 +f 145/297/2 94/298/2 146/299/2 +f 94/185/4 93/184/4 147/300/4 +f 86/188/3 96/187/3 145/301/3 +f 148/302/5 146/303/5 147/304/5 +f 80/305/5 149/306/5 150/307/5 +f 79/308/3 150/309/3 148/310/3 +f 149/306/5 151/311/5 152/312/5 +f 150/309/3 152/313/3 153/314/3 +f 152/313/3 154/315/3 155/316/3 +f 156/317/3 157/318/3 154/315/3 +f 77/208/3 78/207/3 158/319/3 +f 81/320/3 159/321/3 149/322/3 +f 149/322/3 159/321/3 160/323/3 +f 161/324/1 159/325/1 162/326/1 +f 159/327/6 81/328/6 87/329/6 +f 151/330/2 160/331/2 156/332/2 +f 158/333/2 78/224/2 86/223/2 +f 160/331/2 163/334/2 164/335/2 +f 165/336/1 161/324/1 166/337/1 +f 161/338/3 163/339/3 160/323/3 +f 167/340/3 166/341/3 162/342/3 +f 164/343/3 168/344/3 157/318/3 +f 77/238/1 165/336/1 169/345/1 +f 163/334/2 158/333/2 170/346/2 +f 165/347/3 158/319/3 163/339/3 +f 171/348/3 169/349/3 166/341/3 +f 170/350/3 145/301/3 168/344/3 +f 172/351/1 173/352/1 174/353/1 +f 147/300/4 93/184/4 120/247/4 +f 175/354/3 122/249/3 88/248/3 +f 172/355/5 176/356/5 177/357/5 +f 178/358/5 179/359/5 80/305/5 +f 177/360/3 178/361/3 79/308/3 +f 180/362/5 181/363/5 179/359/5 +f 176/364/3 180/365/3 178/361/3 +f 182/366/3 174/367/3 180/365/3 +f 174/367/3 173/368/3 183/369/3 +f 184/370/3 82/267/3 83/266/3 +f 179/371/3 185/372/3 81/320/3 +f 179/371/3 181/373/3 186/374/3 +f 187/375/2 185/376/2 188/377/2 +f 87/329/6 81/328/6 185/378/6 +f 183/379/1 186/380/1 181/381/1 +f 88/281/1 82/280/1 184/382/1 +f 189/383/1 190/384/1 186/380/1 +f 191/385/2 188/377/2 192/386/2 +f 186/374/3 190/387/3 188/388/3 +f 187/389/3 191/390/3 167/340/3 +f 173/368/3 193/391/3 189/392/3 +f 194/393/2 192/386/2 83/292/2 +f 195/394/1 184/382/1 190/384/1 +f 190/387/3 184/370/3 192/395/3 +f 191/390/3 194/396/3 171/348/3 +f 193/391/3 175/354/3 195/397/3 +f 91/182/2 103/398/2 89/180/2 +f 89/180/2 95/399/2 115/400/2 +f 96/401/2 95/399/2 94/298/2 +f 115/400/2 90/181/2 89/180/2 +f 94/298/2 95/399/2 89/180/2 +f 89/402/4 92/183/4 94/185/4 +f 117/243/3 95/186/3 86/188/3 +f 98/191/6 196/403/6 92/253/6 +f 92/253/6 89/189/6 98/191/6 +f 103/404/6 97/190/6 89/189/6 +f 75/405/6 99/192/6 74/194/6 +f 196/406/3 98/195/3 75/197/3 +f 99/192/6 101/198/6 100/193/6 +f 98/195/3 97/200/3 99/196/3 +f 97/200/3 103/202/3 101/201/3 +f 101/201/3 91/203/3 104/205/3 +f 113/240/3 105/206/3 77/208/3 +f 74/407/3 100/209/3 73/211/3 +f 106/210/3 100/209/3 107/213/3 +f 112/228/1 108/214/1 109/216/1 +f 108/408/5 85/217/5 106/219/5 +f 101/409/2 104/220/2 102/222/2 +f 117/239/2 86/223/2 105/225/2 +f 104/220/2 110/226/2 107/221/2 +f 116/237/1 112/228/1 113/229/1 +f 106/210/3 107/213/3 109/231/3 +f 85/410/3 108/232/3 114/234/3 +f 104/205/3 90/204/3 110/236/3 +f 76/411/1 116/237/1 77/238/1 +f 111/227/2 110/226/2 105/225/2 +f 109/231/7 111/230/7 113/240/7 +f 114/234/3 112/233/3 118/242/3 +f 110/236/3 115/235/3 117/243/3 +f 121/246/1 130/412/1 129/413/1 +f 129/413/1 132/414/1 121/246/1 +f 142/415/1 119/244/1 121/246/1 +f 122/416/1 120/245/1 119/244/1 +f 121/246/1 132/414/1 142/415/1 +f 121/417/4 120/247/4 92/183/4 +f 144/296/3 88/248/3 119/250/3 +f 92/253/6 196/403/6 123/251/6 +f 123/251/6 128/418/6 121/252/6 +f 130/419/6 121/252/6 128/418/6 +f 75/405/6 74/194/6 125/255/6 +f 196/406/3 75/197/3 123/257/3 +f 125/255/6 124/254/6 127/259/6 +f 123/257/3 125/256/3 128/261/3 +f 128/261/3 127/260/3 130/263/3 +f 127/260/3 131/264/3 129/262/3 +f 140/294/3 83/266/3 133/268/3 +f 74/407/3 73/211/3 124/270/3 +f 126/420/3 124/270/3 135/271/3 +f 141/285/2 136/272/2 137/274/2 +f 137/421/5 134/275/5 85/217/5 +f 127/422/1 126/276/1 131/278/1 +f 144/423/1 133/279/1 88/281/1 +f 131/278/1 135/277/1 139/283/1 +f 143/293/2 140/284/2 141/285/2 +f 134/269/3 136/286/3 135/271/3 +f 85/410/3 114/234/3 137/289/3 +f 131/264/3 139/290/3 132/265/3 +f 84/424/2 83/292/2 143/293/2 +f 144/423/1 139/283/1 133/279/1 +f 136/286/7 140/294/7 138/287/7 +f 114/234/3 118/242/3 141/288/3 +f 139/290/3 144/296/3 142/291/3 +f 146/299/2 155/425/2 154/426/2 +f 154/426/2 157/427/2 146/299/2 +f 168/428/2 145/297/2 146/299/2 +f 96/401/2 94/298/2 145/297/2 +f 146/299/2 157/427/2 168/428/2 +f 146/429/4 94/185/4 147/300/4 +f 170/350/3 86/188/3 145/301/3 +f 147/304/5 197/430/5 148/302/5 +f 148/302/5 153/431/5 146/303/5 +f 155/432/5 146/303/5 153/431/5 +f 79/433/5 80/305/5 150/307/5 +f 197/434/3 79/308/3 148/310/3 +f 150/307/5 149/306/5 152/312/5 +f 148/310/3 150/309/3 153/314/3 +f 153/314/3 152/313/3 155/316/3 +f 152/313/3 156/317/3 154/315/3 +f 165/347/3 77/208/3 158/319/3 +f 80/435/3 81/320/3 149/322/3 +f 151/436/3 149/322/3 160/323/3 +f 166/337/1 161/324/1 162/326/1 +f 162/437/6 159/327/6 87/329/6 +f 152/438/2 151/330/2 156/332/2 +f 170/346/2 158/333/2 86/223/2 +f 156/332/2 160/331/2 164/335/2 +f 169/345/1 165/336/1 166/337/1 +f 159/321/3 161/338/3 160/323/3 +f 87/439/3 167/340/3 162/342/3 +f 156/317/3 164/343/3 157/318/3 +f 76/411/1 77/238/1 169/345/1 +f 164/335/2 163/334/2 170/346/2 +f 161/338/3 165/347/3 163/339/3 +f 167/340/3 171/348/3 166/341/3 +f 164/343/3 170/350/3 168/344/3 +f 174/353/1 182/440/1 172/351/1 +f 172/351/1 175/441/1 193/442/1 +f 122/416/1 175/441/1 120/245/1 +f 193/442/1 173/352/1 172/351/1 +f 120/245/1 175/441/1 172/351/1 +f 172/443/4 147/300/4 120/247/4 +f 195/397/3 175/354/3 88/248/3 +f 177/357/5 197/430/5 147/304/5 +f 147/304/5 172/355/5 177/357/5 +f 182/444/5 176/356/5 172/355/5 +f 79/433/5 178/358/5 80/305/5 +f 197/434/3 177/360/3 79/308/3 +f 178/358/5 180/362/5 179/359/5 +f 177/360/3 176/364/3 178/361/3 +f 176/364/3 182/366/3 180/365/3 +f 180/365/3 174/367/3 183/369/3 +f 192/395/3 184/370/3 83/266/3 +f 80/435/3 179/371/3 81/320/3 +f 185/372/3 179/371/3 186/374/3 +f 191/385/2 187/375/2 188/377/2 +f 187/445/6 87/329/6 185/378/6 +f 180/446/1 183/379/1 181/381/1 +f 195/394/1 88/281/1 184/382/1 +f 183/379/1 189/383/1 186/380/1 +f 194/393/2 191/385/2 192/386/2 +f 185/372/3 186/374/3 188/388/3 +f 87/439/3 187/389/3 167/340/3 +f 183/369/3 173/368/3 189/392/3 +f 84/424/2 194/393/2 83/292/2 +f 189/383/1 195/394/1 190/384/1 +f 188/388/3 190/387/3 192/395/3 +f 167/340/3 191/390/3 171/348/3 +f 189/392/3 193/391/3 195/397/3 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Anzeige.009 +usemtl Anzeige.009 +f 116/447/3 76/448/3 198/449/3 +f 198/449/3 84/450/3 143/451/3 +f 198/449/3 76/448/3 169/452/3 +f 194/453/3 84/450/3 198/449/3 +f 118/454/3 116/447/3 198/449/3 +f 118/454/3 198/449/3 143/451/3 +f 171/455/3 198/449/3 169/452/3 +f 171/455/3 194/453/3 198/449/3 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr45.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr45.obj new file mode 100644 index 0000000..046a963 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr45.obj @@ -0,0 +1,1045 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_bottom_smr45.mtl +o HsVsAnzUnten_Cube.008 +v 0.290642 -0.495697 -0.331062 +v 0.290642 -0.291434 -0.331062 +v 0.331062 -0.291434 -0.371482 +v 0.290642 -0.164538 -0.331062 +v 0.331062 -0.164538 -0.371482 +v 0.371482 -0.495697 -0.331062 +v 0.371482 -0.291434 -0.331062 +v 0.331062 -0.291434 -0.290642 +v 0.371482 -0.164538 -0.331062 +v 0.331062 -0.164538 -0.290642 +v 0.331062 -0.495697 -0.371482 +v 0.331062 -0.495697 -0.290642 +v 0.210006 -0.495697 -0.169586 +v 0.210006 -0.291434 -0.169586 +v 0.169586 -0.291434 -0.210006 +v 0.210006 -0.164538 -0.169586 +v 0.169586 -0.164538 -0.210006 +v 0.210006 -0.495697 -0.250426 +v 0.210006 -0.291434 -0.250426 +v 0.250426 -0.291434 -0.210006 +v 0.169586 -0.495697 -0.210006 +v 0.210006 -0.164538 -0.250426 +v 0.250426 -0.495697 -0.210006 +v 0.250426 -0.164538 -0.210006 +v 0.290642 -0.164538 -0.331062 +v 0.290642 0.039726 -0.331062 +v 0.331062 0.039726 -0.371482 +v 0.290642 0.166622 -0.331062 +v 0.331062 0.166622 -0.371482 +v 0.371482 -0.164538 -0.331062 +v 0.371482 0.039726 -0.331062 +v 0.331062 0.039726 -0.290642 +v 0.371482 0.166622 -0.331062 +v 0.331062 0.166622 -0.290642 +v 0.331062 -0.164538 -0.371482 +v 0.331062 -0.164538 -0.290642 +v 0.210006 -0.164538 -0.169586 +v 0.210006 0.039726 -0.169586 +v 0.169586 0.039726 -0.210006 +v 0.210006 0.166622 -0.169586 +v 0.169586 0.166622 -0.210006 +v 0.210006 -0.164538 -0.250426 +v 0.210006 0.039726 -0.250426 +v 0.250426 0.039726 -0.210006 +v 0.169586 -0.164538 -0.210006 +v 0.210006 0.166622 -0.250426 +v 0.250426 -0.164538 -0.210006 +v 0.250426 0.166622 -0.210006 +v 0.290642 0.166622 -0.331062 +v 0.290642 0.370885 -0.331062 +v 0.331062 0.370885 -0.371482 +v 0.290642 0.497782 -0.331062 +v 0.331062 0.497782 -0.371482 +v 0.371482 0.166622 -0.331062 +v 0.371482 0.370885 -0.331062 +v 0.331062 0.370885 -0.290642 +v 0.371482 0.497782 -0.331062 +v 0.331062 0.497782 -0.290642 +v 0.331062 0.166622 -0.371482 +v 0.331062 0.166622 -0.290642 +v 0.210006 0.166622 -0.169586 +v 0.210006 0.370885 -0.169586 +v 0.169586 0.370885 -0.210006 +v 0.210006 0.497782 -0.169586 +v 0.169586 0.497782 -0.210006 +v 0.210006 0.166622 -0.250426 +v 0.210006 0.370885 -0.250426 +v 0.250426 0.370885 -0.210006 +v 0.169586 0.166622 -0.210006 +v 0.210006 0.497782 -0.250426 +v 0.250426 0.166622 -0.210006 +v 0.250426 0.497782 -0.210006 +v 0.422578 0.459446 -0.422578 +v 0.422578 0.465184 -0.422578 +v 0.382655 0.465184 -0.382655 +v 0.458595 0.319382 -0.306715 +v 0.476480 0.319382 -0.324601 +v 0.481750 0.319382 -0.319331 +v 0.382655 0.173581 -0.382655 +v 0.400541 0.173581 -0.400541 +v 0.400541 0.179319 -0.400541 +v 0.319331 0.319382 -0.481750 +v 0.324601 0.319382 -0.476480 +v 0.306715 0.319382 -0.458595 +v 0.382655 0.459446 -0.382655 +v 0.463865 0.319382 -0.301445 +v 0.382655 0.179319 -0.382655 +v 0.301445 0.319382 -0.463865 +v 0.411976 0.483868 -0.216460 +v 0.480413 0.459446 -0.284897 +v 0.480413 0.465184 -0.284897 +v 0.314218 0.483868 -0.314218 +v 0.314218 0.319382 -0.314218 +v 0.411976 0.319382 -0.216460 +v 0.480413 0.431511 -0.284897 +v 0.480413 0.319382 -0.284897 +v 0.463865 0.483868 -0.301445 +v 0.458595 0.483868 -0.306715 +v 0.458595 0.465184 -0.306715 +v 0.498517 0.465184 -0.346638 +v 0.463865 0.465184 -0.301445 +v 0.503787 0.465184 -0.341368 +v 0.480413 0.483868 -0.284897 +v 0.463865 0.459446 -0.301445 +v 0.481750 0.431511 -0.319331 +v 0.498517 0.459446 -0.346638 +v 0.503787 0.459446 -0.341368 +v 0.458595 0.459446 -0.306715 +v 0.498517 0.449042 -0.346638 +v 0.463865 0.449042 -0.301445 +v 0.503787 0.449042 -0.341368 +v 0.458595 0.449042 -0.306715 +v 0.476480 0.431511 -0.324601 +v 0.382655 0.449042 -0.382655 +v 0.480413 0.449042 -0.284897 +v 0.458595 0.431511 -0.306715 +v 0.463865 0.431511 -0.301445 +v 0.382655 0.431511 -0.382655 +v 0.284897 0.431511 -0.480413 +v 0.216460 0.319382 -0.411976 +v 0.216460 0.483868 -0.411976 +v 0.284897 0.319382 -0.480413 +v 0.306715 0.483868 -0.458595 +v 0.346638 0.465184 -0.498517 +v 0.306715 0.465184 -0.458595 +v 0.341368 0.465184 -0.503787 +v 0.301445 0.465184 -0.463865 +v 0.301445 0.483868 -0.463865 +v 0.284897 0.465184 -0.480413 +v 0.284897 0.483868 -0.480413 +v 0.301445 0.459446 -0.463865 +v 0.284897 0.459446 -0.480413 +v 0.319331 0.431511 -0.481750 +v 0.346638 0.459446 -0.498517 +v 0.341368 0.459446 -0.503787 +v 0.346638 0.449042 -0.498517 +v 0.306715 0.459446 -0.458595 +v 0.341368 0.449042 -0.503787 +v 0.301445 0.449042 -0.463865 +v 0.324601 0.431511 -0.476480 +v 0.306715 0.449042 -0.458595 +v 0.284897 0.449042 -0.480413 +v 0.306715 0.431511 -0.458595 +v 0.301445 0.431511 -0.463865 +v 0.480413 0.207254 -0.284897 +v 0.411976 0.154897 -0.216460 +v 0.314218 0.154897 -0.314218 +v 0.458595 0.154897 -0.306715 +v 0.476480 0.173581 -0.324601 +v 0.458595 0.173581 -0.306715 +v 0.481750 0.173581 -0.319331 +v 0.463865 0.173581 -0.301445 +v 0.463865 0.154897 -0.301445 +v 0.480413 0.173581 -0.284897 +v 0.480413 0.154897 -0.284897 +v 0.463865 0.179319 -0.301445 +v 0.480413 0.179319 -0.284897 +v 0.481750 0.207254 -0.319331 +v 0.476480 0.179319 -0.324601 +v 0.481750 0.179319 -0.319331 +v 0.476480 0.189722 -0.324601 +v 0.458595 0.179319 -0.306715 +v 0.481750 0.189722 -0.319331 +v 0.463865 0.189722 -0.301445 +v 0.476480 0.207254 -0.324601 +v 0.458595 0.189722 -0.306715 +v 0.382655 0.189722 -0.382655 +v 0.480413 0.189722 -0.284897 +v 0.458595 0.207254 -0.306715 +v 0.463865 0.207254 -0.301445 +v 0.382655 0.207254 -0.382655 +v 0.216460 0.154897 -0.411976 +v 0.284897 0.179319 -0.480413 +v 0.284897 0.173581 -0.480413 +v 0.284897 0.207254 -0.480413 +v 0.301445 0.154897 -0.463865 +v 0.306715 0.154897 -0.458595 +v 0.306715 0.173581 -0.458595 +v 0.324601 0.173581 -0.476480 +v 0.301445 0.173581 -0.463865 +v 0.319331 0.173581 -0.481750 +v 0.284897 0.154897 -0.480413 +v 0.301445 0.179319 -0.463865 +v 0.319331 0.207254 -0.481750 +v 0.324601 0.179319 -0.476480 +v 0.319331 0.179319 -0.481750 +v 0.306715 0.179319 -0.458595 +v 0.324601 0.189722 -0.476480 +v 0.301445 0.189722 -0.463865 +v 0.319331 0.189722 -0.481750 +v 0.306715 0.189722 -0.458595 +v 0.324601 0.207254 -0.476480 +v 0.284897 0.189722 -0.480413 +v 0.306715 0.207254 -0.458595 +v 0.301445 0.207254 -0.463865 +v 0.382655 0.483868 -0.382655 +v 0.382655 0.154897 -0.382655 +v 0.382655 0.319382 -0.382655 +vt 0.646743 0.371805 +vt 0.646743 0.142471 +vt 0.705619 0.142471 +vt 0.646743 0.000000 +vt 0.705619 0.000000 +vt 0.470413 0.743610 +vt 0.470413 0.514276 +vt 0.529289 0.514276 +vt 0.470413 0.371805 +vt 0.529289 0.371805 +vt 0.705619 0.371805 +vt 0.764495 0.142471 +vt 0.764495 0.000000 +vt 0.941124 0.371805 +vt 0.941124 0.142471 +vt 1.000000 0.142471 +vt 0.941124 0.000000 +vt 1.000000 0.000000 +vt 0.882248 0.743610 +vt 0.882248 0.514276 +vt 0.941124 0.514276 +vt 0.882248 0.371805 +vt 0.941124 0.371805 +vt 0.117752 0.972944 +vt 0.117752 0.743610 +vt 0.176628 0.743610 +vt 0.470413 0.371805 +vt 0.470413 0.142471 +vt 0.529289 0.142471 +vt 0.470413 0.000000 +vt 0.529289 0.000000 +vt 0.646743 0.743610 +vt 0.646743 0.514276 +vt 0.705619 0.514276 +vt 0.646743 0.371805 +vt 0.705619 0.371805 +vt 0.470413 0.743610 +vt 0.529289 0.743610 +vt 0.529289 0.871642 +vt 0.529289 0.871642 +vt 0.529289 0.743610 +vt 0.588165 0.743610 +vt 0.411537 0.743610 +vt 0.411537 0.514276 +vt 0.470413 0.514276 +vt 0.411537 0.371805 +vt 0.470413 0.371805 +vt 0.235206 0.371805 +vt 0.235206 0.142471 +vt 0.294083 0.142471 +vt 0.235206 0.000000 +vt 0.294083 0.000000 +vt 0.823372 0.371805 +vt 0.823372 0.142471 +vt 0.882248 0.142471 +vt 0.823372 0.000000 +vt 0.882248 0.000000 +vt 0.764495 0.743610 +vt 0.764495 0.514276 +vt 0.823372 0.514276 +vt 0.764495 0.371805 +vt 0.823372 0.371805 +vt 0.764495 0.371805 +vt 0.764495 0.142471 +vt 0.823372 0.142471 +vt 0.764495 0.000000 +vt 0.823372 0.000000 +vt 0.176628 0.972944 +vt 0.176628 0.743610 +vt 0.235504 0.743610 +vt 0.235206 0.743610 +vt 0.235206 0.514276 +vt 0.294083 0.514276 +vt 0.235206 0.371805 +vt 0.294083 0.371805 +vt 0.411537 0.371805 +vt 0.411537 0.142471 +vt 0.470413 0.142471 +vt 0.411537 0.000000 +vt 0.470413 0.000000 +vt 0.294381 0.743610 +vt 0.353257 0.743610 +vt 0.353257 0.871643 +vt 0.411537 0.871642 +vt 0.411537 0.743610 +vt 0.470413 0.743610 +vt 0.058876 0.371805 +vt 0.058876 0.601139 +vt 0.000000 0.601139 +vt 0.058876 0.743610 +vt 0.000000 0.743610 +vt 0.000000 0.371805 +vt 0.000000 0.142471 +vt 0.058876 0.142471 +vt 0.000000 0.000000 +vt 0.058876 0.000000 +vt 0.705619 0.743610 +vt 0.705619 0.514276 +vt 0.764495 0.514276 +vt 0.705619 0.371805 +vt 0.764495 0.371805 +vt 0.882248 0.371805 +vt 0.882248 0.142471 +vt 0.941124 0.142471 +vt 0.882248 0.000000 +vt 0.941124 0.000000 +vt 0.823372 0.743610 +vt 0.823372 0.514276 +vt 0.882248 0.514276 +vt 0.823372 0.371805 +vt 0.882248 0.371805 +vt 0.058876 0.972944 +vt 0.058876 0.743610 +vt 0.117752 0.743610 +vt 0.235206 0.371805 +vt 0.235206 0.601139 +vt 0.176330 0.601139 +vt 0.235206 0.743610 +vt 0.176330 0.743610 +vt 0.176330 0.371805 +vt 0.176330 0.142471 +vt 0.235206 0.142471 +vt 0.176330 0.000000 +vt 0.235206 0.000000 +vt 0.235504 0.743610 +vt 0.294381 0.743610 +vt 0.294381 0.871643 +vt 0.000000 0.935821 +vt 0.000000 0.807789 +vt 0.058876 0.807789 +vt 0.058876 0.935821 +vt 0.058876 1.000000 +vt 0.000000 0.743610 +vt 0.058876 0.743610 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.529289 0.743610 +vt 0.764495 0.371805 +vt 1.000000 0.371805 +vt 0.941124 0.743610 +vt 0.176628 0.972944 +vt 0.529289 0.371805 +vt 0.705619 0.743610 +vt 0.470413 0.871642 +vt 0.588165 0.871642 +vt 0.470413 0.743610 +vt 0.294083 0.371805 +vt 0.882248 0.371805 +vt 0.823372 0.743610 +vt 0.823372 0.371805 +vt 0.235505 0.972944 +vt 0.294083 0.743610 +vt 0.470413 0.371805 +vt 0.294381 0.871643 +vt 0.470413 0.871642 +vt 0.000000 0.371805 +vt 0.058876 0.371805 +vt 0.764495 0.743610 +vt 0.941124 0.371805 +vt 0.882248 0.743610 +vt 0.117752 0.972944 +vt 0.176330 0.371805 +vt 0.235206 0.371805 +vt 0.235505 0.871643 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.665377 0.373761 +vt 0.772053 0.346842 +vt 0.772053 0.353167 +vt 0.490653 0.373761 +vt 0.490653 0.192467 +vt 0.643030 0.192467 +vt 0.011173 0.316053 +vt 0.011173 0.192467 +vt 0.036968 0.192467 +vt 0.551766 0.888289 +vt 0.585764 0.781041 +vt 0.585769 0.781634 +vt 0.019388 0.948870 +vt 0.019388 0.886643 +vt 0.137756 0.886643 +vt 0.045182 0.373761 +vt 0.045182 0.353168 +vt 0.163551 0.353167 +vt 0.011173 0.948870 +vt 0.011173 0.886643 +vt 0.036968 0.373761 +vt 0.036968 0.353168 +vt 0.011173 0.373761 +vt 0.011173 0.353168 +vt 0.011173 0.346842 +vt 0.036968 0.346842 +vt 0.011173 0.678014 +vt 0.011583 0.555988 +vt 0.019722 0.556019 +vt 0.020806 0.733322 +vt 0.020483 0.727150 +vt 0.139957 0.720157 +vt 0.012751 0.733737 +vt 0.012436 0.727539 +vt 0.856627 0.319924 +vt 0.794399 0.319924 +vt 0.794399 0.308458 +vt 0.405055 0.886643 +vt 0.405055 0.948870 +vt 0.286686 0.948870 +vt 0.765364 0.711183 +vt 0.827591 0.711183 +vt 0.827592 0.717508 +vt 0.765364 0.556808 +vt 0.793243 0.556808 +vt 0.793243 0.680394 +vt 0.765364 0.699717 +vt 0.827591 0.699717 +vt 0.856627 0.308458 +vt 0.828748 0.289135 +vt 0.011935 0.716293 +vt 0.019940 0.716025 +vt 0.292576 0.704858 +vt 0.292580 0.693392 +vt 0.410948 0.693433 +vt 0.011173 0.335376 +vt 0.036968 0.335376 +vt 0.856627 0.289135 +vt 0.828749 0.165549 +vt 0.765364 0.680394 +vt 0.019200 0.677955 +vt 0.292586 0.674069 +vt 0.410955 0.674110 +vt 0.036968 0.316053 +vt 0.551768 0.700990 +vt 0.658443 0.577402 +vt 0.658442 0.758694 +vt 0.338275 0.192467 +vt 0.290134 0.192467 +vt 0.315929 0.192467 +vt 0.315929 0.316053 +vt 0.822460 0.781634 +vt 0.856462 0.888289 +vt 0.704114 0.888289 +vt 0.256125 0.886643 +vt 0.256125 0.948870 +vt 0.281920 0.353167 +vt 0.281920 0.373761 +vt 0.264339 0.886643 +vt 0.264339 0.948870 +vt 0.290134 0.353167 +vt 0.290134 0.373761 +vt 0.315929 0.353167 +vt 0.315929 0.373761 +vt 0.290134 0.346842 +vt 0.315929 0.346842 +vt 0.257912 0.557015 +vt 0.266077 0.556832 +vt 0.270229 0.678520 +vt 0.260857 0.727988 +vt 0.260493 0.734236 +vt 0.269006 0.728421 +vt 0.912166 0.693392 +vt 0.912166 0.704858 +vt 0.849938 0.704858 +vt 0.523424 0.948870 +vt 0.680790 0.717508 +vt 0.680790 0.711183 +vt 0.743017 0.711183 +vt 0.715139 0.680394 +vt 0.715139 0.556808 +vt 0.743017 0.556808 +vt 0.680790 0.699717 +vt 0.743017 0.699717 +vt 0.877817 0.674069 +vt 0.849938 0.693392 +vt 0.261459 0.716736 +vt 0.269558 0.717023 +vt 0.529317 0.693474 +vt 0.529313 0.704940 +vt 0.290134 0.335376 +vt 0.315929 0.335376 +vt 0.877817 0.550483 +vt 0.849938 0.674069 +vt 0.262231 0.678588 +vt 0.529324 0.674151 +vt 0.290134 0.316053 +vt 0.772053 0.068880 +vt 0.665377 0.192466 +vt 0.665378 0.011173 +vt 0.490653 0.011173 +vt 0.011173 0.068881 +vt 0.045176 0.863703 +vt 0.011173 0.757048 +vt 0.163521 0.757048 +vt 0.678349 0.938558 +vt 0.559981 0.938517 +vt 0.559990 0.910638 +vt 0.163551 0.031767 +vt 0.045182 0.031767 +vt 0.045182 0.011173 +vt 0.551766 0.938514 +vt 0.551776 0.910636 +vt 0.036968 0.031767 +vt 0.036968 0.011173 +vt 0.011173 0.031767 +vt 0.011173 0.011173 +vt 0.036968 0.038092 +vt 0.011173 0.038092 +vt 0.012099 0.433087 +vt 0.138415 0.402789 +vt 0.020379 0.402437 +vt 0.020398 0.396131 +vt 0.012192 0.402412 +vt 0.828749 0.022639 +vt 0.828749 0.011173 +vt 0.856627 0.011173 +vt 0.551766 0.960948 +vt 0.670135 0.960948 +vt 0.670135 0.988827 +vt 0.793243 0.396107 +vt 0.793243 0.402432 +vt 0.765364 0.402432 +vt 0.793243 0.433221 +vt 0.793243 0.413898 +vt 0.765364 0.413898 +vt 0.828749 0.041962 +vt 0.856627 0.022639 +vt 0.020343 0.413865 +vt 0.012159 0.413840 +vt 0.411047 0.407614 +vt 0.292678 0.407573 +vt 0.292682 0.396107 +vt 0.036968 0.049558 +vt 0.011173 0.049558 +vt 0.856627 0.041962 +vt 0.765364 0.433221 +vt 0.020276 0.433118 +vt 0.411040 0.426937 +vt 0.292671 0.426896 +vt 0.036968 0.068881 +vt 0.658442 0.396107 +vt 0.551767 0.423026 +vt 0.551767 0.416701 +vt 0.315929 0.068880 +vt 0.315869 0.757048 +vt 0.281872 0.864296 +vt 0.281867 0.863702 +vt 0.796728 0.910720 +vt 0.796718 0.938599 +vt 0.281920 0.011173 +vt 0.281920 0.031767 +vt 0.804942 0.910723 +vt 0.804932 0.938601 +vt 0.290134 0.011173 +vt 0.290134 0.031767 +vt 0.315929 0.011173 +vt 0.315929 0.031767 +vt 0.315929 0.038092 +vt 0.290134 0.038092 +vt 0.264798 0.433076 +vt 0.256461 0.396133 +vt 0.256482 0.402439 +vt 0.264648 0.396107 +vt 0.264668 0.402411 +vt 0.849939 0.396107 +vt 0.877817 0.396107 +vt 0.877817 0.407573 +vt 0.788504 0.960948 +vt 0.743017 0.402432 +vt 0.715139 0.402432 +vt 0.715139 0.396107 +vt 0.715139 0.433221 +vt 0.743017 0.413898 +vt 0.715139 0.413898 +vt 0.849939 0.407573 +vt 0.877817 0.426896 +vt 0.264708 0.413837 +vt 0.256523 0.413870 +vt 0.529420 0.396189 +vt 0.529416 0.407655 +vt 0.315929 0.049558 +vt 0.290134 0.049558 +vt 0.849939 0.426896 +vt 0.743017 0.433221 +vt 0.256621 0.433134 +vt 0.529409 0.426978 +vt 0.290134 0.068880 +vt 0.772053 0.373761 +vt 0.772053 0.316053 +vt 0.772053 0.335376 +vt 0.772053 0.192466 +vt 0.643030 0.373761 +vt 0.704114 0.781634 +vt 0.551766 0.781634 +vt 0.137756 0.948870 +vt 0.163551 0.373761 +vt 0.139936 0.726612 +vt 0.286686 0.886643 +vt 0.765364 0.717508 +vt 0.410944 0.704899 +vt 0.856627 0.165548 +vt 0.551768 0.758694 +vt 0.551768 0.738101 +vt 0.551768 0.731777 +vt 0.551768 0.720312 +vt 0.551767 0.577402 +vt 0.338275 0.373761 +vt 0.839461 0.781486 +vt 0.856462 0.781634 +vt 0.268654 0.734701 +vt 0.523424 0.886643 +vt 0.743017 0.717508 +vt 0.743017 0.680394 +vt 0.849938 0.550483 +vt 0.772053 0.011174 +vt 0.772053 0.031767 +vt 0.772053 0.038091 +vt 0.772053 0.049557 +vt 0.643030 0.011173 +vt 0.163521 0.863702 +vt 0.028174 0.863851 +vt 0.011173 0.863703 +vt 0.678359 0.910679 +vt 0.163551 0.011173 +vt 0.138415 0.396480 +vt 0.012211 0.396107 +vt 0.551766 0.988827 +vt 0.765364 0.396107 +vt 0.411051 0.396148 +vt 0.551766 0.396108 +vt 0.551767 0.453815 +vt 0.551767 0.434492 +vt 0.338275 0.011173 +vt 0.315869 0.863702 +vt 0.788504 0.988827 +vt 0.743017 0.396107 +vt 0.003906 1.015625 +vt 0.003906 0.496094 +vt 0.500000 0.496094 +vt 1.000000 0.500000 +vt 1.000000 1.015625 +vt 0.003906 -0.019531 +vt 1.000000 -0.019531 +vt 0.500000 1.015625 +vt 0.500000 -0.019531 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.3467 -0.8716 -0.3467 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Mast.009 +usemtl Mast.009 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 2/2/1 4/4/1 5/5/1 +f 6/6/2 7/7/2 8/8/2 +f 7/7/2 9/9/2 10/10/2 +f 11/11/3 3/3/3 7/12/3 +f 3/3/3 5/5/3 9/13/3 +f 12/14/4 8/15/4 2/16/4 +f 8/15/4 10/17/4 4/18/4 +f 13/19/4 14/20/4 15/21/4 +f 14/20/4 16/22/4 17/23/4 +f 18/24/3 19/25/3 20/26/3 +f 21/27/1 15/28/1 19/29/1 +f 15/28/1 17/30/1 22/31/1 +f 23/32/2 20/33/2 14/34/2 +f 20/33/2 24/35/2 16/36/2 +f 22/31/1 4/4/1 2/2/1 +f 20/37/5 19/38/5 2/39/5 +f 20/33/2 8/8/2 10/10/2 +f 24/40/6 10/41/6 4/42/6 +f 25/43/1 26/44/1 27/45/1 +f 26/44/1 28/46/1 29/47/1 +f 30/48/2 31/49/2 32/50/2 +f 31/49/2 33/51/2 34/52/2 +f 35/53/3 27/54/3 31/55/3 +f 27/54/3 29/56/3 33/57/3 +f 36/58/4 32/59/4 26/60/4 +f 32/59/4 34/61/4 28/62/4 +f 37/63/4 38/64/4 39/65/4 +f 38/64/4 40/66/4 41/67/4 +f 42/68/3 43/69/3 44/70/3 +f 45/71/1 39/72/1 43/73/1 +f 39/72/1 41/74/1 46/75/1 +f 47/76/2 44/77/2 38/78/2 +f 44/77/2 48/79/2 40/80/2 +f 46/75/1 28/46/1 26/44/1 +f 44/81/5 43/82/5 26/83/5 +f 44/77/2 32/50/2 34/52/2 +f 48/84/6 34/85/6 28/86/6 +f 49/87/1 50/88/1 51/89/1 +f 50/88/1 52/90/1 53/91/1 +f 54/92/2 55/93/2 56/94/2 +f 55/93/2 57/95/2 58/96/2 +f 59/97/3 51/98/3 55/99/3 +f 51/98/3 53/100/3 57/101/3 +f 60/102/4 56/103/4 50/104/4 +f 56/103/4 58/105/4 52/106/4 +f 61/107/4 62/108/4 63/109/4 +f 62/108/4 64/110/4 65/111/4 +f 66/112/3 67/113/3 68/114/3 +f 69/115/1 63/116/1 67/117/1 +f 63/116/1 65/118/1 70/119/1 +f 71/120/2 68/121/2 62/122/2 +f 68/121/2 72/123/2 64/124/2 +f 70/119/1 52/90/1 50/88/1 +f 68/125/5 67/126/5 50/127/5 +f 68/121/2 56/94/2 58/96/2 +f 72/128/6 58/129/6 52/130/6 +f 72/128/6 70/131/6 65/132/6 +f 58/129/6 57/133/6 53/134/6 +f 73/135/2 74/136/2 75/137/2 +f 76/138/5 77/139/5 78/140/5 +f 79/141/2 80/142/2 81/143/2 +f 82/144/5 83/145/5 84/146/5 +f 11/11/1 1/1/1 3/3/1 +f 3/3/1 2/2/1 5/5/1 +f 12/147/2 6/6/2 8/8/2 +f 8/8/2 7/7/2 10/10/2 +f 6/148/3 11/11/3 7/12/3 +f 7/12/3 3/3/3 9/13/3 +f 1/149/4 12/14/4 2/16/4 +f 2/16/4 8/15/4 4/18/4 +f 21/150/4 13/19/4 15/21/4 +f 15/21/4 14/20/4 17/23/4 +f 23/151/3 18/24/3 20/26/3 +f 18/152/1 21/27/1 19/29/1 +f 19/29/1 15/28/1 22/31/1 +f 13/153/2 23/32/2 14/34/2 +f 14/34/2 20/33/2 16/36/2 +f 19/29/1 22/31/1 2/2/1 +f 8/154/5 20/37/5 2/39/5 +f 24/35/2 20/33/2 10/10/2 +f 22/155/6 24/40/6 4/42/6 +f 35/156/1 25/43/1 27/45/1 +f 27/45/1 26/44/1 29/47/1 +f 36/157/2 30/48/2 32/50/2 +f 32/50/2 31/49/2 34/52/2 +f 30/158/3 35/53/3 31/55/3 +f 31/55/3 27/54/3 33/57/3 +f 25/159/4 36/58/4 26/60/4 +f 26/60/4 32/59/4 28/62/4 +f 45/160/4 37/63/4 39/65/4 +f 39/65/4 38/64/4 41/67/4 +f 47/161/3 42/68/3 44/70/3 +f 42/162/1 45/71/1 43/73/1 +f 43/73/1 39/72/1 46/75/1 +f 37/163/2 47/76/2 38/78/2 +f 38/78/2 44/77/2 40/80/2 +f 43/73/1 46/75/1 26/44/1 +f 32/164/5 44/81/5 26/83/5 +f 48/79/2 44/77/2 34/52/2 +f 46/165/6 48/84/6 28/86/6 +f 59/166/1 49/87/1 51/89/1 +f 51/89/1 50/88/1 53/91/1 +f 60/167/2 54/92/2 56/94/2 +f 56/94/2 55/93/2 58/96/2 +f 54/168/3 59/97/3 55/99/3 +f 55/99/3 51/98/3 57/101/3 +f 49/169/4 60/102/4 50/104/4 +f 50/104/4 56/103/4 52/106/4 +f 69/170/4 61/107/4 63/109/4 +f 63/109/4 62/108/4 65/111/4 +f 71/171/3 66/112/3 68/114/3 +f 66/172/1 69/115/1 67/117/1 +f 67/117/1 63/116/1 70/119/1 +f 61/173/2 71/120/2 62/122/2 +f 62/122/2 68/121/2 64/124/2 +f 67/117/1 70/119/1 50/88/1 +f 56/174/5 68/125/5 50/127/5 +f 72/123/2 68/121/2 58/96/2 +f 70/131/6 72/128/6 52/130/6 +f 64/175/6 72/128/6 65/132/6 +f 52/130/6 58/129/6 53/134/6 +f 85/176/2 73/135/2 75/137/2 +f 86/177/5 76/138/5 78/140/5 +f 87/178/2 79/141/2 81/143/2 +f 88/179/5 82/144/5 84/146/5 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Schirm.009 +usemtl Schirm.009 +f 89/180/2 90/181/2 91/182/2 +f 92/183/4 93/184/4 94/185/4 +f 95/186/3 96/187/3 86/188/3 +f 89/189/6 97/190/6 98/191/6 +f 99/192/6 100/193/6 74/194/6 +f 98/195/3 99/196/3 75/197/3 +f 101/198/6 102/199/6 100/193/6 +f 97/200/3 101/201/3 99/196/3 +f 103/202/3 91/203/3 101/201/3 +f 91/203/3 90/204/3 104/205/3 +f 105/206/3 78/207/3 77/208/3 +f 100/209/3 106/210/3 73/211/3 +f 100/209/3 102/212/3 107/213/3 +f 108/214/1 106/215/1 109/216/1 +f 85/217/5 73/218/5 106/219/5 +f 104/220/2 107/221/2 102/222/2 +f 86/223/2 78/224/2 105/225/2 +f 110/226/2 111/227/2 107/221/2 +f 112/228/1 109/216/1 113/229/1 +f 107/213/3 111/230/3 109/231/3 +f 108/232/3 112/233/3 114/234/3 +f 90/204/3 115/235/3 110/236/3 +f 116/237/1 113/229/1 77/238/1 +f 110/226/2 117/239/2 105/225/2 +f 111/230/7 105/206/7 113/240/7 +f 112/233/3 116/241/3 118/242/3 +f 115/235/3 95/186/3 117/243/3 +f 119/244/1 120/245/1 121/246/1 +f 120/247/4 93/184/4 92/183/4 +f 88/248/3 122/249/3 119/250/3 +f 123/251/6 121/252/6 92/253/6 +f 74/194/6 124/254/6 125/255/6 +f 75/197/3 125/256/3 123/257/3 +f 124/254/6 126/258/6 127/259/6 +f 125/256/3 127/260/3 128/261/3 +f 127/260/3 129/262/3 130/263/3 +f 131/264/3 132/265/3 129/262/3 +f 83/266/3 82/267/3 133/268/3 +f 73/211/3 134/269/3 124/270/3 +f 124/270/3 134/269/3 135/271/3 +f 136/272/2 134/273/2 137/274/2 +f 134/275/5 73/218/5 85/217/5 +f 126/276/1 135/277/1 131/278/1 +f 133/279/1 82/280/1 88/281/1 +f 135/277/1 138/282/1 139/283/1 +f 140/284/2 136/272/2 141/285/2 +f 136/286/3 138/287/3 135/271/3 +f 114/234/3 141/288/3 137/289/3 +f 139/290/3 142/291/3 132/265/3 +f 83/292/2 140/284/2 143/293/2 +f 139/283/1 138/282/1 133/279/1 +f 140/294/7 133/268/7 138/287/7 +f 118/242/3 143/295/3 141/288/3 +f 144/296/3 119/250/3 142/291/3 +f 145/297/2 94/298/2 146/299/2 +f 94/185/4 93/184/4 147/300/4 +f 86/188/3 96/187/3 145/301/3 +f 148/302/5 146/303/5 147/304/5 +f 80/305/5 149/306/5 150/307/5 +f 79/308/3 150/309/3 148/310/3 +f 149/306/5 151/311/5 152/312/5 +f 150/309/3 152/313/3 153/314/3 +f 152/313/3 154/315/3 155/316/3 +f 156/317/3 157/318/3 154/315/3 +f 77/208/3 78/207/3 158/319/3 +f 81/320/3 159/321/3 149/322/3 +f 149/322/3 159/321/3 160/323/3 +f 161/324/1 159/325/1 162/326/1 +f 159/327/6 81/328/6 87/329/6 +f 151/330/2 160/331/2 156/332/2 +f 158/333/2 78/224/2 86/223/2 +f 160/331/2 163/334/2 164/335/2 +f 165/336/1 161/324/1 166/337/1 +f 161/338/3 163/339/3 160/323/3 +f 167/340/3 166/341/3 162/342/3 +f 164/343/3 168/344/3 157/318/3 +f 77/238/1 165/336/1 169/345/1 +f 163/334/2 158/333/2 170/346/2 +f 165/347/3 158/319/3 163/339/3 +f 171/348/3 169/349/3 166/341/3 +f 170/350/3 145/301/3 168/344/3 +f 172/351/1 173/352/1 174/353/1 +f 147/300/4 93/184/4 120/247/4 +f 175/354/3 122/249/3 88/248/3 +f 172/355/5 176/356/5 177/357/5 +f 178/358/5 179/359/5 80/305/5 +f 177/360/3 178/361/3 79/308/3 +f 180/362/5 181/363/5 179/359/5 +f 176/364/3 180/365/3 178/361/3 +f 182/366/3 174/367/3 180/365/3 +f 174/367/3 173/368/3 183/369/3 +f 184/370/3 82/267/3 83/266/3 +f 179/371/3 185/372/3 81/320/3 +f 179/371/3 181/373/3 186/374/3 +f 187/375/2 185/376/2 188/377/2 +f 87/329/6 81/328/6 185/378/6 +f 183/379/1 186/380/1 181/381/1 +f 88/281/1 82/280/1 184/382/1 +f 189/383/1 190/384/1 186/380/1 +f 191/385/2 188/377/2 192/386/2 +f 186/374/3 190/387/3 188/388/3 +f 187/389/3 191/390/3 167/340/3 +f 173/368/3 193/391/3 189/392/3 +f 194/393/2 192/386/2 83/292/2 +f 195/394/1 184/382/1 190/384/1 +f 190/387/3 184/370/3 192/395/3 +f 191/390/3 194/396/3 171/348/3 +f 193/391/3 175/354/3 195/397/3 +f 91/182/2 103/398/2 89/180/2 +f 89/180/2 95/399/2 115/400/2 +f 96/401/2 95/399/2 94/298/2 +f 115/400/2 90/181/2 89/180/2 +f 94/298/2 95/399/2 89/180/2 +f 89/402/4 92/183/4 94/185/4 +f 117/243/3 95/186/3 86/188/3 +f 98/191/6 196/403/6 92/253/6 +f 92/253/6 89/189/6 98/191/6 +f 103/404/6 97/190/6 89/189/6 +f 75/405/6 99/192/6 74/194/6 +f 196/406/3 98/195/3 75/197/3 +f 99/192/6 101/198/6 100/193/6 +f 98/195/3 97/200/3 99/196/3 +f 97/200/3 103/202/3 101/201/3 +f 101/201/3 91/203/3 104/205/3 +f 113/240/3 105/206/3 77/208/3 +f 74/407/3 100/209/3 73/211/3 +f 106/210/3 100/209/3 107/213/3 +f 112/228/1 108/214/1 109/216/1 +f 108/408/5 85/217/5 106/219/5 +f 101/409/2 104/220/2 102/222/2 +f 117/239/2 86/223/2 105/225/2 +f 104/220/2 110/226/2 107/221/2 +f 116/237/1 112/228/1 113/229/1 +f 106/210/3 107/213/3 109/231/3 +f 85/410/3 108/232/3 114/234/3 +f 104/205/3 90/204/3 110/236/3 +f 76/411/1 116/237/1 77/238/1 +f 111/227/2 110/226/2 105/225/2 +f 109/231/7 111/230/7 113/240/7 +f 114/234/3 112/233/3 118/242/3 +f 110/236/3 115/235/3 117/243/3 +f 121/246/1 130/412/1 129/413/1 +f 129/413/1 132/414/1 121/246/1 +f 142/415/1 119/244/1 121/246/1 +f 122/416/1 120/245/1 119/244/1 +f 121/246/1 132/414/1 142/415/1 +f 121/417/4 120/247/4 92/183/4 +f 144/296/3 88/248/3 119/250/3 +f 92/253/6 196/403/6 123/251/6 +f 123/251/6 128/418/6 121/252/6 +f 130/419/6 121/252/6 128/418/6 +f 75/405/6 74/194/6 125/255/6 +f 196/406/3 75/197/3 123/257/3 +f 125/255/6 124/254/6 127/259/6 +f 123/257/3 125/256/3 128/261/3 +f 128/261/3 127/260/3 130/263/3 +f 127/260/3 131/264/3 129/262/3 +f 140/294/3 83/266/3 133/268/3 +f 74/407/3 73/211/3 124/270/3 +f 126/420/3 124/270/3 135/271/3 +f 141/285/2 136/272/2 137/274/2 +f 137/421/5 134/275/5 85/217/5 +f 127/422/1 126/276/1 131/278/1 +f 144/423/1 133/279/1 88/281/1 +f 131/278/1 135/277/1 139/283/1 +f 143/293/2 140/284/2 141/285/2 +f 134/269/3 136/286/3 135/271/3 +f 85/410/3 114/234/3 137/289/3 +f 131/264/3 139/290/3 132/265/3 +f 84/424/2 83/292/2 143/293/2 +f 144/423/1 139/283/1 133/279/1 +f 136/286/7 140/294/7 138/287/7 +f 114/234/3 118/242/3 141/288/3 +f 139/290/3 144/296/3 142/291/3 +f 146/299/2 155/425/2 154/426/2 +f 154/426/2 157/427/2 146/299/2 +f 168/428/2 145/297/2 146/299/2 +f 96/401/2 94/298/2 145/297/2 +f 146/299/2 157/427/2 168/428/2 +f 146/429/4 94/185/4 147/300/4 +f 170/350/3 86/188/3 145/301/3 +f 147/304/5 197/430/5 148/302/5 +f 148/302/5 153/431/5 146/303/5 +f 155/432/5 146/303/5 153/431/5 +f 79/433/5 80/305/5 150/307/5 +f 197/434/3 79/308/3 148/310/3 +f 150/307/5 149/306/5 152/312/5 +f 148/310/3 150/309/3 153/314/3 +f 153/314/3 152/313/3 155/316/3 +f 152/313/3 156/317/3 154/315/3 +f 165/347/3 77/208/3 158/319/3 +f 80/435/3 81/320/3 149/322/3 +f 151/436/3 149/322/3 160/323/3 +f 166/337/1 161/324/1 162/326/1 +f 162/437/6 159/327/6 87/329/6 +f 152/438/2 151/330/2 156/332/2 +f 170/346/2 158/333/2 86/223/2 +f 156/332/2 160/331/2 164/335/2 +f 169/345/1 165/336/1 166/337/1 +f 159/321/3 161/338/3 160/323/3 +f 87/439/3 167/340/3 162/342/3 +f 156/317/3 164/343/3 157/318/3 +f 76/411/1 77/238/1 169/345/1 +f 164/335/2 163/334/2 170/346/2 +f 161/338/3 165/347/3 163/339/3 +f 167/340/3 171/348/3 166/341/3 +f 164/343/3 170/350/3 168/344/3 +f 174/353/1 182/440/1 172/351/1 +f 172/351/1 175/441/1 193/442/1 +f 122/416/1 175/441/1 120/245/1 +f 193/442/1 173/352/1 172/351/1 +f 120/245/1 175/441/1 172/351/1 +f 172/443/4 147/300/4 120/247/4 +f 195/397/3 175/354/3 88/248/3 +f 177/357/5 197/430/5 147/304/5 +f 147/304/5 172/355/5 177/357/5 +f 182/444/5 176/356/5 172/355/5 +f 79/433/5 178/358/5 80/305/5 +f 197/434/3 177/360/3 79/308/3 +f 178/358/5 180/362/5 179/359/5 +f 177/360/3 176/364/3 178/361/3 +f 176/364/3 182/366/3 180/365/3 +f 180/365/3 174/367/3 183/369/3 +f 192/395/3 184/370/3 83/266/3 +f 80/435/3 179/371/3 81/320/3 +f 185/372/3 179/371/3 186/374/3 +f 191/385/2 187/375/2 188/377/2 +f 187/445/6 87/329/6 185/378/6 +f 180/446/1 183/379/1 181/381/1 +f 195/394/1 88/281/1 184/382/1 +f 183/379/1 189/383/1 186/380/1 +f 194/393/2 191/385/2 192/386/2 +f 185/372/3 186/374/3 188/388/3 +f 87/439/3 187/389/3 167/340/3 +f 183/369/3 173/368/3 189/392/3 +f 84/424/2 194/393/2 83/292/2 +f 189/383/1 195/394/1 190/384/1 +f 188/388/3 190/387/3 192/395/3 +f 167/340/3 191/390/3 171/348/3 +f 189/392/3 193/391/3 195/397/3 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Anzeige.009 +usemtl Anzeige.009 +f 116/447/3 76/448/3 198/449/3 +f 198/449/3 84/450/3 143/451/3 +f 198/449/3 76/448/3 169/452/3 +f 194/453/3 84/450/3 198/449/3 +f 118/454/3 116/447/3 198/449/3 +f 118/454/3 198/449/3 143/451/3 +f 171/455/3 198/449/3 169/452/3 +f 171/455/3 194/453/3 198/449/3 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr60.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr60.obj new file mode 100644 index 0000000..28043dd --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr60.obj @@ -0,0 +1,1045 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_bottom_smr60.mtl +o HsVsAnzUnten_Cube.008 +v 0.380670 -0.495697 -0.221732 +v 0.380670 -0.291434 -0.221732 +v 0.431827 -0.291434 -0.247238 +v 0.380670 -0.164538 -0.221732 +v 0.431827 -0.164538 -0.247238 +v 0.457333 -0.495697 -0.196081 +v 0.457333 -0.291434 -0.196081 +v 0.406176 -0.291434 -0.170575 +v 0.457333 -0.164538 -0.196081 +v 0.406176 -0.164538 -0.170575 +v 0.431827 -0.495697 -0.247238 +v 0.406176 -0.495697 -0.170575 +v 0.252964 -0.495697 -0.094187 +v 0.252964 -0.291434 -0.094187 +v 0.227458 -0.291434 -0.145343 +v 0.252964 -0.164538 -0.094187 +v 0.227458 -0.164538 -0.145343 +v 0.278615 -0.495697 -0.170849 +v 0.278615 -0.291434 -0.170849 +v 0.304121 -0.291434 -0.119693 +v 0.227458 -0.495697 -0.145343 +v 0.278615 -0.164538 -0.170849 +v 0.304121 -0.495697 -0.119693 +v 0.304121 -0.164538 -0.119693 +v 0.380670 -0.164538 -0.221732 +v 0.380670 0.039726 -0.221732 +v 0.431827 0.039726 -0.247238 +v 0.380670 0.166622 -0.221732 +v 0.431827 0.166622 -0.247238 +v 0.457333 -0.164538 -0.196081 +v 0.457333 0.039726 -0.196081 +v 0.406176 0.039726 -0.170575 +v 0.457333 0.166622 -0.196081 +v 0.406176 0.166622 -0.170575 +v 0.431827 -0.164538 -0.247238 +v 0.406176 -0.164538 -0.170575 +v 0.252964 -0.164538 -0.094187 +v 0.252964 0.039726 -0.094187 +v 0.227458 0.039726 -0.145343 +v 0.252964 0.166622 -0.094187 +v 0.227458 0.166622 -0.145343 +v 0.278615 -0.164538 -0.170849 +v 0.278615 0.039726 -0.170849 +v 0.304121 0.039726 -0.119693 +v 0.227458 -0.164538 -0.145343 +v 0.278615 0.166622 -0.170849 +v 0.304121 -0.164538 -0.119693 +v 0.304121 0.166622 -0.119693 +v 0.380670 0.166622 -0.221732 +v 0.380670 0.370885 -0.221732 +v 0.431827 0.370885 -0.247238 +v 0.380670 0.497782 -0.221732 +v 0.431827 0.497782 -0.247238 +v 0.457333 0.166622 -0.196081 +v 0.457333 0.370885 -0.196081 +v 0.406176 0.370885 -0.170575 +v 0.457333 0.497782 -0.196081 +v 0.406176 0.497782 -0.170575 +v 0.431827 0.166622 -0.247238 +v 0.406176 0.166622 -0.170575 +v 0.252964 0.166622 -0.094187 +v 0.252964 0.370885 -0.094187 +v 0.227458 0.370885 -0.145343 +v 0.252964 0.497782 -0.094187 +v 0.227458 0.497782 -0.145343 +v 0.278615 0.166622 -0.170849 +v 0.278615 0.370885 -0.170849 +v 0.304121 0.370885 -0.119693 +v 0.227458 0.166622 -0.145343 +v 0.278615 0.497782 -0.170849 +v 0.304121 0.166622 -0.119693 +v 0.304121 0.497782 -0.119693 +v 0.534826 0.459446 -0.266654 +v 0.534826 0.465184 -0.266654 +v 0.484299 0.465184 -0.241463 +v 0.532219 0.319382 -0.145351 +v 0.554855 0.319382 -0.156637 +v 0.558180 0.319382 -0.149967 +v 0.484299 0.173581 -0.241463 +v 0.506936 0.173581 -0.252749 +v 0.506936 0.179319 -0.252749 +v 0.455691 0.319382 -0.355530 +v 0.459016 0.319382 -0.348860 +v 0.436380 0.319382 -0.337574 +v 0.484299 0.459446 -0.241463 +v 0.535544 0.319382 -0.138681 +v 0.484299 0.179319 -0.241463 +v 0.433054 0.319382 -0.344244 +v 0.459370 0.483868 -0.074552 +v 0.545986 0.459446 -0.117737 +v 0.545986 0.465184 -0.117737 +v 0.397683 0.483868 -0.198277 +v 0.397683 0.319382 -0.198277 +v 0.459370 0.319382 -0.074552 +v 0.545986 0.431511 -0.117737 +v 0.545986 0.319382 -0.117737 +v 0.535544 0.483868 -0.138681 +v 0.532218 0.483868 -0.145351 +v 0.532218 0.465184 -0.145351 +v 0.582746 0.465184 -0.170543 +v 0.535544 0.465184 -0.138681 +v 0.586071 0.465184 -0.163873 +v 0.545986 0.483868 -0.117737 +v 0.535544 0.459446 -0.138681 +v 0.558180 0.431511 -0.149967 +v 0.582746 0.459446 -0.170543 +v 0.586071 0.459446 -0.163873 +v 0.532218 0.459446 -0.145351 +v 0.582746 0.449042 -0.170543 +v 0.535544 0.449042 -0.138681 +v 0.586071 0.449042 -0.163873 +v 0.532218 0.449042 -0.145351 +v 0.554855 0.431511 -0.156637 +v 0.484299 0.449042 -0.241463 +v 0.545986 0.449042 -0.117737 +v 0.532218 0.431511 -0.145351 +v 0.535544 0.431511 -0.138681 +v 0.484299 0.431511 -0.241463 +v 0.422612 0.431511 -0.365188 +v 0.335996 0.319382 -0.322003 +v 0.335996 0.483868 -0.322003 +v 0.422612 0.319382 -0.365188 +v 0.436380 0.483868 -0.337574 +v 0.486907 0.465184 -0.362766 +v 0.436380 0.465184 -0.337574 +v 0.483581 0.465184 -0.369436 +v 0.433054 0.465184 -0.344244 +v 0.433054 0.483868 -0.344244 +v 0.422612 0.465184 -0.365188 +v 0.422612 0.483868 -0.365188 +v 0.433054 0.459446 -0.344244 +v 0.422612 0.459446 -0.365188 +v 0.455691 0.431511 -0.355530 +v 0.486907 0.459446 -0.362766 +v 0.483581 0.459446 -0.369436 +v 0.486907 0.449042 -0.362766 +v 0.436380 0.459446 -0.337574 +v 0.483581 0.449042 -0.369436 +v 0.433054 0.449042 -0.344244 +v 0.459016 0.431511 -0.348860 +v 0.436380 0.449042 -0.337574 +v 0.422612 0.449042 -0.365188 +v 0.436380 0.431511 -0.337574 +v 0.433054 0.431511 -0.344244 +v 0.545986 0.207254 -0.117737 +v 0.459370 0.154897 -0.074552 +v 0.397683 0.154897 -0.198277 +v 0.532219 0.154897 -0.145351 +v 0.554855 0.173581 -0.156637 +v 0.532219 0.173581 -0.145351 +v 0.558180 0.173581 -0.149967 +v 0.535544 0.173581 -0.138681 +v 0.535544 0.154897 -0.138681 +v 0.545986 0.173581 -0.117737 +v 0.545986 0.154897 -0.117737 +v 0.535544 0.179319 -0.138681 +v 0.545986 0.179319 -0.117737 +v 0.558180 0.207254 -0.149967 +v 0.554855 0.179319 -0.156637 +v 0.558180 0.179319 -0.149967 +v 0.554855 0.189722 -0.156637 +v 0.532219 0.179319 -0.145351 +v 0.558180 0.189722 -0.149967 +v 0.535544 0.189722 -0.138681 +v 0.554855 0.207254 -0.156637 +v 0.532219 0.189722 -0.145351 +v 0.484299 0.189722 -0.241463 +v 0.545986 0.189722 -0.117737 +v 0.532219 0.207254 -0.145351 +v 0.535544 0.207254 -0.138681 +v 0.484299 0.207254 -0.241463 +v 0.335996 0.154897 -0.322003 +v 0.422612 0.179319 -0.365188 +v 0.422612 0.173581 -0.365188 +v 0.422612 0.207254 -0.365188 +v 0.433054 0.154897 -0.344244 +v 0.436380 0.154897 -0.337574 +v 0.436380 0.173581 -0.337574 +v 0.459016 0.173581 -0.348860 +v 0.433054 0.173581 -0.344244 +v 0.455691 0.173581 -0.355530 +v 0.422612 0.154897 -0.365188 +v 0.433054 0.179319 -0.344244 +v 0.455691 0.207254 -0.355530 +v 0.459016 0.179319 -0.348860 +v 0.455691 0.179319 -0.355530 +v 0.436380 0.179319 -0.337574 +v 0.459016 0.189722 -0.348860 +v 0.433054 0.189722 -0.344244 +v 0.455691 0.189722 -0.355530 +v 0.436380 0.189722 -0.337574 +v 0.459016 0.207254 -0.348860 +v 0.422612 0.189722 -0.365188 +v 0.436380 0.207254 -0.337574 +v 0.433054 0.207254 -0.344244 +v 0.484299 0.483868 -0.241463 +v 0.484299 0.154897 -0.241463 +v 0.484299 0.319382 -0.241463 +vt 0.646743 0.371805 +vt 0.646743 0.142471 +vt 0.705619 0.142471 +vt 0.646743 0.000000 +vt 0.705619 0.000000 +vt 0.470413 0.743610 +vt 0.470413 0.514276 +vt 0.529289 0.514276 +vt 0.470413 0.371805 +vt 0.529289 0.371805 +vt 0.705619 0.371805 +vt 0.764495 0.142471 +vt 0.764495 0.000000 +vt 0.941124 0.371805 +vt 0.941124 0.142471 +vt 1.000000 0.142471 +vt 0.941124 0.000000 +vt 1.000000 0.000000 +vt 0.882248 0.743610 +vt 0.882248 0.514276 +vt 0.941124 0.514276 +vt 0.882248 0.371805 +vt 0.941124 0.371805 +vt 0.117752 0.972944 +vt 0.117752 0.743610 +vt 0.176628 0.743610 +vt 0.470413 0.371805 +vt 0.470413 0.142471 +vt 0.529289 0.142471 +vt 0.470413 0.000000 +vt 0.529289 0.000000 +vt 0.646743 0.743610 +vt 0.646743 0.514276 +vt 0.705619 0.514276 +vt 0.646743 0.371805 +vt 0.705619 0.371805 +vt 0.470413 0.743610 +vt 0.529289 0.743610 +vt 0.529289 0.871642 +vt 0.529289 0.871642 +vt 0.529289 0.743610 +vt 0.588165 0.743610 +vt 0.411537 0.743610 +vt 0.411537 0.514276 +vt 0.470413 0.514276 +vt 0.411537 0.371805 +vt 0.470413 0.371805 +vt 0.235206 0.371805 +vt 0.235206 0.142471 +vt 0.294083 0.142471 +vt 0.235206 0.000000 +vt 0.294083 0.000000 +vt 0.823372 0.371805 +vt 0.823372 0.142471 +vt 0.882248 0.142471 +vt 0.823372 0.000000 +vt 0.882248 0.000000 +vt 0.764495 0.743610 +vt 0.764495 0.514276 +vt 0.823372 0.514276 +vt 0.764495 0.371805 +vt 0.823372 0.371805 +vt 0.764495 0.371805 +vt 0.764495 0.142471 +vt 0.823372 0.142471 +vt 0.764495 0.000000 +vt 0.823372 0.000000 +vt 0.176628 0.972944 +vt 0.176628 0.743610 +vt 0.235504 0.743610 +vt 0.235206 0.743610 +vt 0.235206 0.514276 +vt 0.294083 0.514276 +vt 0.235206 0.371805 +vt 0.294083 0.371805 +vt 0.411537 0.371805 +vt 0.411537 0.142471 +vt 0.470413 0.142471 +vt 0.411537 0.000000 +vt 0.470413 0.000000 +vt 0.294381 0.743610 +vt 0.353257 0.743610 +vt 0.353257 0.871643 +vt 0.411537 0.871642 +vt 0.411537 0.743610 +vt 0.470413 0.743610 +vt 0.058876 0.371805 +vt 0.058876 0.601139 +vt 0.000000 0.601139 +vt 0.058876 0.743610 +vt 0.000000 0.743610 +vt 0.000000 0.371805 +vt 0.000000 0.142471 +vt 0.058876 0.142471 +vt 0.000000 0.000000 +vt 0.058876 0.000000 +vt 0.705619 0.743610 +vt 0.705619 0.514276 +vt 0.764495 0.514276 +vt 0.705619 0.371805 +vt 0.764495 0.371805 +vt 0.882248 0.371805 +vt 0.882248 0.142471 +vt 0.941124 0.142471 +vt 0.882248 0.000000 +vt 0.941124 0.000000 +vt 0.823372 0.743610 +vt 0.823372 0.514276 +vt 0.882248 0.514276 +vt 0.823372 0.371805 +vt 0.882248 0.371805 +vt 0.058876 0.972944 +vt 0.058876 0.743610 +vt 0.117752 0.743610 +vt 0.235206 0.371805 +vt 0.235206 0.601139 +vt 0.176330 0.601139 +vt 0.235206 0.743610 +vt 0.176330 0.743610 +vt 0.176330 0.371805 +vt 0.176330 0.142471 +vt 0.235206 0.142471 +vt 0.176330 0.000000 +vt 0.235206 0.000000 +vt 0.235504 0.743610 +vt 0.294381 0.743610 +vt 0.294381 0.871643 +vt 0.000000 0.935821 +vt 0.000000 0.807789 +vt 0.058876 0.807789 +vt 0.058876 0.935821 +vt 0.058876 1.000000 +vt 0.000000 0.743610 +vt 0.058876 0.743610 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.529289 0.743610 +vt 0.764495 0.371805 +vt 1.000000 0.371805 +vt 0.941124 0.743610 +vt 0.176628 0.972944 +vt 0.529289 0.371805 +vt 0.705619 0.743610 +vt 0.470413 0.871642 +vt 0.588165 0.871642 +vt 0.470413 0.743610 +vt 0.294083 0.371805 +vt 0.882248 0.371805 +vt 0.823372 0.743610 +vt 0.823372 0.371805 +vt 0.235505 0.972944 +vt 0.294083 0.743610 +vt 0.470413 0.371805 +vt 0.294381 0.871643 +vt 0.470413 0.871642 +vt 0.000000 0.371805 +vt 0.058876 0.371805 +vt 0.764495 0.743610 +vt 0.941124 0.371805 +vt 0.882248 0.743610 +vt 0.117752 0.972944 +vt 0.176330 0.371805 +vt 0.235206 0.371805 +vt 0.235505 0.871643 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.665377 0.373761 +vt 0.772053 0.346842 +vt 0.772053 0.353167 +vt 0.490653 0.373761 +vt 0.490653 0.192467 +vt 0.643030 0.192467 +vt 0.011173 0.316053 +vt 0.011173 0.192467 +vt 0.036968 0.192467 +vt 0.551766 0.888289 +vt 0.585764 0.781041 +vt 0.585769 0.781634 +vt 0.019388 0.948870 +vt 0.019388 0.886643 +vt 0.137756 0.886643 +vt 0.045182 0.373761 +vt 0.045182 0.353168 +vt 0.163551 0.353167 +vt 0.011173 0.948870 +vt 0.011173 0.886643 +vt 0.036968 0.373761 +vt 0.036968 0.353168 +vt 0.011173 0.373761 +vt 0.011173 0.353168 +vt 0.011173 0.346842 +vt 0.036968 0.346842 +vt 0.011173 0.678014 +vt 0.011583 0.555988 +vt 0.019722 0.556019 +vt 0.020806 0.733322 +vt 0.020483 0.727150 +vt 0.139957 0.720157 +vt 0.012751 0.733737 +vt 0.012436 0.727539 +vt 0.856627 0.319924 +vt 0.794399 0.319924 +vt 0.794399 0.308458 +vt 0.405055 0.886643 +vt 0.405055 0.948870 +vt 0.286686 0.948870 +vt 0.765364 0.711183 +vt 0.827591 0.711183 +vt 0.827592 0.717508 +vt 0.765364 0.556808 +vt 0.793243 0.556808 +vt 0.793243 0.680394 +vt 0.765364 0.699717 +vt 0.827591 0.699717 +vt 0.856627 0.308458 +vt 0.828748 0.289135 +vt 0.011935 0.716293 +vt 0.019940 0.716025 +vt 0.292576 0.704858 +vt 0.292580 0.693392 +vt 0.410948 0.693433 +vt 0.011173 0.335376 +vt 0.036968 0.335376 +vt 0.856627 0.289135 +vt 0.828749 0.165549 +vt 0.765364 0.680394 +vt 0.019200 0.677955 +vt 0.292586 0.674069 +vt 0.410955 0.674110 +vt 0.036968 0.316053 +vt 0.551768 0.700990 +vt 0.658443 0.577402 +vt 0.658442 0.758694 +vt 0.338275 0.192467 +vt 0.290134 0.192467 +vt 0.315929 0.192467 +vt 0.315929 0.316053 +vt 0.822460 0.781634 +vt 0.856462 0.888289 +vt 0.704114 0.888289 +vt 0.256125 0.886643 +vt 0.256125 0.948870 +vt 0.281920 0.353167 +vt 0.281920 0.373761 +vt 0.264339 0.886643 +vt 0.264339 0.948870 +vt 0.290134 0.353167 +vt 0.290134 0.373761 +vt 0.315929 0.353167 +vt 0.315929 0.373761 +vt 0.290134 0.346842 +vt 0.315929 0.346842 +vt 0.257912 0.557015 +vt 0.266077 0.556832 +vt 0.270229 0.678520 +vt 0.260857 0.727988 +vt 0.260493 0.734236 +vt 0.269006 0.728421 +vt 0.912166 0.693392 +vt 0.912166 0.704858 +vt 0.849938 0.704858 +vt 0.523424 0.948870 +vt 0.680790 0.717508 +vt 0.680790 0.711183 +vt 0.743017 0.711183 +vt 0.715139 0.680394 +vt 0.715139 0.556808 +vt 0.743017 0.556808 +vt 0.680790 0.699717 +vt 0.743017 0.699717 +vt 0.877817 0.674069 +vt 0.849938 0.693392 +vt 0.261459 0.716736 +vt 0.269558 0.717023 +vt 0.529317 0.693474 +vt 0.529313 0.704940 +vt 0.290134 0.335376 +vt 0.315929 0.335376 +vt 0.877817 0.550483 +vt 0.849938 0.674069 +vt 0.262231 0.678588 +vt 0.529324 0.674151 +vt 0.290134 0.316053 +vt 0.772053 0.068880 +vt 0.665377 0.192466 +vt 0.665378 0.011173 +vt 0.490653 0.011173 +vt 0.011173 0.068881 +vt 0.045176 0.863703 +vt 0.011173 0.757048 +vt 0.163521 0.757048 +vt 0.678349 0.938558 +vt 0.559981 0.938517 +vt 0.559990 0.910638 +vt 0.163551 0.031767 +vt 0.045182 0.031767 +vt 0.045182 0.011173 +vt 0.551766 0.938514 +vt 0.551776 0.910636 +vt 0.036968 0.031767 +vt 0.036968 0.011173 +vt 0.011173 0.031767 +vt 0.011173 0.011173 +vt 0.036968 0.038092 +vt 0.011173 0.038092 +vt 0.012099 0.433087 +vt 0.138415 0.402789 +vt 0.020379 0.402437 +vt 0.020398 0.396131 +vt 0.012192 0.402412 +vt 0.828749 0.022639 +vt 0.828749 0.011173 +vt 0.856627 0.011173 +vt 0.551766 0.960948 +vt 0.670135 0.960948 +vt 0.670135 0.988827 +vt 0.793243 0.396107 +vt 0.793243 0.402432 +vt 0.765364 0.402432 +vt 0.793243 0.433221 +vt 0.793243 0.413898 +vt 0.765364 0.413898 +vt 0.828749 0.041962 +vt 0.856627 0.022639 +vt 0.020343 0.413865 +vt 0.012159 0.413840 +vt 0.411047 0.407614 +vt 0.292678 0.407573 +vt 0.292682 0.396107 +vt 0.036968 0.049558 +vt 0.011173 0.049558 +vt 0.856627 0.041962 +vt 0.765364 0.433221 +vt 0.020276 0.433118 +vt 0.411040 0.426937 +vt 0.292671 0.426896 +vt 0.036968 0.068881 +vt 0.658442 0.396107 +vt 0.551767 0.423026 +vt 0.551767 0.416701 +vt 0.315929 0.068880 +vt 0.315869 0.757048 +vt 0.281872 0.864296 +vt 0.281867 0.863702 +vt 0.796728 0.910720 +vt 0.796718 0.938599 +vt 0.281920 0.011173 +vt 0.281920 0.031767 +vt 0.804942 0.910723 +vt 0.804932 0.938601 +vt 0.290134 0.011173 +vt 0.290134 0.031767 +vt 0.315929 0.011173 +vt 0.315929 0.031767 +vt 0.315929 0.038092 +vt 0.290134 0.038092 +vt 0.264798 0.433076 +vt 0.256461 0.396133 +vt 0.256482 0.402439 +vt 0.264648 0.396107 +vt 0.264668 0.402411 +vt 0.849939 0.396107 +vt 0.877817 0.396107 +vt 0.877817 0.407573 +vt 0.788504 0.960948 +vt 0.743017 0.402432 +vt 0.715139 0.402432 +vt 0.715139 0.396107 +vt 0.715139 0.433221 +vt 0.743017 0.413898 +vt 0.715139 0.413898 +vt 0.849939 0.407573 +vt 0.877817 0.426896 +vt 0.264708 0.413837 +vt 0.256523 0.413870 +vt 0.529420 0.396189 +vt 0.529416 0.407655 +vt 0.315929 0.049558 +vt 0.290134 0.049558 +vt 0.849939 0.426896 +vt 0.743017 0.433221 +vt 0.256621 0.433134 +vt 0.529409 0.426978 +vt 0.290134 0.068880 +vt 0.772053 0.373761 +vt 0.772053 0.316053 +vt 0.772053 0.335376 +vt 0.772053 0.192466 +vt 0.643030 0.373761 +vt 0.704114 0.781634 +vt 0.551766 0.781634 +vt 0.137756 0.948870 +vt 0.163551 0.373761 +vt 0.139936 0.726612 +vt 0.286686 0.886643 +vt 0.765364 0.717508 +vt 0.410944 0.704899 +vt 0.856627 0.165548 +vt 0.551768 0.758694 +vt 0.551768 0.738101 +vt 0.551768 0.731777 +vt 0.551768 0.720312 +vt 0.551767 0.577402 +vt 0.338275 0.373761 +vt 0.839461 0.781486 +vt 0.856462 0.781634 +vt 0.268654 0.734701 +vt 0.523424 0.886643 +vt 0.743017 0.717508 +vt 0.743017 0.680394 +vt 0.849938 0.550483 +vt 0.772053 0.011174 +vt 0.772053 0.031767 +vt 0.772053 0.038091 +vt 0.772053 0.049557 +vt 0.643030 0.011173 +vt 0.163521 0.863702 +vt 0.028174 0.863851 +vt 0.011173 0.863703 +vt 0.678359 0.910679 +vt 0.163551 0.011173 +vt 0.138415 0.396480 +vt 0.012211 0.396107 +vt 0.551766 0.988827 +vt 0.765364 0.396107 +vt 0.411051 0.396148 +vt 0.551766 0.396108 +vt 0.551767 0.453815 +vt 0.551767 0.434492 +vt 0.338275 0.011173 +vt 0.315869 0.863702 +vt 0.788504 0.988827 +vt 0.743017 0.396107 +vt 0.003906 1.015625 +vt 0.003906 0.496094 +vt 0.500000 0.496094 +vt 1.000000 0.500000 +vt 1.000000 1.015625 +vt 0.003906 -0.019531 +vt 1.000000 -0.019531 +vt 0.500000 1.015625 +vt 0.500000 -0.019531 +vn -0.4462 0.0000 -0.8949 +vn 0.4462 0.0000 0.8949 +vn 0.8949 0.0000 -0.4462 +vn -0.8949 0.0000 0.4462 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.4388 -0.8716 -0.2188 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Mast.009 +usemtl Mast.009 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 2/2/1 4/4/1 5/5/1 +f 6/6/2 7/7/2 8/8/2 +f 7/7/2 9/9/2 10/10/2 +f 11/11/3 3/3/3 7/12/3 +f 3/3/3 5/5/3 9/13/3 +f 12/14/4 8/15/4 2/16/4 +f 8/15/4 10/17/4 4/18/4 +f 13/19/4 14/20/4 15/21/4 +f 14/20/4 16/22/4 17/23/4 +f 18/24/3 19/25/3 20/26/3 +f 21/27/1 15/28/1 19/29/1 +f 15/28/1 17/30/1 22/31/1 +f 23/32/2 20/33/2 14/34/2 +f 20/33/2 24/35/2 16/36/2 +f 22/31/1 4/4/1 2/2/1 +f 20/37/5 19/38/5 2/39/5 +f 20/33/2 8/8/2 10/10/2 +f 24/40/6 10/41/6 4/42/6 +f 25/43/1 26/44/1 27/45/1 +f 26/44/1 28/46/1 29/47/1 +f 30/48/2 31/49/2 32/50/2 +f 31/49/2 33/51/2 34/52/2 +f 35/53/3 27/54/3 31/55/3 +f 27/54/3 29/56/3 33/57/3 +f 36/58/4 32/59/4 26/60/4 +f 32/59/4 34/61/4 28/62/4 +f 37/63/4 38/64/4 39/65/4 +f 38/64/4 40/66/4 41/67/4 +f 42/68/3 43/69/3 44/70/3 +f 45/71/1 39/72/1 43/73/1 +f 39/72/1 41/74/1 46/75/1 +f 47/76/2 44/77/2 38/78/2 +f 44/77/2 48/79/2 40/80/2 +f 46/75/1 28/46/1 26/44/1 +f 44/81/5 43/82/5 26/83/5 +f 44/77/2 32/50/2 34/52/2 +f 48/84/6 34/85/6 28/86/6 +f 49/87/1 50/88/1 51/89/1 +f 50/88/1 52/90/1 53/91/1 +f 54/92/2 55/93/2 56/94/2 +f 55/93/2 57/95/2 58/96/2 +f 59/97/3 51/98/3 55/99/3 +f 51/98/3 53/100/3 57/101/3 +f 60/102/4 56/103/4 50/104/4 +f 56/103/4 58/105/4 52/106/4 +f 61/107/4 62/108/4 63/109/4 +f 62/108/4 64/110/4 65/111/4 +f 66/112/3 67/113/3 68/114/3 +f 69/115/1 63/116/1 67/117/1 +f 63/116/1 65/118/1 70/119/1 +f 71/120/2 68/121/2 62/122/2 +f 68/121/2 72/123/2 64/124/2 +f 70/119/1 52/90/1 50/88/1 +f 68/125/5 67/126/5 50/127/5 +f 68/121/2 56/94/2 58/96/2 +f 72/128/6 58/129/6 52/130/6 +f 72/128/6 70/131/6 65/132/6 +f 58/129/6 57/133/6 53/134/6 +f 73/135/2 74/136/2 75/137/2 +f 76/138/5 77/139/5 78/140/5 +f 79/141/2 80/142/2 81/143/2 +f 82/144/5 83/145/5 84/146/5 +f 11/11/1 1/1/1 3/3/1 +f 3/3/1 2/2/1 5/5/1 +f 12/147/2 6/6/2 8/8/2 +f 8/8/2 7/7/2 10/10/2 +f 6/148/3 11/11/3 7/12/3 +f 7/12/3 3/3/3 9/13/3 +f 1/149/4 12/14/4 2/16/4 +f 2/16/4 8/15/4 4/18/4 +f 21/150/4 13/19/4 15/21/4 +f 15/21/4 14/20/4 17/23/4 +f 23/151/3 18/24/3 20/26/3 +f 18/152/1 21/27/1 19/29/1 +f 19/29/1 15/28/1 22/31/1 +f 13/153/2 23/32/2 14/34/2 +f 14/34/2 20/33/2 16/36/2 +f 19/29/1 22/31/1 2/2/1 +f 8/154/5 20/37/5 2/39/5 +f 24/35/2 20/33/2 10/10/2 +f 22/155/6 24/40/6 4/42/6 +f 35/156/1 25/43/1 27/45/1 +f 27/45/1 26/44/1 29/47/1 +f 36/157/2 30/48/2 32/50/2 +f 32/50/2 31/49/2 34/52/2 +f 30/158/3 35/53/3 31/55/3 +f 31/55/3 27/54/3 33/57/3 +f 25/159/4 36/58/4 26/60/4 +f 26/60/4 32/59/4 28/62/4 +f 45/160/4 37/63/4 39/65/4 +f 39/65/4 38/64/4 41/67/4 +f 47/161/3 42/68/3 44/70/3 +f 42/162/1 45/71/1 43/73/1 +f 43/73/1 39/72/1 46/75/1 +f 37/163/2 47/76/2 38/78/2 +f 38/78/2 44/77/2 40/80/2 +f 43/73/1 46/75/1 26/44/1 +f 32/164/5 44/81/5 26/83/5 +f 48/79/2 44/77/2 34/52/2 +f 46/165/6 48/84/6 28/86/6 +f 59/166/1 49/87/1 51/89/1 +f 51/89/1 50/88/1 53/91/1 +f 60/167/2 54/92/2 56/94/2 +f 56/94/2 55/93/2 58/96/2 +f 54/168/3 59/97/3 55/99/3 +f 55/99/3 51/98/3 57/101/3 +f 49/169/4 60/102/4 50/104/4 +f 50/104/4 56/103/4 52/106/4 +f 69/170/4 61/107/4 63/109/4 +f 63/109/4 62/108/4 65/111/4 +f 71/171/3 66/112/3 68/114/3 +f 66/172/1 69/115/1 67/117/1 +f 67/117/1 63/116/1 70/119/1 +f 61/173/2 71/120/2 62/122/2 +f 62/122/2 68/121/2 64/124/2 +f 67/117/1 70/119/1 50/88/1 +f 56/174/5 68/125/5 50/127/5 +f 72/123/2 68/121/2 58/96/2 +f 70/131/6 72/128/6 52/130/6 +f 64/175/6 72/128/6 65/132/6 +f 52/130/6 58/129/6 53/134/6 +f 85/176/2 73/135/2 75/137/2 +f 86/177/5 76/138/5 78/140/5 +f 87/178/2 79/141/2 81/143/2 +f 88/179/5 82/144/5 84/146/5 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Schirm.009 +usemtl Schirm.009 +f 89/180/2 90/181/2 91/182/2 +f 92/183/4 93/184/4 94/185/4 +f 95/186/3 96/187/3 86/188/3 +f 89/189/6 97/190/6 98/191/6 +f 99/192/6 100/193/6 74/194/6 +f 98/195/3 99/196/3 75/197/3 +f 101/198/6 102/199/6 100/193/6 +f 97/200/3 101/201/3 99/196/3 +f 103/202/3 91/203/3 101/201/3 +f 91/203/3 90/204/3 104/205/3 +f 105/206/3 78/207/3 77/208/3 +f 100/209/3 106/210/3 73/211/3 +f 100/209/3 102/212/3 107/213/3 +f 108/214/1 106/215/1 109/216/1 +f 85/217/5 73/218/5 106/219/5 +f 104/220/2 107/221/2 102/222/2 +f 86/223/2 78/224/2 105/225/2 +f 110/226/2 111/227/2 107/221/2 +f 112/228/1 109/216/1 113/229/1 +f 107/213/3 111/230/3 109/231/3 +f 108/232/3 112/233/3 114/234/3 +f 90/204/3 115/235/3 110/236/3 +f 116/237/1 113/229/1 77/238/1 +f 110/226/2 117/239/2 105/225/2 +f 111/230/7 105/206/7 113/240/7 +f 112/233/3 116/241/3 118/242/3 +f 115/235/3 95/186/3 117/243/3 +f 119/244/1 120/245/1 121/246/1 +f 120/247/4 93/184/4 92/183/4 +f 88/248/3 122/249/3 119/250/3 +f 123/251/6 121/252/6 92/253/6 +f 74/194/6 124/254/6 125/255/6 +f 75/197/3 125/256/3 123/257/3 +f 124/254/6 126/258/6 127/259/6 +f 125/256/3 127/260/3 128/261/3 +f 127/260/3 129/262/3 130/263/3 +f 131/264/3 132/265/3 129/262/3 +f 83/266/3 82/267/3 133/268/3 +f 73/211/3 134/269/3 124/270/3 +f 124/270/3 134/269/3 135/271/3 +f 136/272/2 134/273/2 137/274/2 +f 134/275/5 73/218/5 85/217/5 +f 126/276/1 135/277/1 131/278/1 +f 133/279/1 82/280/1 88/281/1 +f 135/277/1 138/282/1 139/283/1 +f 140/284/2 136/272/2 141/285/2 +f 136/286/3 138/287/3 135/271/3 +f 114/234/3 141/288/3 137/289/3 +f 139/290/3 142/291/3 132/265/3 +f 83/292/2 140/284/2 143/293/2 +f 139/283/1 138/282/1 133/279/1 +f 140/294/7 133/268/7 138/287/7 +f 118/242/3 143/295/3 141/288/3 +f 144/296/3 119/250/3 142/291/3 +f 145/297/2 94/298/2 146/299/2 +f 94/185/4 93/184/4 147/300/4 +f 86/188/3 96/187/3 145/301/3 +f 148/302/5 146/303/5 147/304/5 +f 80/305/5 149/306/5 150/307/5 +f 79/308/3 150/309/3 148/310/3 +f 149/306/5 151/311/5 152/312/5 +f 150/309/3 152/313/3 153/314/3 +f 152/313/3 154/315/3 155/316/3 +f 156/317/3 157/318/3 154/315/3 +f 77/208/3 78/207/3 158/319/3 +f 81/320/3 159/321/3 149/322/3 +f 149/322/3 159/321/3 160/323/3 +f 161/324/1 159/325/1 162/326/1 +f 159/327/6 81/328/6 87/329/6 +f 151/330/2 160/331/2 156/332/2 +f 158/333/2 78/224/2 86/223/2 +f 160/331/2 163/334/2 164/335/2 +f 165/336/1 161/324/1 166/337/1 +f 161/338/3 163/339/3 160/323/3 +f 167/340/3 166/341/3 162/342/3 +f 164/343/3 168/344/3 157/318/3 +f 77/238/1 165/336/1 169/345/1 +f 163/334/2 158/333/2 170/346/2 +f 165/347/3 158/319/3 163/339/3 +f 171/348/3 169/349/3 166/341/3 +f 170/350/3 145/301/3 168/344/3 +f 172/351/1 173/352/1 174/353/1 +f 147/300/4 93/184/4 120/247/4 +f 175/354/3 122/249/3 88/248/3 +f 172/355/5 176/356/5 177/357/5 +f 178/358/5 179/359/5 80/305/5 +f 177/360/3 178/361/3 79/308/3 +f 180/362/5 181/363/5 179/359/5 +f 176/364/3 180/365/3 178/361/3 +f 182/366/3 174/367/3 180/365/3 +f 174/367/3 173/368/3 183/369/3 +f 184/370/3 82/267/3 83/266/3 +f 179/371/3 185/372/3 81/320/3 +f 179/371/3 181/373/3 186/374/3 +f 187/375/2 185/376/2 188/377/2 +f 87/329/6 81/328/6 185/378/6 +f 183/379/1 186/380/1 181/381/1 +f 88/281/1 82/280/1 184/382/1 +f 189/383/1 190/384/1 186/380/1 +f 191/385/2 188/377/2 192/386/2 +f 186/374/3 190/387/3 188/388/3 +f 187/389/3 191/390/3 167/340/3 +f 173/368/3 193/391/3 189/392/3 +f 194/393/2 192/386/2 83/292/2 +f 195/394/1 184/382/1 190/384/1 +f 190/387/3 184/370/3 192/395/3 +f 191/390/3 194/396/3 171/348/3 +f 193/391/3 175/354/3 195/397/3 +f 91/182/2 103/398/2 89/180/2 +f 89/180/2 95/399/2 115/400/2 +f 96/401/2 95/399/2 94/298/2 +f 115/400/2 90/181/2 89/180/2 +f 94/298/2 95/399/2 89/180/2 +f 89/402/4 92/183/4 94/185/4 +f 117/243/3 95/186/3 86/188/3 +f 98/191/6 196/403/6 92/253/6 +f 92/253/6 89/189/6 98/191/6 +f 103/404/6 97/190/6 89/189/6 +f 75/405/6 99/192/6 74/194/6 +f 196/406/3 98/195/3 75/197/3 +f 99/192/6 101/198/6 100/193/6 +f 98/195/3 97/200/3 99/196/3 +f 97/200/3 103/202/3 101/201/3 +f 101/201/3 91/203/3 104/205/3 +f 113/240/3 105/206/3 77/208/3 +f 74/407/3 100/209/3 73/211/3 +f 106/210/3 100/209/3 107/213/3 +f 112/228/1 108/214/1 109/216/1 +f 108/408/5 85/217/5 106/219/5 +f 101/409/2 104/220/2 102/222/2 +f 117/239/2 86/223/2 105/225/2 +f 104/220/2 110/226/2 107/221/2 +f 116/237/1 112/228/1 113/229/1 +f 106/210/3 107/213/3 109/231/3 +f 85/410/3 108/232/3 114/234/3 +f 104/205/3 90/204/3 110/236/3 +f 76/411/1 116/237/1 77/238/1 +f 111/227/2 110/226/2 105/225/2 +f 109/231/7 111/230/7 113/240/7 +f 114/234/3 112/233/3 118/242/3 +f 110/236/3 115/235/3 117/243/3 +f 121/246/1 130/412/1 129/413/1 +f 129/413/1 132/414/1 121/246/1 +f 142/415/1 119/244/1 121/246/1 +f 122/416/1 120/245/1 119/244/1 +f 121/246/1 132/414/1 142/415/1 +f 121/417/4 120/247/4 92/183/4 +f 144/296/3 88/248/3 119/250/3 +f 92/253/6 196/403/6 123/251/6 +f 123/251/6 128/418/6 121/252/6 +f 130/419/6 121/252/6 128/418/6 +f 75/405/6 74/194/6 125/255/6 +f 196/406/3 75/197/3 123/257/3 +f 125/255/6 124/254/6 127/259/6 +f 123/257/3 125/256/3 128/261/3 +f 128/261/3 127/260/3 130/263/3 +f 127/260/3 131/264/3 129/262/3 +f 140/294/3 83/266/3 133/268/3 +f 74/407/3 73/211/3 124/270/3 +f 126/420/3 124/270/3 135/271/3 +f 141/285/2 136/272/2 137/274/2 +f 137/421/5 134/275/5 85/217/5 +f 127/422/1 126/276/1 131/278/1 +f 144/423/1 133/279/1 88/281/1 +f 131/278/1 135/277/1 139/283/1 +f 143/293/2 140/284/2 141/285/2 +f 134/269/3 136/286/3 135/271/3 +f 85/410/3 114/234/3 137/289/3 +f 131/264/3 139/290/3 132/265/3 +f 84/424/2 83/292/2 143/293/2 +f 144/423/1 139/283/1 133/279/1 +f 136/286/7 140/294/7 138/287/7 +f 114/234/3 118/242/3 141/288/3 +f 139/290/3 144/296/3 142/291/3 +f 146/299/2 155/425/2 154/426/2 +f 154/426/2 157/427/2 146/299/2 +f 168/428/2 145/297/2 146/299/2 +f 96/401/2 94/298/2 145/297/2 +f 146/299/2 157/427/2 168/428/2 +f 146/429/4 94/185/4 147/300/4 +f 170/350/3 86/188/3 145/301/3 +f 147/304/5 197/430/5 148/302/5 +f 148/302/5 153/431/5 146/303/5 +f 155/432/5 146/303/5 153/431/5 +f 79/433/5 80/305/5 150/307/5 +f 197/434/3 79/308/3 148/310/3 +f 150/307/5 149/306/5 152/312/5 +f 148/310/3 150/309/3 153/314/3 +f 153/314/3 152/313/3 155/316/3 +f 152/313/3 156/317/3 154/315/3 +f 165/347/3 77/208/3 158/319/3 +f 80/435/3 81/320/3 149/322/3 +f 151/436/3 149/322/3 160/323/3 +f 166/337/1 161/324/1 162/326/1 +f 162/437/6 159/327/6 87/329/6 +f 152/438/2 151/330/2 156/332/2 +f 170/346/2 158/333/2 86/223/2 +f 156/332/2 160/331/2 164/335/2 +f 169/345/1 165/336/1 166/337/1 +f 159/321/3 161/338/3 160/323/3 +f 87/439/3 167/340/3 162/342/3 +f 156/317/3 164/343/3 157/318/3 +f 76/411/1 77/238/1 169/345/1 +f 164/335/2 163/334/2 170/346/2 +f 161/338/3 165/347/3 163/339/3 +f 167/340/3 171/348/3 166/341/3 +f 164/343/3 170/350/3 168/344/3 +f 174/353/1 182/440/1 172/351/1 +f 172/351/1 175/441/1 193/442/1 +f 122/416/1 175/441/1 120/245/1 +f 193/442/1 173/352/1 172/351/1 +f 120/245/1 175/441/1 172/351/1 +f 172/443/4 147/300/4 120/247/4 +f 195/397/3 175/354/3 88/248/3 +f 177/357/5 197/430/5 147/304/5 +f 147/304/5 172/355/5 177/357/5 +f 182/444/5 176/356/5 172/355/5 +f 79/433/5 178/358/5 80/305/5 +f 197/434/3 177/360/3 79/308/3 +f 178/358/5 180/362/5 179/359/5 +f 177/360/3 176/364/3 178/361/3 +f 176/364/3 182/366/3 180/365/3 +f 180/365/3 174/367/3 183/369/3 +f 192/395/3 184/370/3 83/266/3 +f 80/435/3 179/371/3 81/320/3 +f 185/372/3 179/371/3 186/374/3 +f 191/385/2 187/375/2 188/377/2 +f 187/445/6 87/329/6 185/378/6 +f 180/446/1 183/379/1 181/381/1 +f 195/394/1 88/281/1 184/382/1 +f 183/379/1 189/383/1 186/380/1 +f 194/393/2 191/385/2 192/386/2 +f 185/372/3 186/374/3 188/388/3 +f 87/439/3 187/389/3 167/340/3 +f 183/369/3 173/368/3 189/392/3 +f 84/424/2 194/393/2 83/292/2 +f 189/383/1 195/394/1 190/384/1 +f 188/388/3 190/387/3 192/395/3 +f 167/340/3 191/390/3 171/348/3 +f 189/392/3 193/391/3 195/397/3 +g HsVsAnzUnten_Cube.008_HsVsAnzUnten_Cube.008_Anzeige.009 +usemtl Anzeige.009 +f 116/447/3 76/448/3 198/449/3 +f 198/449/3 84/450/3 143/451/3 +f 198/449/3 76/448/3 169/452/3 +f 194/453/3 84/450/3 198/449/3 +f 118/454/3 116/447/3 198/449/3 +f 118/454/3 198/449/3 143/451/3 +f 171/455/3 198/449/3 169/452/3 +f 171/455/3 194/453/3 198/449/3 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_top.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top.obj deleted file mode 100644 index f48abd9..0000000 --- a/advtrains_signals_ks/models/advtrains_signals_ks_zs_top.obj +++ /dev/null @@ -1,835 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'signal_ks_exportd.blend' -# www.blender.org -mtllib advtrains_signals_ks_zs_top.mtl -o HsVsAnzOben_Cube.006 -v -0.028581 -0.833378 0.439611 -v 0.028581 -0.833378 0.439611 -v 0.028581 -0.833378 0.496774 -v -0.028581 -0.833378 0.496774 -v -0.028581 -0.833378 0.325575 -v -0.028581 -0.833378 0.268412 -v 0.028581 -0.833378 0.268412 -v 0.028581 -0.833378 0.325575 -v 0.028581 -0.833378 0.268412 -v -0.028581 -0.833378 0.268412 -v -0.028581 -0.833378 0.496774 -v 0.028581 -0.833378 0.496774 -v 0.028581 -0.833378 0.325575 -v 0.028581 -0.833378 0.439611 -v -0.028581 -0.833378 0.325575 -v -0.028581 -0.833378 0.439611 -v -0.028581 -0.629115 0.439611 -v -0.028581 -0.502218 0.439611 -v 0.028581 -0.502218 0.439611 -v 0.028581 -0.629115 0.439611 -v 0.028581 -0.629115 0.496774 -v 0.028581 -0.502218 0.496774 -v -0.028581 -0.502218 0.496774 -v -0.028581 -0.629115 0.496774 -v -0.028581 -0.629115 0.325575 -v -0.028581 -0.502218 0.325575 -v -0.028581 -0.502218 0.268412 -v -0.028581 -0.629115 0.268412 -v 0.028581 -0.629115 0.268412 -v 0.028581 -0.502218 0.268412 -v 0.028581 -0.502218 0.325575 -v 0.028581 -0.629115 0.325575 -v -0.138251 -0.373703 0.541156 -v -0.138251 -0.373703 0.444371 -v -0.138251 -0.398125 0.541156 -v -0.138251 -0.392387 0.541156 -v -0.107395 -0.373703 0.541156 -v -0.114848 -0.373703 0.541156 -v -0.107395 -0.392387 0.541156 -v -0.107395 -0.398125 0.541156 -v -0.114848 -0.392387 0.541156 -v -0.114848 -0.398125 0.541156 -v -0.107395 -0.398125 0.597615 -v -0.107395 -0.392387 0.597615 -v -0.114848 -0.398125 0.597615 -v -0.114848 -0.392387 0.597615 -v -0.138251 -0.408529 0.541156 -v -0.107395 -0.408529 0.541156 -v -0.114848 -0.408529 0.541156 -v -0.107395 -0.408529 0.597615 -v -0.114848 -0.408529 0.597615 -v -0.107395 -0.426060 0.541156 -v -0.114848 -0.426060 0.541156 -v -0.107395 -0.426060 0.566450 -v -0.114848 -0.426060 0.566450 -v -0.138251 -0.426060 0.541156 -v 0.138251 -0.373703 0.541156 -v 0.138251 -0.373703 0.444371 -v 0.000000 -0.373703 0.541156 -v 0.000000 -0.373703 0.444371 -v 0.138251 -0.398125 0.541156 -v 0.138251 -0.392387 0.541156 -v 0.000000 -0.392387 0.541156 -v 0.000000 -0.398125 0.541156 -v 0.107395 -0.373703 0.541156 -v 0.114848 -0.373703 0.541156 -v 0.107395 -0.392387 0.541156 -v 0.107395 -0.398125 0.541156 -v 0.114848 -0.392387 0.541156 -v 0.114848 -0.398125 0.541156 -v 0.000000 -0.392387 0.597615 -v 0.000000 -0.398125 0.597615 -v 0.107395 -0.398125 0.597615 -v 0.107395 -0.392387 0.597615 -v 0.114848 -0.398125 0.597615 -v 0.114848 -0.392387 0.597615 -v 0.000000 -0.408529 0.541156 -v 0.138251 -0.408529 0.541156 -v 0.107395 -0.408529 0.541156 -v 0.114848 -0.408529 0.541156 -v 0.107395 -0.408529 0.597615 -v 0.114848 -0.408529 0.597615 -v 0.000000 -0.426060 0.541156 -v 0.107395 -0.426060 0.541156 -v 0.114848 -0.426060 0.541156 -v 0.107395 -0.426060 0.566450 -v 0.114848 -0.426060 0.566450 -v 0.138251 -0.426060 0.541156 -v -0.138251 -0.702675 0.541156 -v -0.138251 -0.702675 0.444371 -v -0.138251 -0.678252 0.541156 -v -0.138251 -0.683991 0.541156 -v -0.107395 -0.702675 0.541156 -v -0.114848 -0.702675 0.541156 -v -0.107395 -0.683991 0.541156 -v -0.107395 -0.678252 0.541156 -v -0.114848 -0.683991 0.541156 -v -0.114848 -0.678252 0.541156 -v -0.107395 -0.678252 0.566450 -v -0.107395 -0.683991 0.566450 -v -0.114848 -0.678252 0.566450 -v -0.114848 -0.683991 0.566450 -v -0.138251 -0.667849 0.541156 -v -0.107395 -0.667849 0.541156 -v -0.114848 -0.667849 0.541156 -v -0.107395 -0.667849 0.566450 -v -0.114848 -0.667849 0.566450 -v -0.107395 -0.650317 0.541156 -v -0.114848 -0.650317 0.541156 -v -0.107395 -0.650317 0.566450 -v -0.114848 -0.650317 0.566450 -v -0.138251 -0.650317 0.541156 -v -0.138251 -0.538189 0.541156 -v -0.138251 -0.538189 0.444371 -v -0.114848 -0.538189 0.541156 -v -0.107395 -0.538189 0.541156 -v -0.114848 -0.538189 0.566450 -v -0.107395 -0.538189 0.566450 -v 0.138251 -0.702675 0.541156 -v 0.138251 -0.702675 0.444371 -v 0.000000 -0.702675 0.541156 -v 0.000000 -0.702675 0.444371 -v 0.138251 -0.678252 0.541156 -v 0.138251 -0.683991 0.541156 -v 0.000000 -0.683991 0.541156 -v 0.000000 -0.678252 0.541156 -v 0.107395 -0.702675 0.541156 -v 0.114848 -0.702675 0.541156 -v 0.107395 -0.683991 0.541156 -v 0.107395 -0.678252 0.541156 -v 0.114848 -0.683991 0.541156 -v 0.114848 -0.678252 0.541156 -v 0.000000 -0.683991 0.566450 -v 0.000000 -0.678252 0.566450 -v 0.107395 -0.678252 0.566450 -v 0.107395 -0.683991 0.566450 -v 0.114848 -0.678252 0.566450 -v 0.114848 -0.683991 0.566450 -v 0.000000 -0.667849 0.541156 -v 0.138251 -0.667849 0.541156 -v 0.107395 -0.667849 0.541156 -v 0.114848 -0.667849 0.541156 -v 0.107395 -0.667849 0.566450 -v 0.114848 -0.667849 0.566450 -v 0.000000 -0.650317 0.541156 -v 0.107395 -0.650317 0.541156 -v 0.114848 -0.650317 0.541156 -v 0.107395 -0.650317 0.566450 -v 0.114848 -0.650317 0.566450 -v 0.138251 -0.650317 0.541156 -v 0.138251 -0.538189 0.541156 -v 0.138251 -0.538189 0.444371 -v 0.000000 -0.538189 0.541156 -v 0.000000 -0.538189 0.444371 -v 0.114848 -0.538189 0.541156 -v 0.107395 -0.538189 0.541156 -v 0.114848 -0.538189 0.566450 -v 0.107395 -0.538189 0.566450 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.454504 0.000000 -vt 0.454504 0.365068 -vt 0.363511 0.365068 -vt 0.454504 0.591862 -vt 0.363511 0.591862 -vt 0.000000 0.591862 -vt 0.000000 0.226795 -vt 0.090993 0.226795 -vt 0.000000 0.000000 -vt 0.090993 0.000000 -vt 0.727022 0.591862 -vt 0.727022 0.226794 -vt 0.818014 0.226794 -vt 0.727022 0.000000 -vt 0.818014 0.000000 -vt 0.909007 0.591862 -vt 0.909007 0.226794 -vt 1.000000 0.226794 -vt 0.909007 0.000000 -vt 0.818014 0.591862 -vt 0.090993 0.956930 -vt 0.090993 0.591862 -vt 0.181986 0.591862 -vt 0.727021 0.365068 -vt 0.636029 0.365068 -vt 0.636029 0.591862 -vt 0.272518 0.591862 -vt 0.272518 0.226794 -vt 0.363511 0.226794 -vt 0.272518 0.000000 -vt 0.363511 0.000000 -vt 0.272979 0.591862 -vt 0.272979 0.795673 -vt 0.000000 0.897836 -vt 0.000000 0.694026 -vt 0.090993 0.694026 -vt 0.090993 0.897836 -vt 0.090993 1.000000 -vt 1.000000 0.591862 -vt 0.181986 0.956930 -vt 0.636029 0.000000 -vt 0.181986 0.795673 -vt 0.415110 0.773242 -vt 0.522823 0.746062 -vt 0.522823 0.752448 -vt 0.502593 0.379785 -vt 0.502593 0.196728 -vt 0.656453 0.196728 -vt 0.013671 0.321517 -vt 0.013671 0.196729 -vt 0.039717 0.196729 -vt 0.550165 0.515419 -vt 0.584493 0.407128 -vt 0.584498 0.407728 -vt 0.013671 0.687793 -vt 0.013671 0.563005 -vt 0.133191 0.563005 -vt 0.713615 0.930837 -vt 0.713615 0.868004 -vt 0.833135 0.868004 -vt 0.048011 0.379786 -vt 0.048011 0.358992 -vt 0.167531 0.358992 -vt 0.705321 0.930837 -vt 0.705321 0.868004 -vt 0.039717 0.379786 -vt 0.039717 0.358992 -vt 0.013671 0.379786 -vt 0.013671 0.358992 -vt 0.013671 0.352606 -vt 0.683795 0.138459 -vt 0.683795 0.013671 -vt 0.692089 0.013671 -vt 0.692089 0.196218 -vt 0.692089 0.189831 -vt 0.811609 0.189831 -vt 0.683795 0.196217 -vt 0.683795 0.189831 -vt 0.231660 0.902101 -vt 0.168828 0.902101 -vt 0.168828 0.890523 -vt 0.379473 0.890759 -vt 0.379473 0.953592 -vt 0.259953 0.953592 -vt 0.838951 0.169548 -vt 0.901784 0.169548 -vt 0.901784 0.175935 -vt 0.838951 0.013671 -vt 0.867101 0.013671 -vt 0.867101 0.138460 -vt 0.838951 0.157970 -vt 0.901784 0.157970 -vt 0.231660 0.890524 -vt 0.203511 0.871013 -vt 0.683795 0.178253 -vt 0.692089 0.178253 -vt 0.013671 0.718882 -vt 0.013671 0.707304 -vt 0.133191 0.707304 -vt 0.039717 0.352606 -vt 0.013671 0.341028 -vt 0.231660 0.871013 -vt 0.203511 0.746224 -vt 0.838951 0.138460 -vt 0.692089 0.138459 -vt 0.133191 0.687793 -vt 0.039717 0.321517 -vt 0.280055 0.714975 -vt 0.387767 0.590186 -vt 0.387767 0.773241 -vt 0.348734 0.196728 -vt 0.295345 0.196729 -vt 0.321391 0.196729 -vt 0.321391 0.321517 -vt 0.823492 0.407728 -vt 0.857825 0.515419 -vt 0.703995 0.515419 -vt 0.252711 0.563005 -vt 0.252711 0.687793 -vt 0.259953 0.800584 -vt 0.379473 0.800584 -vt 0.379473 0.863417 -vt 0.287052 0.358992 -vt 0.287052 0.379785 -vt 0.387767 0.800584 -vt 0.387767 0.863417 -vt 0.295346 0.358992 -vt 0.295346 0.379785 -vt 0.321391 0.358992 -vt 0.321391 0.379785 -vt 0.295346 0.352605 -vt 0.321391 0.352605 -vt 0.669684 0.678395 -vt 0.677978 0.678395 -vt 0.677978 0.803184 -vt 0.550165 0.854556 -vt 0.669683 0.854556 -vt 0.669683 0.860942 -vt 0.677977 0.854556 -vt 0.459990 0.806971 -vt 0.459990 0.800584 -vt 0.522823 0.800584 -vt 0.746628 0.367859 -vt 0.746628 0.379437 -vt 0.683795 0.379437 -vt 0.669685 0.951117 -vt 0.550165 0.951117 -vt 0.550165 0.888285 -vt 0.838951 0.365540 -vt 0.838951 0.359154 -vt 0.901784 0.359154 -vt 0.873634 0.328065 -vt 0.873634 0.203277 -vt 0.901784 0.203277 -vt 0.838951 0.347576 -vt 0.901784 0.347576 -vt 0.711945 0.348349 -vt 0.683795 0.367859 -vt 0.669683 0.842978 -vt 0.677978 0.842978 -vt 0.252711 0.707304 -vt 0.252711 0.718882 -vt 0.295346 0.341028 -vt 0.321391 0.341028 -vt 0.711945 0.223560 -vt 0.683795 0.348349 -vt 0.669684 0.803183 -vt 0.295346 0.321517 -vt 0.522822 0.465396 -vt 0.415110 0.590185 -vt 0.415110 0.407128 -vt 0.502593 0.013671 -vt 0.013671 0.071940 -vt 0.584498 0.650454 -vt 0.550165 0.542762 -vt 0.703995 0.542762 -vt 0.013671 0.438217 -vt 0.833135 0.986329 -vt 0.713615 0.986329 -vt 0.713615 0.958179 -vt 0.167532 0.034466 -vt 0.048011 0.034465 -vt 0.048011 0.013671 -vt 0.705321 0.986329 -vt 0.705321 0.958179 -vt 0.039717 0.034465 -vt 0.039717 0.013671 -vt 0.013671 0.034465 -vt 0.013672 0.013671 -vt 0.039717 0.040852 -vt 0.013671 0.040851 -vt 0.713615 0.840662 -vt 0.705321 0.840659 -vt 0.705364 0.715870 -vt 0.833187 0.684826 -vt 0.713669 0.684785 -vt 0.713671 0.678398 -vt 0.705374 0.684782 -vt 0.916024 0.689973 -vt 0.916024 0.678395 -vt 0.944174 0.678395 -vt 0.860477 0.923496 -vt 0.979997 0.923496 -vt 0.979997 0.951646 -vt 0.888681 0.678395 -vt 0.888681 0.684782 -vt 0.860532 0.684782 -vt 0.888681 0.715870 -vt 0.888681 0.840658 -vt 0.860532 0.840658 -vt 0.888681 0.696359 -vt 0.860532 0.696359 -vt 0.916024 0.709483 -vt 0.944174 0.689973 -vt 0.713665 0.696362 -vt 0.705370 0.696359 -vt 0.133191 0.418706 -vt 0.013671 0.418706 -vt 0.013671 0.407128 -vt 0.039717 0.052429 -vt 0.013671 0.052429 -vt 0.916024 0.834272 -vt 0.944174 0.709484 -vt 0.860532 0.715870 -vt 0.713658 0.715873 -vt 0.133191 0.438217 -vt 0.039717 0.071940 -vt 0.488140 0.878244 -vt 0.459990 0.878244 -vt 0.459990 0.869950 -vt 0.387767 0.407128 -vt 0.280054 0.434309 -vt 0.280054 0.427922 -vt 0.321390 0.071941 -vt 0.857825 0.542762 -vt 0.823497 0.651053 -vt 0.823492 0.650454 -vt 0.252711 0.438217 -vt 0.133191 0.935830 -vt 0.133191 0.963980 -vt 0.013671 0.963980 -vt 0.287051 0.013674 -vt 0.287052 0.034467 -vt 0.141485 0.935830 -vt 0.141485 0.963980 -vt 0.295345 0.013674 -vt 0.295345 0.034467 -vt 0.321390 0.013674 -vt 0.321390 0.034466 -vt 0.321390 0.040853 -vt 0.295345 0.040853 -vt 0.141485 0.783699 -vt 0.141485 0.908487 -vt 0.133191 0.908487 -vt 0.133191 0.746224 -vt 0.133191 0.752611 -vt 0.013671 0.752611 -vt 0.141485 0.746224 -vt 0.141485 0.752611 -vt 0.488140 0.911973 -vt 0.459990 0.911973 -vt 0.459990 0.905586 -vt 0.773970 0.223560 -vt 0.802120 0.223560 -vt 0.802120 0.235138 -vt 0.860477 0.896154 -vt 0.860477 0.868004 -vt 0.979997 0.868004 -vt 0.913317 0.413515 -vt 0.885167 0.413515 -vt 0.885167 0.407128 -vt 0.913317 0.569392 -vt 0.885167 0.569392 -vt 0.885167 0.444603 -vt 0.913317 0.425093 -vt 0.885167 0.425093 -vt 0.773970 0.235138 -vt 0.802120 0.254649 -vt 0.141485 0.764189 -vt 0.133191 0.764189 -vt 0.252711 0.407129 -vt 0.252711 0.418706 -vt 0.321390 0.052430 -vt 0.295345 0.052430 -vt 0.773970 0.254649 -vt 0.802120 0.379437 -vt 0.913317 0.444603 -vt 0.133191 0.783699 -vt 0.295345 0.071941 -vt 0.459990 0.842607 -vt 0.459990 0.834313 -vt 0.488140 0.834313 -vt 0.522823 0.773242 -vt 0.522823 0.714973 -vt 0.522823 0.734484 -vt 0.522823 0.590185 -vt 0.656453 0.379785 -vt 0.703995 0.407728 -vt 0.550165 0.407728 -vt 0.833135 0.930837 -vt 0.167531 0.379786 -vt 0.811609 0.196218 -vt 0.259953 0.890759 -vt 0.838951 0.175935 -vt 0.133191 0.718882 -vt 0.039717 0.341028 -vt 0.231660 0.746224 -vt 0.280055 0.773241 -vt 0.280055 0.752448 -vt 0.280055 0.746063 -vt 0.280055 0.734486 -vt 0.280054 0.590186 -vt 0.348734 0.379785 -vt 0.840658 0.407578 -vt 0.857825 0.407728 -vt 0.259953 0.863417 -vt 0.550165 0.860942 -vt 0.677977 0.860942 -vt 0.522823 0.806971 -vt 0.669685 0.888285 -vt 0.901784 0.365540 -vt 0.901784 0.328065 -vt 0.683795 0.223560 -vt 0.522822 0.407128 -vt 0.522822 0.427922 -vt 0.522822 0.434309 -vt 0.522822 0.445886 -vt 0.656453 0.013671 -vt 0.703995 0.650454 -vt 0.567332 0.650603 -vt 0.550165 0.650454 -vt 0.833135 0.958179 -vt 0.167533 0.013673 -vt 0.833189 0.678440 -vt 0.705377 0.678395 -vt 0.860477 0.951646 -vt 0.860532 0.678395 -vt 0.133191 0.407128 -vt 0.944174 0.834272 -vt 0.488140 0.869950 -vt 0.280054 0.407129 -vt 0.280054 0.465397 -vt 0.280054 0.445886 -vt 0.348734 0.013671 -vt 0.857825 0.650454 -vt 0.013671 0.935830 -vt 0.013671 0.746225 -vt 0.488140 0.905586 -vt 0.979997 0.896154 -vt 0.913317 0.407128 -vt 0.773970 0.379437 -vt 0.488140 0.842607 -vn 0.000000 1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -1.000000 -0.000000 -vn 0.000000 -0.871600 0.490300 -g HsVsAnzOben_Cube.006_Mast -usemtl Mast -s off -f 5/1/1 1/2/1 2/3/1 -f 14/4/2 20/5/2 21/6/2 -f 20/5/2 19/7/2 22/8/2 -f 11/9/3 24/10/3 17/11/3 -f 24/10/3 23/12/3 18/13/3 -f 12/14/4 21/15/4 24/16/4 -f 21/15/4 22/17/4 23/18/4 -f 16/19/5 17/20/5 20/21/5 -f 17/20/5 18/22/5 19/1/5 -f 10/23/5 28/16/5 29/20/5 -f 28/16/5 27/18/5 30/22/5 -f 13/24/4 32/25/4 25/26/4 -f 9/17/2 29/27/2 32/28/2 -f 29/27/2 30/14/2 31/29/2 -f 15/30/3 25/31/3 28/32/3 -f 25/31/3 26/33/3 27/34/3 -f 31/29/2 19/7/2 20/5/2 -f 25/26/6 32/35/6 20/36/6 -f 25/31/3 17/11/3 18/13/3 -f 26/37/1 18/38/1 19/39/1 -f 26/37/1 31/40/1 30/41/1 -f 18/38/1 23/9/1 22/25/1 -f 8/12/1 5/1/1 2/3/1 -f 12/34/2 14/4/2 21/6/2 -f 21/6/2 20/5/2 22/8/2 -f 16/25/3 11/9/3 17/11/3 -f 17/11/3 24/10/3 18/13/3 -f 11/23/4 12/14/4 24/16/4 -f 24/16/4 21/15/4 23/18/4 -f 14/42/5 16/19/5 20/21/5 -f 20/21/5 17/20/5 19/1/5 -f 9/19/5 10/23/5 29/20/5 -f 29/20/5 28/16/5 30/22/5 -f 15/43/4 13/24/4 25/26/4 -f 13/44/2 9/17/2 32/28/2 -f 32/28/2 29/27/2 31/29/2 -f 10/8/3 15/30/3 28/32/3 -f 28/32/3 25/31/3 27/34/3 -f 32/28/2 31/29/2 20/5/2 -f 17/45/6 25/26/6 20/36/6 -f 26/33/3 25/31/3 18/13/3 -f 31/40/1 26/37/1 19/39/1 -f 27/3/1 26/37/1 30/41/1 -f 19/39/1 18/38/1 22/25/1 -g HsVsAnzOben_Cube.006_Schirm -usemtl Schirm -f 34/46/3 35/47/3 36/48/3 -f 60/49/5 154/50/5 114/51/5 -f 56/52/4 113/53/4 115/54/4 -f 34/55/1 38/56/1 37/57/1 -f 52/58/4 116/59/4 153/60/4 -f 39/61/1 44/62/1 71/63/1 -f 37/64/4 39/65/4 63/66/4 -f 41/67/1 46/68/1 44/62/1 -f 38/69/4 41/70/4 39/65/4 -f 33/71/4 36/72/4 41/70/4 -f 41/70/4 36/72/4 35/73/4 -f 55/74/4 117/75/4 118/76/4 -f 44/77/4 43/78/4 72/79/4 -f 44/77/4 46/80/4 45/81/4 -f 40/82/2 43/83/2 50/84/2 -f 64/85/6 72/86/6 43/87/6 -f 42/88/3 45/89/3 46/90/3 -f 115/91/3 117/92/3 55/93/3 -f 49/94/3 51/95/3 45/89/3 -f 48/96/2 50/84/2 54/97/2 -f 45/81/4 51/98/4 50/99/4 -f 40/100/4 48/101/4 77/102/4 -f 42/103/4 35/73/4 47/104/4 -f 52/105/2 54/97/2 118/106/2 -f 49/94/3 53/107/3 55/93/3 -f 51/98/7 55/74/7 54/108/7 -f 48/101/4 52/58/4 83/109/4 -f 47/104/4 56/52/4 53/110/4 -f 88/111/2 152/112/2 58/113/2 -f 152/114/5 154/50/5 60/49/5 -f 155/115/4 151/116/4 88/117/4 -f 65/118/1 58/119/1 60/120/1 -f 153/60/4 156/121/4 84/122/4 -f 71/123/1 74/124/1 67/125/1 -f 63/66/4 67/126/4 65/127/4 -f 74/124/1 76/128/1 69/129/1 -f 67/126/4 69/130/4 66/131/4 -f 69/130/4 62/132/4 57/133/4 -f 69/130/4 70/134/4 61/135/4 -f 158/136/4 157/137/4 87/138/4 -f 72/139/4 73/140/4 74/141/4 -f 74/141/4 73/140/4 75/142/4 -f 72/143/3 71/144/3 63/145/3 -f 81/146/3 73/147/3 68/148/3 -f 73/149/6 72/150/6 64/151/6 -f 76/152/2 75/153/2 70/154/2 -f 87/155/2 157/156/2 155/157/2 -f 75/153/2 82/158/2 80/159/2 -f 86/160/3 81/146/3 79/161/3 -f 81/162/4 82/163/4 75/142/4 -f 77/102/4 79/164/4 68/165/4 -f 70/134/4 80/166/4 78/167/4 -f 158/168/3 86/160/3 84/169/3 -f 80/159/2 82/158/2 87/155/2 -f 86/170/7 87/138/7 82/163/7 -f 83/109/4 84/122/4 79/164/4 -f 85/171/4 88/117/4 78/167/4 -f 112/172/3 114/173/3 90/174/3 -f 114/51/5 154/50/5 122/175/5 -f 115/54/4 113/53/4 112/176/4 -f 93/177/6 90/178/6 122/179/6 -f 153/60/4 116/59/4 108/180/4 -f 133/181/6 100/182/6 95/183/6 -f 125/184/4 95/185/4 93/186/4 -f 100/182/6 102/187/6 97/188/6 -f 95/185/4 97/189/4 94/190/4 -f 97/189/4 92/191/4 89/192/4 -f 98/193/4 91/194/4 92/191/4 -f 118/195/4 117/196/4 111/197/4 -f 134/198/4 99/199/4 100/200/4 -f 100/200/4 99/199/4 101/201/4 -f 106/202/2 99/203/2 96/204/2 -f 99/205/1 134/206/1 126/207/1 -f 102/208/3 101/209/3 98/210/3 -f 111/211/3 117/212/3 115/213/3 -f 101/209/3 107/214/3 105/215/3 -f 110/216/2 106/202/2 104/217/2 -f 106/218/4 107/219/4 101/201/4 -f 139/220/4 104/221/4 96/222/4 -f 105/223/4 103/224/4 91/194/4 -f 118/225/2 110/216/2 108/226/2 -f 107/214/3 111/211/3 109/227/3 -f 110/228/4 111/197/4 107/219/4 -f 145/229/4 108/180/4 104/221/4 -f 109/230/4 112/176/4 103/224/4 -f 116/231/6 118/232/6 117/233/6 -f 120/234/2 123/235/2 124/236/2 -f 122/175/5 154/50/5 152/114/5 -f 150/237/4 151/116/4 155/115/4 -f 120/238/6 128/239/6 127/240/6 -f 146/241/4 156/121/4 153/60/4 -f 129/242/6 136/243/6 133/244/6 -f 127/245/4 129/246/4 125/184/4 -f 131/247/6 138/248/6 136/243/6 -f 128/249/4 131/250/4 129/246/4 -f 119/251/4 124/252/4 131/250/4 -f 124/252/4 123/253/4 132/254/4 -f 149/255/4 157/256/4 158/257/4 -f 136/258/4 135/259/4 134/260/4 -f 136/258/4 138/261/4 137/262/4 -f 125/263/3 133/264/3 134/265/3 -f 130/266/3 135/267/3 143/268/3 -f 126/269/1 134/270/1 135/271/1 -f 132/272/2 137/273/2 138/274/2 -f 155/275/2 157/276/2 149/277/2 -f 142/278/2 144/279/2 137/273/2 -f 141/280/3 143/268/3 148/281/3 -f 137/262/4 144/282/4 143/283/4 -f 130/284/4 141/285/4 139/220/4 -f 123/253/4 140/286/4 142/287/4 -f 146/288/3 148/281/3 158/289/3 -f 147/290/2 149/277/2 144/279/2 -f 144/282/4 149/255/4 148/291/4 -f 141/285/4 146/241/4 145/229/4 -f 140/286/4 150/237/4 147/292/4 -f 157/293/6 158/294/6 156/295/6 -f 36/48/3 33/296/3 34/46/3 -f 34/46/3 56/297/3 47/298/3 -f 113/299/3 56/297/3 114/173/3 -f 47/298/3 35/47/3 34/46/3 -f 114/173/3 56/297/3 34/46/3 -f 34/300/5 60/49/5 114/51/5 -f 53/110/4 56/52/4 115/54/4 -f 37/57/1 59/301/1 60/120/1 -f 60/120/1 34/55/1 37/57/1 -f 33/302/1 38/56/1 34/55/1 -f 83/109/4 52/58/4 153/60/4 -f 63/303/1 39/61/1 71/63/1 -f 59/304/4 37/64/4 63/66/4 -f 39/61/1 41/67/1 44/62/1 -f 37/64/4 38/69/4 39/65/4 -f 38/69/4 33/71/4 41/70/4 -f 42/103/4 41/70/4 35/73/4 -f 54/108/4 55/74/4 118/76/4 -f 71/305/4 44/77/4 72/79/4 -f 43/78/4 44/77/4 45/81/4 -f 48/96/2 40/82/2 50/84/2 -f 40/306/6 64/85/6 43/87/6 -f 41/307/3 42/88/3 46/90/3 -f 53/107/3 115/91/3 55/93/3 -f 42/88/3 49/94/3 45/89/3 -f 52/105/2 48/96/2 54/97/2 -f 43/78/4 45/81/4 50/99/4 -f 64/308/4 40/100/4 77/102/4 -f 49/309/4 42/103/4 47/104/4 -f 116/310/2 52/105/2 118/106/2 -f 51/95/3 49/94/3 55/93/3 -f 50/99/7 51/98/7 54/108/7 -f 77/102/4 48/101/4 83/109/4 -f 49/309/4 47/104/4 53/110/4 -f 58/113/2 57/311/2 62/312/2 -f 62/312/2 61/313/2 58/113/2 -f 78/314/2 88/111/2 58/113/2 -f 151/315/2 152/112/2 88/111/2 -f 58/113/2 61/313/2 78/314/2 -f 58/316/5 152/114/5 60/49/5 -f 85/171/4 155/115/4 88/117/4 -f 60/120/1 59/301/1 65/118/1 -f 65/118/1 66/317/1 58/119/1 -f 57/318/1 58/119/1 66/317/1 -f 83/109/4 153/60/4 84/122/4 -f 63/319/1 71/123/1 67/125/1 -f 59/304/4 63/66/4 65/127/4 -f 67/125/1 74/124/1 69/129/1 -f 65/127/4 67/126/4 66/131/4 -f 66/131/4 69/130/4 57/133/4 -f 62/132/4 69/130/4 61/135/4 -f 86/170/4 158/136/4 87/138/4 -f 71/320/4 72/139/4 74/141/4 -f 76/321/4 74/141/4 75/142/4 -f 64/322/3 72/143/3 63/145/3 -f 79/161/3 81/146/3 68/148/3 -f 68/323/6 73/149/6 64/151/6 -f 69/324/2 76/152/2 70/154/2 -f 85/325/2 87/155/2 155/157/2 -f 70/154/2 75/153/2 80/159/2 -f 84/169/3 86/160/3 79/161/3 -f 73/140/4 81/162/4 75/142/4 -f 64/308/4 77/102/4 68/165/4 -f 61/135/4 70/134/4 78/167/4 -f 156/326/3 158/168/3 84/169/3 -f 85/325/2 80/159/2 87/155/2 -f 81/162/7 86/170/7 82/163/7 -f 77/102/4 83/109/4 79/164/4 -f 80/166/4 85/171/4 78/167/4 -f 90/174/3 89/327/3 92/328/3 -f 92/328/3 91/329/3 90/174/3 -f 103/330/3 112/172/3 90/174/3 -f 113/299/3 114/173/3 112/172/3 -f 90/174/3 91/329/3 103/330/3 -f 90/331/5 114/51/5 122/175/5 -f 109/230/4 115/54/4 112/176/4 -f 122/179/6 121/332/6 93/177/6 -f 93/177/6 94/333/6 90/178/6 -f 89/334/6 90/178/6 94/333/6 -f 145/229/4 153/60/4 108/180/4 -f 125/335/6 133/181/6 95/183/6 -f 121/336/4 125/184/4 93/186/4 -f 95/183/6 100/182/6 97/188/6 -f 93/186/4 95/185/4 94/190/4 -f 94/190/4 97/189/4 89/192/4 -f 97/189/4 98/193/4 92/191/4 -f 110/228/4 118/195/4 111/197/4 -f 133/337/4 134/198/4 100/200/4 -f 102/338/4 100/200/4 101/201/4 -f 104/217/2 106/202/2 96/204/2 -f 96/339/1 99/205/1 126/207/1 -f 97/340/3 102/208/3 98/210/3 -f 109/227/3 111/211/3 115/213/3 -f 98/210/3 101/209/3 105/215/3 -f 108/226/2 110/216/2 104/217/2 -f 99/199/4 106/218/4 101/201/4 -f 126/341/4 139/220/4 96/222/4 -f 98/193/4 105/223/4 91/194/4 -f 116/342/2 118/225/2 108/226/2 -f 105/215/3 107/214/3 109/227/3 -f 106/218/4 110/228/4 107/219/4 -f 139/220/4 145/229/4 104/221/4 -f 105/223/4 109/230/4 103/224/4 -f 115/343/6 116/231/6 117/233/6 -f 124/236/2 119/344/2 120/234/2 -f 120/234/2 150/345/2 140/346/2 -f 151/315/2 150/345/2 152/112/2 -f 140/346/2 123/235/2 120/234/2 -f 152/112/2 150/345/2 120/234/2 -f 120/347/5 122/175/5 152/114/5 -f 147/292/4 150/237/4 155/115/4 -f 127/240/6 121/332/6 122/179/6 -f 122/179/6 120/238/6 127/240/6 -f 119/348/6 128/239/6 120/238/6 -f 145/229/4 146/241/4 153/60/4 -f 125/349/6 129/242/6 133/244/6 -f 121/336/4 127/245/4 125/184/4 -f 129/242/6 131/247/6 136/243/6 -f 127/245/4 128/249/4 129/246/4 -f 128/249/4 119/251/4 131/250/4 -f 131/250/4 124/252/4 132/254/4 -f 148/291/4 149/255/4 158/257/4 -f 133/350/4 136/258/4 134/260/4 -f 135/259/4 136/258/4 137/262/4 -f 126/351/3 125/263/3 134/265/3 -f 141/280/3 130/266/3 143/268/3 -f 130/352/1 126/269/1 135/271/1 -f 131/353/2 132/272/2 138/274/2 -f 147/290/2 155/275/2 149/277/2 -f 132/272/2 142/278/2 137/273/2 -f 146/288/3 141/280/3 148/281/3 -f 135/259/4 137/262/4 143/283/4 -f 126/341/4 130/284/4 139/220/4 -f 132/254/4 123/253/4 142/287/4 -f 156/354/3 146/288/3 158/289/3 -f 142/278/2 147/290/2 144/279/2 -f 143/283/4 144/282/4 148/291/4 -f 139/220/4 141/285/4 145/229/4 -f 142/287/4 140/286/4 147/292/4 -f 155/355/6 157/293/6 156/295/6 -l 2 3 -l 4 1 -l 3 4 -l 6 7 -l 7 8 -l 5 6 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr0.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr0.obj new file mode 100644 index 0000000..ad7ec3e --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr0.obj @@ -0,0 +1,859 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_top_smr0.mtl +o HsVsAnzOben_Cube.001 +v 0.028581 -0.505448 -0.325575 +v 0.028581 -0.505448 -0.439611 +v -0.028581 -0.505448 -0.439611 +v -0.028581 -0.505448 -0.439611 +v -0.028581 -0.301185 -0.439611 +v -0.028581 -0.301185 -0.496774 +v -0.028581 -0.174288 -0.439611 +v -0.028581 -0.174288 -0.496774 +v 0.028581 -0.505448 -0.496774 +v 0.028581 -0.301185 -0.496774 +v 0.028581 -0.301185 -0.439611 +v 0.028581 -0.174288 -0.496774 +v 0.028581 -0.174288 -0.439611 +v -0.028581 -0.505448 -0.496774 +v 0.028581 -0.505448 -0.439611 +v 0.028581 -0.505448 -0.268412 +v 0.028581 -0.301185 -0.268412 +v -0.028581 -0.301185 -0.268412 +v 0.028581 -0.174288 -0.268412 +v -0.028581 -0.174288 -0.268412 +v -0.028581 -0.505448 -0.325575 +v -0.028581 -0.301185 -0.325575 +v 0.028581 -0.301185 -0.325575 +v -0.028581 -0.505448 -0.268412 +v -0.028581 -0.174288 -0.325575 +v 0.028581 -0.505448 -0.325575 +v 0.028581 -0.174288 -0.325575 +v -0.028581 -0.505448 -0.325575 +v 0.138251 -0.045773 -0.444371 +v 0.138251 -0.070195 -0.541156 +v 0.138251 -0.064457 -0.541156 +v 0.000000 -0.045773 -0.444371 +v 0.000000 -0.210259 -0.444371 +v 0.138251 -0.210259 -0.444371 +v 0.138251 -0.098130 -0.541156 +v 0.138251 -0.210259 -0.541156 +v 0.114848 -0.210259 -0.541156 +v 0.114848 -0.045773 -0.541156 +v 0.107395 -0.045773 -0.541156 +v 0.107395 -0.064457 -0.541156 +v 0.107395 -0.064457 -0.597615 +v 0.000000 -0.064457 -0.597615 +v 0.000000 -0.064457 -0.541156 +v 0.114848 -0.064457 -0.541156 +v 0.114848 -0.064457 -0.597615 +v 0.138251 -0.045773 -0.541156 +v 0.114848 -0.098130 -0.566450 +v 0.114848 -0.210259 -0.566450 +v 0.107395 -0.210259 -0.566450 +v 0.107395 -0.070195 -0.597615 +v 0.000000 -0.070195 -0.597615 +v 0.114848 -0.070195 -0.597615 +v 0.107395 -0.070195 -0.541156 +v 0.107395 -0.080599 -0.597615 +v 0.000000 -0.070195 -0.541156 +v 0.114848 -0.070195 -0.541156 +v 0.114848 -0.080599 -0.541156 +v 0.114848 -0.080599 -0.597615 +v 0.107395 -0.080599 -0.541156 +v 0.107395 -0.098130 -0.566450 +v 0.000000 -0.080599 -0.541156 +v 0.138251 -0.080599 -0.541156 +v 0.107395 -0.098130 -0.541156 +v 0.114848 -0.098130 -0.541156 +v 0.000000 -0.098130 -0.541156 +v -0.138251 -0.098130 -0.541156 +v -0.138251 -0.210259 -0.444371 +v -0.138251 -0.045773 -0.444371 +v -0.114848 -0.210259 -0.541156 +v -0.138251 -0.210259 -0.541156 +v -0.107395 -0.045773 -0.541156 +v -0.107395 -0.064457 -0.597615 +v -0.107395 -0.064457 -0.541156 +v -0.114848 -0.064457 -0.597615 +v -0.114848 -0.064457 -0.541156 +v -0.114848 -0.045773 -0.541156 +v -0.138251 -0.064457 -0.541156 +v -0.138251 -0.045773 -0.541156 +v -0.114848 -0.070195 -0.541156 +v -0.138251 -0.070195 -0.541156 +v -0.107395 -0.210259 -0.566450 +v -0.114848 -0.210259 -0.566450 +v -0.114848 -0.098130 -0.566450 +v -0.107395 -0.070195 -0.597615 +v -0.114848 -0.070195 -0.597615 +v -0.107395 -0.080599 -0.597615 +v -0.107395 -0.070195 -0.541156 +v -0.114848 -0.080599 -0.597615 +v -0.114848 -0.080599 -0.541156 +v -0.107395 -0.098130 -0.566450 +v -0.107395 -0.080599 -0.541156 +v -0.138251 -0.080599 -0.541156 +v -0.107395 -0.098130 -0.541156 +v -0.114848 -0.098130 -0.541156 +v 0.138251 -0.322387 -0.541156 +v 0.138251 -0.374745 -0.444371 +v 0.000000 -0.374745 -0.444371 +v 0.107395 -0.374745 -0.541156 +v 0.000000 -0.356061 -0.566450 +v 0.107395 -0.356061 -0.566450 +v 0.107395 -0.356061 -0.541156 +v 0.000000 -0.356061 -0.541156 +v 0.114848 -0.356061 -0.566450 +v 0.114848 -0.356061 -0.541156 +v 0.114848 -0.374745 -0.541156 +v 0.138251 -0.356061 -0.541156 +v 0.138251 -0.374745 -0.541156 +v 0.114848 -0.350322 -0.541156 +v 0.138251 -0.350322 -0.541156 +v 0.114848 -0.322387 -0.566450 +v 0.000000 -0.350322 -0.566450 +v 0.107395 -0.350322 -0.566450 +v 0.114848 -0.350322 -0.566450 +v 0.107395 -0.339919 -0.566450 +v 0.107395 -0.350322 -0.541156 +v 0.000000 -0.350322 -0.541156 +v 0.114848 -0.339919 -0.566450 +v 0.114848 -0.339919 -0.541156 +v 0.107395 -0.322387 -0.566450 +v 0.107395 -0.339919 -0.541156 +v 0.000000 -0.339919 -0.541156 +v 0.138251 -0.339919 -0.541156 +v 0.107395 -0.322387 -0.541156 +v 0.114848 -0.322387 -0.541156 +v 0.000000 -0.322387 -0.541156 +v 0.107395 -0.210259 -0.541156 +v -0.138251 -0.374745 -0.444371 +v -0.138251 -0.350322 -0.541156 +v -0.138251 -0.356061 -0.541156 +v -0.138251 -0.322387 -0.541156 +v -0.114848 -0.374745 -0.541156 +v -0.107395 -0.374745 -0.541156 +v -0.107395 -0.356061 -0.541156 +v -0.107395 -0.356061 -0.566450 +v -0.114848 -0.356061 -0.541156 +v -0.114848 -0.356061 -0.566450 +v -0.138251 -0.374745 -0.541156 +v -0.114848 -0.350322 -0.541156 +v -0.114848 -0.322387 -0.566450 +v -0.107395 -0.350322 -0.566450 +v -0.114848 -0.350322 -0.566450 +v -0.107395 -0.350322 -0.541156 +v -0.107395 -0.339919 -0.566450 +v -0.114848 -0.339919 -0.541156 +v -0.114848 -0.339919 -0.566450 +v -0.107395 -0.339919 -0.541156 +v -0.107395 -0.322387 -0.566450 +v -0.138251 -0.339919 -0.541156 +v -0.107395 -0.322387 -0.541156 +v -0.114848 -0.322387 -0.541156 +v -0.107395 -0.210259 -0.541156 +v 0.000000 -0.045773 -0.541156 +v 0.000000 -0.374745 -0.541156 +v 0.000000 -0.210259 -0.541156 +v 0.028581 -0.505448 -0.268412 +v 0.028581 -0.505448 -0.496774 +v -0.028581 -0.505448 -0.496774 +v -0.028581 -0.505448 -0.268412 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.454504 0.000000 +vt 0.454504 0.365068 +vt 0.363511 0.365068 +vt 0.454504 0.591862 +vt 0.363511 0.591862 +vt 0.000000 0.591862 +vt 0.000000 0.226795 +vt 0.090993 0.226795 +vt 0.000000 0.000000 +vt 0.090993 0.000000 +vt 0.727022 0.591862 +vt 0.727022 0.226794 +vt 0.818014 0.226794 +vt 0.727022 0.000000 +vt 0.818014 0.000000 +vt 0.909007 0.591862 +vt 0.909007 0.226794 +vt 1.000000 0.226794 +vt 0.909007 0.000000 +vt 1.000000 0.000000 +vt 0.818014 0.591862 +vt 0.818014 0.226794 +vt 0.909007 0.226794 +vt 0.818014 0.000000 +vt 0.909007 0.000000 +vt 0.090993 0.956930 +vt 0.090993 0.591862 +vt 0.181986 0.591862 +vt 0.727022 0.000000 +vt 0.727021 0.365068 +vt 0.636029 0.365068 +vt 0.727022 0.591862 +vt 0.636029 0.591862 +vt 0.272518 0.591862 +vt 0.272518 0.226794 +vt 0.363511 0.226794 +vt 0.272518 0.000000 +vt 0.363511 0.000000 +vt 0.272979 0.591862 +vt 0.272979 0.795673 +vt 0.000000 0.897836 +vt 0.000000 0.694026 +vt 0.090993 0.694026 +vt 0.090993 0.897836 +vt 0.090993 1.000000 +vt 0.000000 0.591862 +vt 0.090993 0.591862 +vt 0.000000 0.000000 +vt 0.363511 0.000000 +vt 0.090993 0.591862 +vt 0.818014 0.591862 +vt 1.000000 0.591862 +vt 0.909007 0.591862 +vt 0.181986 0.956930 +vt 0.636029 0.000000 +vt 0.363511 0.591862 +vt 0.181986 0.795673 +vt 0.000000 1.000000 +vt 0.415110 0.773242 +vt 0.522823 0.746062 +vt 0.522823 0.752448 +vt 0.502593 0.379785 +vt 0.502593 0.196728 +vt 0.656453 0.196728 +vt 0.013671 0.321517 +vt 0.013671 0.196729 +vt 0.039717 0.196729 +vt 0.550165 0.515419 +vt 0.584493 0.407128 +vt 0.584498 0.407728 +vt 0.713615 0.930837 +vt 0.713615 0.868004 +vt 0.833135 0.868004 +vt 0.048011 0.379786 +vt 0.048011 0.358992 +vt 0.167531 0.358992 +vt 0.705321 0.930837 +vt 0.705321 0.868004 +vt 0.039717 0.379786 +vt 0.039717 0.358992 +vt 0.013671 0.379786 +vt 0.013671 0.358992 +vt 0.013671 0.352606 +vt 0.683795 0.138459 +vt 0.683795 0.013671 +vt 0.692089 0.013671 +vt 0.692089 0.196218 +vt 0.692089 0.189831 +vt 0.811609 0.189831 +vt 0.683795 0.196217 +vt 0.683795 0.189831 +vt 0.231660 0.902101 +vt 0.168828 0.902101 +vt 0.168828 0.890523 +vt 0.379473 0.890759 +vt 0.379473 0.953592 +vt 0.259953 0.953592 +vt 0.838951 0.169548 +vt 0.901784 0.169548 +vt 0.901784 0.175935 +vt 0.838951 0.013671 +vt 0.867101 0.013671 +vt 0.867101 0.138460 +vt 0.838951 0.157970 +vt 0.901784 0.157970 +vt 0.231660 0.890524 +vt 0.203511 0.871013 +vt 0.683795 0.178253 +vt 0.692089 0.178253 +vt 0.013671 0.718882 +vt 0.013671 0.707304 +vt 0.133191 0.707304 +vt 0.039717 0.352606 +vt 0.013671 0.341028 +vt 0.231660 0.871013 +vt 0.203511 0.746224 +vt 0.838951 0.138460 +vt 0.692089 0.138459 +vt 0.013671 0.687793 +vt 0.133191 0.687793 +vt 0.039717 0.321517 +vt 0.280055 0.714975 +vt 0.387767 0.590186 +vt 0.387767 0.773241 +vt 0.348734 0.196728 +vt 0.295345 0.196729 +vt 0.321391 0.196729 +vt 0.321391 0.321517 +vt 0.823492 0.407728 +vt 0.857825 0.515419 +vt 0.703995 0.515419 +vt 0.259953 0.800584 +vt 0.379473 0.800584 +vt 0.379473 0.863417 +vt 0.287052 0.358992 +vt 0.287052 0.379785 +vt 0.387767 0.800584 +vt 0.387767 0.863417 +vt 0.295346 0.358992 +vt 0.295346 0.379785 +vt 0.321391 0.358992 +vt 0.321391 0.379785 +vt 0.295346 0.352605 +vt 0.321391 0.352605 +vt 0.669684 0.678395 +vt 0.677978 0.678395 +vt 0.677978 0.803184 +vt 0.550165 0.854556 +vt 0.669683 0.854556 +vt 0.669683 0.860942 +vt 0.677977 0.854556 +vt 0.459990 0.806971 +vt 0.459990 0.800584 +vt 0.522823 0.800584 +vt 0.746628 0.367859 +vt 0.746628 0.379437 +vt 0.683795 0.379437 +vt 0.669685 0.951117 +vt 0.550165 0.951117 +vt 0.550165 0.888285 +vt 0.838951 0.365540 +vt 0.838951 0.359154 +vt 0.901784 0.359154 +vt 0.873634 0.328065 +vt 0.873634 0.203277 +vt 0.901784 0.203277 +vt 0.838951 0.347576 +vt 0.901784 0.347576 +vt 0.711945 0.348349 +vt 0.683795 0.367859 +vt 0.669683 0.842978 +vt 0.677978 0.842978 +vt 0.252711 0.707304 +vt 0.252711 0.718882 +vt 0.295346 0.341028 +vt 0.321391 0.341028 +vt 0.711945 0.223560 +vt 0.683795 0.348349 +vt 0.669684 0.803183 +vt 0.252711 0.687793 +vt 0.295346 0.321517 +vt 0.522822 0.465396 +vt 0.415110 0.590185 +vt 0.415110 0.407128 +vt 0.502593 0.013671 +vt 0.013671 0.071940 +vt 0.584498 0.650454 +vt 0.550165 0.542762 +vt 0.703995 0.542762 +vt 0.833135 0.986329 +vt 0.713615 0.986329 +vt 0.713615 0.958179 +vt 0.167532 0.034466 +vt 0.048011 0.034465 +vt 0.048011 0.013671 +vt 0.705321 0.986329 +vt 0.705321 0.958179 +vt 0.039717 0.034465 +vt 0.039717 0.013671 +vt 0.013671 0.034465 +vt 0.013672 0.013671 +vt 0.039717 0.040852 +vt 0.013671 0.040851 +vt 0.713615 0.840662 +vt 0.705321 0.840659 +vt 0.705364 0.715870 +vt 0.833187 0.684826 +vt 0.713669 0.684785 +vt 0.713671 0.678398 +vt 0.705374 0.684782 +vt 0.916024 0.689973 +vt 0.916024 0.678395 +vt 0.944174 0.678395 +vt 0.860477 0.923496 +vt 0.979997 0.923496 +vt 0.979997 0.951646 +vt 0.888681 0.678395 +vt 0.888681 0.684782 +vt 0.860532 0.684782 +vt 0.888681 0.715870 +vt 0.888681 0.840658 +vt 0.860532 0.840658 +vt 0.888681 0.696359 +vt 0.860532 0.696359 +vt 0.916024 0.709483 +vt 0.944174 0.689973 +vt 0.713665 0.696362 +vt 0.705370 0.696359 +vt 0.133191 0.418706 +vt 0.013671 0.418706 +vt 0.013671 0.407128 +vt 0.039717 0.052429 +vt 0.013671 0.052429 +vt 0.916024 0.834272 +vt 0.944174 0.709484 +vt 0.860532 0.715870 +vt 0.713658 0.715873 +vt 0.133191 0.438217 +vt 0.013671 0.438217 +vt 0.039717 0.071940 +vt 0.488140 0.878244 +vt 0.459990 0.878244 +vt 0.459990 0.869950 +vt 0.387767 0.407128 +vt 0.280054 0.434309 +vt 0.280054 0.427922 +vt 0.321390 0.071941 +vt 0.857825 0.542762 +vt 0.823497 0.651053 +vt 0.823492 0.650454 +vt 0.133191 0.935830 +vt 0.133191 0.963980 +vt 0.013671 0.963980 +vt 0.287051 0.013674 +vt 0.287052 0.034467 +vt 0.141485 0.935830 +vt 0.141485 0.963980 +vt 0.295345 0.013674 +vt 0.295345 0.034467 +vt 0.321390 0.013674 +vt 0.321390 0.034466 +vt 0.321390 0.040853 +vt 0.295345 0.040853 +vt 0.141485 0.783699 +vt 0.141485 0.908487 +vt 0.133191 0.908487 +vt 0.133191 0.746224 +vt 0.133191 0.752611 +vt 0.013671 0.752611 +vt 0.141485 0.746224 +vt 0.141485 0.752611 +vt 0.488140 0.911973 +vt 0.459990 0.911973 +vt 0.459990 0.905586 +vt 0.773970 0.223560 +vt 0.802120 0.223560 +vt 0.802120 0.235138 +vt 0.860477 0.896154 +vt 0.860477 0.868004 +vt 0.979997 0.868004 +vt 0.913317 0.413515 +vt 0.885167 0.413515 +vt 0.885167 0.407128 +vt 0.913317 0.569392 +vt 0.885167 0.569392 +vt 0.885167 0.444603 +vt 0.913317 0.425093 +vt 0.885167 0.425093 +vt 0.773970 0.235138 +vt 0.802120 0.254649 +vt 0.141485 0.764189 +vt 0.133191 0.764189 +vt 0.252711 0.407129 +vt 0.252711 0.418706 +vt 0.321390 0.052430 +vt 0.295345 0.052430 +vt 0.773970 0.254649 +vt 0.802120 0.379437 +vt 0.913317 0.444603 +vt 0.133191 0.783699 +vt 0.252711 0.438217 +vt 0.295345 0.071941 +vt 0.459990 0.842607 +vt 0.459990 0.834313 +vt 0.488140 0.834313 +vt 0.522823 0.773242 +vt 0.522823 0.714973 +vt 0.522823 0.734484 +vt 0.522823 0.590185 +vt 0.656453 0.379785 +vt 0.703995 0.407728 +vt 0.550165 0.407728 +vt 0.833135 0.930837 +vt 0.167531 0.379786 +vt 0.811609 0.196218 +vt 0.259953 0.890759 +vt 0.838951 0.175935 +vt 0.133191 0.718882 +vt 0.039717 0.341028 +vt 0.231660 0.746224 +vt 0.280055 0.773241 +vt 0.280055 0.752448 +vt 0.280055 0.746063 +vt 0.280055 0.734486 +vt 0.280054 0.590186 +vt 0.348734 0.379785 +vt 0.840658 0.407578 +vt 0.857825 0.407728 +vt 0.259953 0.863417 +vt 0.550165 0.860942 +vt 0.677977 0.860942 +vt 0.522823 0.806971 +vt 0.669685 0.888285 +vt 0.901784 0.365540 +vt 0.901784 0.328065 +vt 0.683795 0.223560 +vt 0.522822 0.407128 +vt 0.522822 0.427922 +vt 0.522822 0.434309 +vt 0.522822 0.445886 +vt 0.656453 0.013671 +vt 0.703995 0.650454 +vt 0.567332 0.650603 +vt 0.550165 0.650454 +vt 0.833135 0.958179 +vt 0.167533 0.013673 +vt 0.833189 0.678440 +vt 0.705377 0.678395 +vt 0.860477 0.951646 +vt 0.860532 0.678395 +vt 0.133191 0.407128 +vt 0.944174 0.834272 +vt 0.488140 0.869950 +vt 0.280054 0.407129 +vt 0.280054 0.465397 +vt 0.280054 0.445886 +vt 0.348734 0.013671 +vt 0.857825 0.650454 +vt 0.013671 0.935830 +vt 0.013671 0.746225 +vt 0.488140 0.905586 +vt 0.979997 0.896154 +vt 0.913317 0.407128 +vt 0.773970 0.379437 +vt 0.488140 0.842607 +vt 0.003906 1.011719 +vt 0.003906 0.500000 +vt 0.500000 0.500000 +vt 0.996094 0.500000 +vt 0.996094 1.011719 +vt 0.003906 -0.011719 +vt 0.996094 -0.011719 +vt 0.500000 1.011719 +vt 0.500000 -0.011719 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.8716 -0.4903 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Mast.011 +usemtl Mast.011 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 5/5/2 7/7/2 8/8/2 +f 9/9/3 10/10/3 11/11/3 +f 10/10/3 12/12/3 13/13/3 +f 14/14/4 6/15/4 10/16/4 +f 6/15/4 8/17/4 12/18/4 +f 15/19/5 11/20/5 5/21/5 +f 11/20/5 13/22/5 7/23/5 +f 16/24/5 17/25/5 18/26/5 +f 17/25/5 19/27/5 20/28/5 +f 21/29/4 22/30/4 23/31/4 +f 24/32/2 18/33/2 22/34/2 +f 18/33/2 20/35/2 25/36/2 +f 26/37/3 23/38/3 17/39/3 +f 23/38/3 27/40/3 19/41/3 +f 25/36/2 7/7/2 5/5/2 +f 23/31/6 22/42/6 5/43/6 +f 23/38/3 11/11/3 13/13/3 +f 27/44/1 13/45/1 7/46/1 +f 27/44/1 25/47/1 20/48/1 +f 13/45/1 12/49/1 8/50/1 +f 28/51/1 1/1/1 3/3/1 +f 14/52/2 4/4/2 6/6/2 +f 6/6/2 5/5/2 8/8/2 +f 15/53/3 9/9/3 11/11/3 +f 11/11/3 10/10/3 13/13/3 +f 9/54/4 14/14/4 10/16/4 +f 10/16/4 6/15/4 12/18/4 +f 4/55/5 15/19/5 5/21/5 +f 5/21/5 11/20/5 7/23/5 +f 24/56/5 16/24/5 18/26/5 +f 18/26/5 17/25/5 20/28/5 +f 26/57/4 21/29/4 23/31/4 +f 21/58/2 24/32/2 22/34/2 +f 22/34/2 18/33/2 25/36/2 +f 16/59/3 26/37/3 17/39/3 +f 17/39/3 23/38/3 19/41/3 +f 22/34/2 25/36/2 5/5/2 +f 11/60/6 23/31/6 5/43/6 +f 27/40/3 23/38/3 13/13/3 +f 25/47/1 27/44/1 7/46/1 +f 19/61/1 27/44/1 20/48/1 +f 7/46/1 13/45/1 8/50/1 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Schirm.011 +usemtl Schirm.011 +f 29/62/3 30/63/3 31/64/3 +f 32/65/5 33/66/5 34/67/5 +f 35/68/4 36/69/4 37/70/4 +f 29/71/1 38/72/1 39/73/1 +f 40/74/1 41/75/1 42/76/1 +f 39/77/4 40/78/4 43/79/4 +f 44/80/1 45/81/1 41/75/1 +f 38/82/4 44/83/4 40/78/4 +f 46/84/4 31/85/4 44/83/4 +f 44/83/4 31/85/4 30/86/4 +f 47/87/4 48/88/4 49/89/4 +f 41/90/4 50/91/4 51/92/4 +f 41/90/4 45/93/4 52/94/4 +f 53/95/2 50/96/2 54/97/2 +f 55/98/6 51/99/6 50/100/6 +f 56/101/3 52/102/3 45/103/3 +f 37/104/3 48/105/3 47/106/3 +f 57/107/3 58/108/3 52/102/3 +f 59/109/2 54/97/2 60/110/2 +f 52/94/4 58/111/4 54/112/4 +f 53/113/4 59/114/4 61/115/4 +f 56/116/4 30/86/4 62/117/4 +f 63/118/2 60/110/2 49/119/2 +f 57/107/3 64/120/3 47/106/3 +f 58/111/7 47/87/7 60/121/7 +f 59/114/4 63/122/4 65/123/4 +f 62/117/4 35/68/4 64/124/4 +f 66/125/2 67/126/2 68/127/2 +f 67/128/5 33/66/5 32/65/5 +f 69/129/4 70/130/4 66/131/4 +f 71/132/1 68/133/1 32/134/1 +f 42/135/1 72/136/1 73/137/1 +f 43/79/4 73/138/4 71/139/4 +f 72/136/1 74/140/1 75/141/1 +f 73/138/4 75/142/4 76/143/4 +f 75/142/4 77/144/4 78/145/4 +f 75/142/4 79/146/4 80/147/4 +f 81/148/4 82/149/4 83/150/4 +f 51/151/4 84/152/4 72/153/4 +f 72/153/4 84/152/4 85/154/4 +f 51/155/3 42/156/3 43/157/3 +f 86/158/3 84/159/3 87/160/3 +f 84/161/6 51/162/6 55/163/6 +f 74/164/2 85/165/2 79/166/2 +f 83/167/2 82/168/2 69/169/2 +f 85/165/2 88/170/2 89/171/2 +f 90/172/3 86/158/3 91/173/3 +f 86/174/4 88/175/4 85/154/4 +f 61/115/4 91/176/4 87/177/4 +f 79/146/4 89/178/4 92/179/4 +f 81/180/3 90/172/3 93/181/3 +f 89/171/2 88/170/2 83/167/2 +f 90/182/7 83/150/7 88/175/7 +f 65/123/4 93/183/4 91/176/4 +f 94/184/4 66/131/4 92/179/4 +f 95/185/3 34/186/3 96/187/3 +f 34/67/5 33/66/5 97/188/5 +f 37/70/4 36/69/4 95/189/4 +f 98/190/6 96/191/6 97/192/6 +f 99/193/6 100/194/6 101/195/6 +f 102/196/4 101/197/4 98/198/4 +f 100/194/6 103/199/6 104/200/6 +f 101/197/4 104/201/4 105/202/4 +f 104/201/4 106/203/4 107/204/4 +f 108/205/4 109/206/4 106/203/4 +f 49/207/4 48/208/4 110/209/4 +f 111/210/4 112/211/4 100/212/4 +f 100/212/4 112/211/4 113/213/4 +f 114/214/2 112/215/2 115/216/2 +f 112/217/1 111/218/1 116/219/1 +f 103/220/3 113/221/3 108/222/3 +f 110/223/3 48/224/3 37/225/3 +f 113/221/3 117/226/3 118/227/3 +f 119/228/2 114/214/2 120/229/2 +f 114/230/4 117/231/4 113/213/4 +f 121/232/4 120/233/4 115/234/4 +f 118/235/4 122/236/4 109/206/4 +f 49/237/2 119/228/2 123/238/2 +f 117/226/3 110/223/3 124/239/3 +f 119/240/4 110/209/4 117/231/4 +f 125/241/4 123/242/4 120/233/4 +f 124/243/4 95/189/4 122/236/4 +f 126/244/6 49/245/6 48/246/6 +f 127/247/2 128/248/2 129/249/2 +f 97/188/5 33/66/5 67/128/5 +f 130/250/4 70/130/4 69/129/4 +f 127/251/6 131/252/6 132/253/6 +f 133/254/6 134/255/6 99/256/6 +f 132/257/4 133/258/4 102/196/4 +f 135/259/6 136/260/6 134/255/6 +f 131/261/4 135/262/4 133/258/4 +f 137/263/4 129/264/4 135/262/4 +f 129/264/4 128/265/4 138/266/4 +f 139/267/4 82/268/4 81/269/4 +f 134/270/4 140/271/4 111/272/4 +f 134/270/4 136/273/4 141/274/4 +f 102/275/3 99/276/3 111/277/3 +f 142/278/3 140/279/3 143/280/3 +f 116/281/1 111/282/1 140/283/1 +f 138/284/2 141/285/2 136/286/2 +f 69/287/2 82/288/2 139/289/2 +f 144/290/2 145/291/2 141/285/2 +f 146/292/3 143/280/3 147/293/3 +f 141/274/4 145/294/4 143/295/4 +f 142/296/4 146/297/4 121/232/4 +f 128/265/4 148/298/4 144/299/4 +f 149/300/3 147/293/3 81/301/3 +f 150/302/2 139/289/2 145/291/2 +f 145/294/4 139/267/4 147/303/4 +f 146/297/4 149/304/4 125/241/4 +f 148/298/4 130/250/4 150/305/4 +f 82/306/6 81/307/6 151/308/6 +f 31/64/3 46/309/3 29/62/3 +f 29/62/3 35/310/3 62/311/3 +f 36/312/3 35/310/3 34/186/3 +f 62/311/3 30/63/3 29/62/3 +f 34/186/3 35/310/3 29/62/3 +f 29/313/5 32/65/5 34/67/5 +f 64/124/4 35/68/4 37/70/4 +f 39/73/1 152/314/1 32/134/1 +f 32/134/1 29/71/1 39/73/1 +f 46/315/1 38/72/1 29/71/1 +f 43/316/1 40/74/1 42/76/1 +f 152/317/4 39/77/4 43/79/4 +f 40/74/1 44/80/1 41/75/1 +f 39/77/4 38/82/4 40/78/4 +f 38/82/4 46/84/4 44/83/4 +f 56/116/4 44/83/4 30/86/4 +f 60/121/4 47/87/4 49/89/4 +f 42/318/4 41/90/4 51/92/4 +f 50/91/4 41/90/4 52/94/4 +f 59/109/2 53/95/2 54/97/2 +f 53/319/6 55/98/6 50/100/6 +f 44/320/3 56/101/3 45/103/3 +f 64/120/3 37/104/3 47/106/3 +f 56/101/3 57/107/3 52/102/3 +f 63/118/2 59/109/2 60/110/2 +f 50/91/4 52/94/4 54/112/4 +f 55/321/4 53/113/4 61/115/4 +f 57/322/4 56/116/4 62/117/4 +f 126/323/2 63/118/2 49/119/2 +f 58/108/3 57/107/3 47/106/3 +f 54/112/7 58/111/7 60/121/7 +f 61/115/4 59/114/4 65/123/4 +f 57/322/4 62/117/4 64/124/4 +f 68/127/2 78/324/2 77/325/2 +f 77/325/2 80/326/2 68/127/2 +f 92/327/2 66/125/2 68/127/2 +f 70/328/2 67/126/2 66/125/2 +f 68/127/2 80/326/2 92/327/2 +f 68/329/5 67/128/5 32/65/5 +f 94/184/4 69/129/4 66/131/4 +f 32/134/1 152/314/1 71/132/1 +f 71/132/1 76/330/1 68/133/1 +f 78/331/1 68/133/1 76/330/1 +f 43/332/1 42/135/1 73/137/1 +f 152/317/4 43/79/4 71/139/4 +f 73/137/1 72/136/1 75/141/1 +f 71/139/4 73/138/4 76/143/4 +f 76/143/4 75/142/4 78/145/4 +f 77/144/4 75/142/4 80/147/4 +f 90/182/4 81/148/4 83/150/4 +f 42/333/4 51/151/4 72/153/4 +f 74/334/4 72/153/4 85/154/4 +f 55/335/3 51/155/3 43/157/3 +f 91/173/3 86/158/3 87/160/3 +f 87/336/6 84/161/6 55/163/6 +f 75/337/2 74/164/2 79/166/2 +f 94/338/2 83/167/2 69/169/2 +f 79/166/2 85/165/2 89/171/2 +f 93/181/3 90/172/3 91/173/3 +f 84/152/4 86/174/4 85/154/4 +f 55/321/4 61/115/4 87/177/4 +f 80/147/4 79/146/4 92/179/4 +f 151/339/3 81/180/3 93/181/3 +f 94/338/2 89/171/2 83/167/2 +f 86/174/7 90/182/7 88/175/7 +f 61/115/4 65/123/4 91/176/4 +f 89/178/4 94/184/4 92/179/4 +f 96/187/3 107/340/3 106/341/3 +f 106/341/3 109/342/3 96/187/3 +f 122/343/3 95/185/3 96/187/3 +f 36/312/3 34/186/3 95/185/3 +f 96/187/3 109/342/3 122/343/3 +f 96/344/5 34/67/5 97/188/5 +f 124/243/4 37/70/4 95/189/4 +f 97/192/6 153/345/6 98/190/6 +f 98/190/6 105/346/6 96/191/6 +f 107/347/6 96/191/6 105/346/6 +f 102/348/6 99/193/6 101/195/6 +f 153/349/4 102/196/4 98/198/4 +f 101/195/6 100/194/6 104/200/6 +f 98/198/4 101/197/4 105/202/4 +f 105/202/4 104/201/4 107/204/4 +f 104/201/4 108/205/4 106/203/4 +f 119/240/4 49/207/4 110/209/4 +f 99/350/4 111/210/4 100/212/4 +f 103/351/4 100/212/4 113/213/4 +f 120/229/2 114/214/2 115/216/2 +f 115/352/1 112/217/1 116/219/1 +f 104/353/3 103/220/3 108/222/3 +f 124/239/3 110/223/3 37/225/3 +f 108/222/3 113/221/3 118/227/3 +f 123/238/2 119/228/2 120/229/2 +f 112/211/4 114/230/4 113/213/4 +f 116/354/4 121/232/4 115/234/4 +f 108/205/4 118/235/4 109/206/4 +f 126/355/2 49/237/2 123/238/2 +f 118/227/3 117/226/3 124/239/3 +f 114/230/4 119/240/4 117/231/4 +f 121/232/4 125/241/4 120/233/4 +f 118/235/4 124/243/4 122/236/4 +f 37/356/6 126/244/6 48/246/6 +f 129/249/2 137/357/2 127/247/2 +f 127/247/2 130/358/2 148/359/2 +f 70/328/2 130/358/2 67/126/2 +f 148/359/2 128/248/2 127/247/2 +f 67/126/2 130/358/2 127/247/2 +f 127/360/5 97/188/5 67/128/5 +f 150/305/4 130/250/4 69/129/4 +f 132/253/6 153/345/6 97/192/6 +f 97/192/6 127/251/6 132/253/6 +f 137/361/6 131/252/6 127/251/6 +f 102/362/6 133/254/6 99/256/6 +f 153/349/4 132/257/4 102/196/4 +f 133/254/6 135/259/6 134/255/6 +f 132/257/4 131/261/4 133/258/4 +f 131/261/4 137/263/4 135/262/4 +f 135/262/4 129/264/4 138/266/4 +f 147/303/4 139/267/4 81/269/4 +f 99/363/4 134/270/4 111/272/4 +f 140/271/4 134/270/4 141/274/4 +f 116/364/3 102/275/3 111/277/3 +f 146/292/3 142/278/3 143/280/3 +f 142/365/1 116/281/1 140/283/1 +f 135/366/2 138/284/2 136/286/2 +f 150/302/2 69/287/2 139/289/2 +f 138/284/2 144/290/2 141/285/2 +f 149/300/3 146/292/3 147/293/3 +f 140/271/4 141/274/4 143/295/4 +f 116/354/4 142/296/4 121/232/4 +f 138/266/4 128/265/4 144/299/4 +f 151/367/3 149/300/3 81/301/3 +f 144/290/2 150/302/2 145/291/2 +f 143/295/4 145/294/4 147/303/4 +f 121/232/4 146/297/4 125/241/4 +f 144/299/4 148/298/4 150/305/4 +f 69/368/6 82/306/6 151/308/6 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Anzeige.011 +usemtl Anzeige.011 +f 63/369/4 126/370/4 154/371/4 +f 154/371/4 151/372/4 93/373/4 +f 154/371/4 126/370/4 123/374/4 +f 149/375/4 151/372/4 154/371/4 +f 65/376/4 63/369/4 154/371/4 +f 65/376/4 154/371/4 93/373/4 +f 125/377/4 154/371/4 123/374/4 +f 125/377/4 149/375/4 154/371/4 +l 1 155 +l 156 2 +l 3 157 +l 155 158 +l 157 156 +l 158 28 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr30.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr30.obj new file mode 100644 index 0000000..037f0d4 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr30.obj @@ -0,0 +1,859 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_top_smr30.mtl +o HsVsAnzOben_Cube.001 +v 0.170849 -0.505448 -0.278615 +v 0.221732 -0.505448 -0.380670 +v 0.170575 -0.505448 -0.406176 +v 0.170575 -0.505448 -0.406176 +v 0.170575 -0.301185 -0.406176 +v 0.196081 -0.301185 -0.457333 +v 0.170575 -0.174288 -0.406176 +v 0.196081 -0.174288 -0.457333 +v 0.247238 -0.505448 -0.431827 +v 0.247238 -0.301185 -0.431827 +v 0.221732 -0.301185 -0.380670 +v 0.247238 -0.174288 -0.431827 +v 0.221732 -0.174288 -0.380670 +v 0.196081 -0.505448 -0.457333 +v 0.221732 -0.505448 -0.380670 +v 0.145343 -0.505448 -0.227458 +v 0.145343 -0.301185 -0.227458 +v 0.094187 -0.301185 -0.252964 +v 0.145343 -0.174288 -0.227458 +v 0.094187 -0.174288 -0.252964 +v 0.119693 -0.505448 -0.304121 +v 0.119693 -0.301185 -0.304121 +v 0.170849 -0.301185 -0.278615 +v 0.094187 -0.505448 -0.252964 +v 0.119693 -0.174288 -0.304121 +v 0.170849 -0.505448 -0.278615 +v 0.170849 -0.174288 -0.278615 +v 0.119693 -0.505448 -0.304121 +v 0.322003 -0.045773 -0.335996 +v 0.365188 -0.070195 -0.422612 +v 0.365188 -0.064457 -0.422612 +v 0.198277 -0.045773 -0.397683 +v 0.198277 -0.210259 -0.397683 +v 0.322003 -0.210259 -0.335996 +v 0.365188 -0.098130 -0.422612 +v 0.365188 -0.210259 -0.422612 +v 0.344244 -0.210259 -0.433054 +v 0.344244 -0.045773 -0.433054 +v 0.337574 -0.045773 -0.436380 +v 0.337574 -0.064457 -0.436380 +v 0.362766 -0.064457 -0.486907 +v 0.266654 -0.064457 -0.534826 +v 0.241463 -0.064457 -0.484299 +v 0.344244 -0.064457 -0.433054 +v 0.369436 -0.064457 -0.483581 +v 0.365188 -0.045773 -0.422612 +v 0.355530 -0.098130 -0.455691 +v 0.355530 -0.210259 -0.455691 +v 0.348860 -0.210259 -0.459016 +v 0.362766 -0.070195 -0.486907 +v 0.266654 -0.070195 -0.534826 +v 0.369436 -0.070195 -0.483581 +v 0.337574 -0.070195 -0.436380 +v 0.362766 -0.080599 -0.486907 +v 0.241463 -0.070195 -0.484299 +v 0.344244 -0.070195 -0.433054 +v 0.344244 -0.080599 -0.433054 +v 0.369436 -0.080599 -0.483581 +v 0.337574 -0.080599 -0.436380 +v 0.348860 -0.098130 -0.459016 +v 0.241463 -0.080599 -0.484299 +v 0.365188 -0.080599 -0.422612 +v 0.337574 -0.098130 -0.436380 +v 0.344244 -0.098130 -0.433054 +v 0.241463 -0.098130 -0.484299 +v 0.117737 -0.098130 -0.545986 +v 0.074552 -0.210259 -0.459370 +v 0.074552 -0.045773 -0.459370 +v 0.138681 -0.210259 -0.535544 +v 0.117737 -0.210259 -0.545986 +v 0.145351 -0.045773 -0.532219 +v 0.170543 -0.064457 -0.582746 +v 0.145351 -0.064457 -0.532219 +v 0.163873 -0.064457 -0.586071 +v 0.138681 -0.064457 -0.535544 +v 0.138681 -0.045773 -0.535544 +v 0.117737 -0.064457 -0.545986 +v 0.117737 -0.045773 -0.545986 +v 0.138681 -0.070195 -0.535544 +v 0.117737 -0.070195 -0.545986 +v 0.156637 -0.210259 -0.554855 +v 0.149967 -0.210259 -0.558180 +v 0.149967 -0.098130 -0.558180 +v 0.170543 -0.070195 -0.582746 +v 0.163873 -0.070195 -0.586071 +v 0.170543 -0.080599 -0.582746 +v 0.145351 -0.070195 -0.532219 +v 0.163873 -0.080599 -0.586071 +v 0.138681 -0.080599 -0.535544 +v 0.156637 -0.098130 -0.554855 +v 0.145351 -0.080599 -0.532219 +v 0.117737 -0.080599 -0.545986 +v 0.145351 -0.098130 -0.532219 +v 0.138681 -0.098130 -0.535544 +v 0.365188 -0.322387 -0.422612 +v 0.322003 -0.374745 -0.335996 +v 0.198277 -0.374745 -0.397683 +v 0.337574 -0.374745 -0.436380 +v 0.252749 -0.356061 -0.506936 +v 0.348860 -0.356061 -0.459016 +v 0.337574 -0.356061 -0.436380 +v 0.241463 -0.356061 -0.484299 +v 0.355530 -0.356061 -0.455691 +v 0.344244 -0.356061 -0.433054 +v 0.344244 -0.374745 -0.433054 +v 0.365188 -0.356061 -0.422612 +v 0.365188 -0.374745 -0.422612 +v 0.344244 -0.350322 -0.433054 +v 0.365188 -0.350322 -0.422612 +v 0.355530 -0.322387 -0.455691 +v 0.252749 -0.350322 -0.506936 +v 0.348860 -0.350322 -0.459016 +v 0.355530 -0.350322 -0.455691 +v 0.348860 -0.339919 -0.459016 +v 0.337574 -0.350322 -0.436380 +v 0.241463 -0.350322 -0.484299 +v 0.355530 -0.339919 -0.455691 +v 0.344244 -0.339919 -0.433054 +v 0.348860 -0.322387 -0.459016 +v 0.337574 -0.339919 -0.436380 +v 0.241463 -0.339919 -0.484299 +v 0.365188 -0.339919 -0.422612 +v 0.337574 -0.322387 -0.436380 +v 0.344244 -0.322387 -0.433054 +v 0.241463 -0.322387 -0.484299 +v 0.337574 -0.210259 -0.436380 +v 0.074552 -0.374745 -0.459370 +v 0.117737 -0.350322 -0.545986 +v 0.117737 -0.356061 -0.545986 +v 0.117737 -0.322387 -0.545986 +v 0.138681 -0.374745 -0.535544 +v 0.145351 -0.374745 -0.532219 +v 0.145351 -0.356061 -0.532219 +v 0.156637 -0.356061 -0.554855 +v 0.138681 -0.356061 -0.535544 +v 0.149967 -0.356061 -0.558180 +v 0.117737 -0.374745 -0.545986 +v 0.138681 -0.350322 -0.535544 +v 0.149967 -0.322387 -0.558180 +v 0.156637 -0.350322 -0.554855 +v 0.149967 -0.350322 -0.558180 +v 0.145351 -0.350322 -0.532219 +v 0.156637 -0.339919 -0.554855 +v 0.138681 -0.339919 -0.535544 +v 0.149967 -0.339919 -0.558180 +v 0.145351 -0.339919 -0.532219 +v 0.156637 -0.322387 -0.554855 +v 0.117737 -0.339919 -0.545986 +v 0.145351 -0.322387 -0.532219 +v 0.138681 -0.322387 -0.535544 +v 0.145351 -0.210259 -0.532219 +v 0.241463 -0.045773 -0.484299 +v 0.241463 -0.374745 -0.484299 +v 0.241463 -0.210259 -0.484299 +v 0.145343 -0.505448 -0.227458 +v 0.247238 -0.505448 -0.431827 +v 0.196081 -0.505448 -0.457333 +v 0.094187 -0.505448 -0.252964 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.454504 0.000000 +vt 0.454504 0.365068 +vt 0.363511 0.365068 +vt 0.454504 0.591862 +vt 0.363511 0.591862 +vt 0.000000 0.591862 +vt 0.000000 0.226795 +vt 0.090993 0.226795 +vt 0.000000 0.000000 +vt 0.090993 0.000000 +vt 0.727022 0.591862 +vt 0.727022 0.226794 +vt 0.818014 0.226794 +vt 0.727022 0.000000 +vt 0.818014 0.000000 +vt 0.909007 0.591862 +vt 0.909007 0.226794 +vt 1.000000 0.226794 +vt 0.909007 0.000000 +vt 1.000000 0.000000 +vt 0.818014 0.591862 +vt 0.818014 0.226794 +vt 0.909007 0.226794 +vt 0.818014 0.000000 +vt 0.909007 0.000000 +vt 0.090993 0.956930 +vt 0.090993 0.591862 +vt 0.181986 0.591862 +vt 0.727022 0.000000 +vt 0.727021 0.365068 +vt 0.636029 0.365068 +vt 0.727022 0.591862 +vt 0.636029 0.591862 +vt 0.272518 0.591862 +vt 0.272518 0.226794 +vt 0.363511 0.226794 +vt 0.272518 0.000000 +vt 0.363511 0.000000 +vt 0.272979 0.591862 +vt 0.272979 0.795673 +vt 0.000000 0.897836 +vt 0.000000 0.694026 +vt 0.090993 0.694026 +vt 0.090993 0.897836 +vt 0.090993 1.000000 +vt 0.000000 0.591862 +vt 0.090993 0.591862 +vt 0.000000 0.000000 +vt 0.363511 0.000000 +vt 0.090993 0.591862 +vt 0.818014 0.591862 +vt 1.000000 0.591862 +vt 0.909007 0.591862 +vt 0.181986 0.956930 +vt 0.636029 0.000000 +vt 0.363511 0.591862 +vt 0.181986 0.795673 +vt 0.000000 1.000000 +vt 0.415110 0.773242 +vt 0.522823 0.746062 +vt 0.522823 0.752448 +vt 0.502593 0.379785 +vt 0.502593 0.196728 +vt 0.656453 0.196728 +vt 0.013671 0.321517 +vt 0.013671 0.196729 +vt 0.039717 0.196729 +vt 0.550165 0.515419 +vt 0.584493 0.407128 +vt 0.584498 0.407728 +vt 0.713615 0.930837 +vt 0.713615 0.868004 +vt 0.833135 0.868004 +vt 0.048011 0.379786 +vt 0.048011 0.358992 +vt 0.167531 0.358992 +vt 0.705321 0.930837 +vt 0.705321 0.868004 +vt 0.039717 0.379786 +vt 0.039717 0.358992 +vt 0.013671 0.379786 +vt 0.013671 0.358992 +vt 0.013671 0.352606 +vt 0.683795 0.138459 +vt 0.683795 0.013671 +vt 0.692089 0.013671 +vt 0.692089 0.196218 +vt 0.692089 0.189831 +vt 0.811609 0.189831 +vt 0.683795 0.196217 +vt 0.683795 0.189831 +vt 0.231660 0.902101 +vt 0.168828 0.902101 +vt 0.168828 0.890523 +vt 0.379473 0.890759 +vt 0.379473 0.953592 +vt 0.259953 0.953592 +vt 0.838951 0.169548 +vt 0.901784 0.169548 +vt 0.901784 0.175935 +vt 0.838951 0.013671 +vt 0.867101 0.013671 +vt 0.867101 0.138460 +vt 0.838951 0.157970 +vt 0.901784 0.157970 +vt 0.231660 0.890524 +vt 0.203511 0.871013 +vt 0.683795 0.178253 +vt 0.692089 0.178253 +vt 0.013671 0.718882 +vt 0.013671 0.707304 +vt 0.133191 0.707304 +vt 0.039717 0.352606 +vt 0.013671 0.341028 +vt 0.231660 0.871013 +vt 0.203511 0.746224 +vt 0.838951 0.138460 +vt 0.692089 0.138459 +vt 0.013671 0.687793 +vt 0.133191 0.687793 +vt 0.039717 0.321517 +vt 0.280055 0.714975 +vt 0.387767 0.590186 +vt 0.387767 0.773241 +vt 0.348734 0.196728 +vt 0.295345 0.196729 +vt 0.321391 0.196729 +vt 0.321391 0.321517 +vt 0.823492 0.407728 +vt 0.857825 0.515419 +vt 0.703995 0.515419 +vt 0.259953 0.800584 +vt 0.379473 0.800584 +vt 0.379473 0.863417 +vt 0.287052 0.358992 +vt 0.287052 0.379785 +vt 0.387767 0.800584 +vt 0.387767 0.863417 +vt 0.295346 0.358992 +vt 0.295346 0.379785 +vt 0.321391 0.358992 +vt 0.321391 0.379785 +vt 0.295346 0.352605 +vt 0.321391 0.352605 +vt 0.669684 0.678395 +vt 0.677978 0.678395 +vt 0.677978 0.803184 +vt 0.550165 0.854556 +vt 0.669683 0.854556 +vt 0.669683 0.860942 +vt 0.677977 0.854556 +vt 0.459990 0.806971 +vt 0.459990 0.800584 +vt 0.522823 0.800584 +vt 0.746628 0.367859 +vt 0.746628 0.379437 +vt 0.683795 0.379437 +vt 0.669685 0.951117 +vt 0.550165 0.951117 +vt 0.550165 0.888285 +vt 0.838951 0.365540 +vt 0.838951 0.359154 +vt 0.901784 0.359154 +vt 0.873634 0.328065 +vt 0.873634 0.203277 +vt 0.901784 0.203277 +vt 0.838951 0.347576 +vt 0.901784 0.347576 +vt 0.711945 0.348349 +vt 0.683795 0.367859 +vt 0.669683 0.842978 +vt 0.677978 0.842978 +vt 0.252711 0.707304 +vt 0.252711 0.718882 +vt 0.295346 0.341028 +vt 0.321391 0.341028 +vt 0.711945 0.223560 +vt 0.683795 0.348349 +vt 0.669684 0.803183 +vt 0.252711 0.687793 +vt 0.295346 0.321517 +vt 0.522822 0.465396 +vt 0.415110 0.590185 +vt 0.415110 0.407128 +vt 0.502593 0.013671 +vt 0.013671 0.071940 +vt 0.584498 0.650454 +vt 0.550165 0.542762 +vt 0.703995 0.542762 +vt 0.833135 0.986329 +vt 0.713615 0.986329 +vt 0.713615 0.958179 +vt 0.167532 0.034466 +vt 0.048011 0.034465 +vt 0.048011 0.013671 +vt 0.705321 0.986329 +vt 0.705321 0.958179 +vt 0.039717 0.034465 +vt 0.039717 0.013671 +vt 0.013671 0.034465 +vt 0.013672 0.013671 +vt 0.039717 0.040852 +vt 0.013671 0.040851 +vt 0.713615 0.840662 +vt 0.705321 0.840659 +vt 0.705364 0.715870 +vt 0.833187 0.684826 +vt 0.713669 0.684785 +vt 0.713671 0.678398 +vt 0.705374 0.684782 +vt 0.916024 0.689973 +vt 0.916024 0.678395 +vt 0.944174 0.678395 +vt 0.860477 0.923496 +vt 0.979997 0.923496 +vt 0.979997 0.951646 +vt 0.888681 0.678395 +vt 0.888681 0.684782 +vt 0.860532 0.684782 +vt 0.888681 0.715870 +vt 0.888681 0.840658 +vt 0.860532 0.840658 +vt 0.888681 0.696359 +vt 0.860532 0.696359 +vt 0.916024 0.709483 +vt 0.944174 0.689973 +vt 0.713665 0.696362 +vt 0.705370 0.696359 +vt 0.133191 0.418706 +vt 0.013671 0.418706 +vt 0.013671 0.407128 +vt 0.039717 0.052429 +vt 0.013671 0.052429 +vt 0.916024 0.834272 +vt 0.944174 0.709484 +vt 0.860532 0.715870 +vt 0.713658 0.715873 +vt 0.133191 0.438217 +vt 0.013671 0.438217 +vt 0.039717 0.071940 +vt 0.488140 0.878244 +vt 0.459990 0.878244 +vt 0.459990 0.869950 +vt 0.387767 0.407128 +vt 0.280054 0.434309 +vt 0.280054 0.427922 +vt 0.321390 0.071941 +vt 0.857825 0.542762 +vt 0.823497 0.651053 +vt 0.823492 0.650454 +vt 0.133191 0.935830 +vt 0.133191 0.963980 +vt 0.013671 0.963980 +vt 0.287051 0.013674 +vt 0.287052 0.034467 +vt 0.141485 0.935830 +vt 0.141485 0.963980 +vt 0.295345 0.013674 +vt 0.295345 0.034467 +vt 0.321390 0.013674 +vt 0.321390 0.034466 +vt 0.321390 0.040853 +vt 0.295345 0.040853 +vt 0.141485 0.783699 +vt 0.141485 0.908487 +vt 0.133191 0.908487 +vt 0.133191 0.746224 +vt 0.133191 0.752611 +vt 0.013671 0.752611 +vt 0.141485 0.746224 +vt 0.141485 0.752611 +vt 0.488140 0.911973 +vt 0.459990 0.911973 +vt 0.459990 0.905586 +vt 0.773970 0.223560 +vt 0.802120 0.223560 +vt 0.802120 0.235138 +vt 0.860477 0.896154 +vt 0.860477 0.868004 +vt 0.979997 0.868004 +vt 0.913317 0.413515 +vt 0.885167 0.413515 +vt 0.885167 0.407128 +vt 0.913317 0.569392 +vt 0.885167 0.569392 +vt 0.885167 0.444603 +vt 0.913317 0.425093 +vt 0.885167 0.425093 +vt 0.773970 0.235138 +vt 0.802120 0.254649 +vt 0.141485 0.764189 +vt 0.133191 0.764189 +vt 0.252711 0.407129 +vt 0.252711 0.418706 +vt 0.321390 0.052430 +vt 0.295345 0.052430 +vt 0.773970 0.254649 +vt 0.802120 0.379437 +vt 0.913317 0.444603 +vt 0.133191 0.783699 +vt 0.252711 0.438217 +vt 0.295345 0.071941 +vt 0.459990 0.842607 +vt 0.459990 0.834313 +vt 0.488140 0.834313 +vt 0.522823 0.773242 +vt 0.522823 0.714973 +vt 0.522823 0.734484 +vt 0.522823 0.590185 +vt 0.656453 0.379785 +vt 0.703995 0.407728 +vt 0.550165 0.407728 +vt 0.833135 0.930837 +vt 0.167531 0.379786 +vt 0.811609 0.196218 +vt 0.259953 0.890759 +vt 0.838951 0.175935 +vt 0.133191 0.718882 +vt 0.039717 0.341028 +vt 0.231660 0.746224 +vt 0.280055 0.773241 +vt 0.280055 0.752448 +vt 0.280055 0.746063 +vt 0.280055 0.734486 +vt 0.280054 0.590186 +vt 0.348734 0.379785 +vt 0.840658 0.407578 +vt 0.857825 0.407728 +vt 0.259953 0.863417 +vt 0.550165 0.860942 +vt 0.677977 0.860942 +vt 0.522823 0.806971 +vt 0.669685 0.888285 +vt 0.901784 0.365540 +vt 0.901784 0.328065 +vt 0.683795 0.223560 +vt 0.522822 0.407128 +vt 0.522822 0.427922 +vt 0.522822 0.434309 +vt 0.522822 0.445886 +vt 0.656453 0.013671 +vt 0.703995 0.650454 +vt 0.567332 0.650603 +vt 0.550165 0.650454 +vt 0.833135 0.958179 +vt 0.167533 0.013673 +vt 0.833189 0.678440 +vt 0.705377 0.678395 +vt 0.860477 0.951646 +vt 0.860532 0.678395 +vt 0.133191 0.407128 +vt 0.944174 0.834272 +vt 0.488140 0.869950 +vt 0.280054 0.407129 +vt 0.280054 0.465397 +vt 0.280054 0.445886 +vt 0.348734 0.013671 +vt 0.857825 0.650454 +vt 0.013671 0.935830 +vt 0.013671 0.746225 +vt 0.488140 0.905586 +vt 0.979997 0.896154 +vt 0.913317 0.407128 +vt 0.773970 0.379437 +vt 0.488140 0.842607 +vt 0.003906 1.011719 +vt 0.003906 0.500000 +vt 0.500000 0.500000 +vt 0.996094 0.500000 +vt 0.996094 1.011719 +vt 0.003906 -0.011719 +vt 0.996094 -0.011719 +vt 0.500000 1.011719 +vt 0.500000 -0.011719 +vn 0.0000 1.0000 -0.0000 +vn -0.8949 0.0000 -0.4462 +vn 0.8949 0.0000 0.4462 +vn 0.4462 0.0000 -0.8949 +vn -0.4462 0.0000 0.8949 +vn 0.0000 -1.0000 -0.0000 +vn 0.2188 -0.8716 -0.4388 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Mast.011 +usemtl Mast.011 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 5/5/2 7/7/2 8/8/2 +f 9/9/3 10/10/3 11/11/3 +f 10/10/3 12/12/3 13/13/3 +f 14/14/4 6/15/4 10/16/4 +f 6/15/4 8/17/4 12/18/4 +f 15/19/5 11/20/5 5/21/5 +f 11/20/5 13/22/5 7/23/5 +f 16/24/5 17/25/5 18/26/5 +f 17/25/5 19/27/5 20/28/5 +f 21/29/4 22/30/4 23/31/4 +f 24/32/2 18/33/2 22/34/2 +f 18/33/2 20/35/2 25/36/2 +f 26/37/3 23/38/3 17/39/3 +f 23/38/3 27/40/3 19/41/3 +f 25/36/2 7/7/2 5/5/2 +f 23/31/6 22/42/6 5/43/6 +f 23/38/3 11/11/3 13/13/3 +f 27/44/1 13/45/1 7/46/1 +f 27/44/1 25/47/1 20/48/1 +f 13/45/1 12/49/1 8/50/1 +f 28/51/1 1/1/1 3/3/1 +f 14/52/2 4/4/2 6/6/2 +f 6/6/2 5/5/2 8/8/2 +f 15/53/3 9/9/3 11/11/3 +f 11/11/3 10/10/3 13/13/3 +f 9/54/4 14/14/4 10/16/4 +f 10/16/4 6/15/4 12/18/4 +f 4/55/5 15/19/5 5/21/5 +f 5/21/5 11/20/5 7/23/5 +f 24/56/5 16/24/5 18/26/5 +f 18/26/5 17/25/5 20/28/5 +f 26/57/4 21/29/4 23/31/4 +f 21/58/2 24/32/2 22/34/2 +f 22/34/2 18/33/2 25/36/2 +f 16/59/3 26/37/3 17/39/3 +f 17/39/3 23/38/3 19/41/3 +f 22/34/2 25/36/2 5/5/2 +f 11/60/6 23/31/6 5/43/6 +f 27/40/3 23/38/3 13/13/3 +f 25/47/1 27/44/1 7/46/1 +f 19/61/1 27/44/1 20/48/1 +f 7/46/1 13/45/1 8/50/1 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Schirm.011 +usemtl Schirm.011 +f 29/62/3 30/63/3 31/64/3 +f 32/65/5 33/66/5 34/67/5 +f 35/68/4 36/69/4 37/70/4 +f 29/71/1 38/72/1 39/73/1 +f 40/74/1 41/75/1 42/76/1 +f 39/77/4 40/78/4 43/79/4 +f 44/80/1 45/81/1 41/75/1 +f 38/82/4 44/83/4 40/78/4 +f 46/84/4 31/85/4 44/83/4 +f 44/83/4 31/85/4 30/86/4 +f 47/87/4 48/88/4 49/89/4 +f 41/90/4 50/91/4 51/92/4 +f 41/90/4 45/93/4 52/94/4 +f 53/95/2 50/96/2 54/97/2 +f 55/98/6 51/99/6 50/100/6 +f 56/101/3 52/102/3 45/103/3 +f 37/104/3 48/105/3 47/106/3 +f 57/107/3 58/108/3 52/102/3 +f 59/109/2 54/97/2 60/110/2 +f 52/94/4 58/111/4 54/112/4 +f 53/113/4 59/114/4 61/115/4 +f 56/116/4 30/86/4 62/117/4 +f 63/118/2 60/110/2 49/119/2 +f 57/107/3 64/120/3 47/106/3 +f 58/111/7 47/87/7 60/121/7 +f 59/114/4 63/122/4 65/123/4 +f 62/117/4 35/68/4 64/124/4 +f 66/125/2 67/126/2 68/127/2 +f 67/128/5 33/66/5 32/65/5 +f 69/129/4 70/130/4 66/131/4 +f 71/132/1 68/133/1 32/134/1 +f 42/135/1 72/136/1 73/137/1 +f 43/79/4 73/138/4 71/139/4 +f 72/136/1 74/140/1 75/141/1 +f 73/138/4 75/142/4 76/143/4 +f 75/142/4 77/144/4 78/145/4 +f 75/142/4 79/146/4 80/147/4 +f 81/148/4 82/149/4 83/150/4 +f 51/151/4 84/152/4 72/153/4 +f 72/153/4 84/152/4 85/154/4 +f 51/155/3 42/156/3 43/157/3 +f 86/158/3 84/159/3 87/160/3 +f 84/161/6 51/162/6 55/163/6 +f 74/164/2 85/165/2 79/166/2 +f 83/167/2 82/168/2 69/169/2 +f 85/165/2 88/170/2 89/171/2 +f 90/172/3 86/158/3 91/173/3 +f 86/174/4 88/175/4 85/154/4 +f 61/115/4 91/176/4 87/177/4 +f 79/146/4 89/178/4 92/179/4 +f 81/180/3 90/172/3 93/181/3 +f 89/171/2 88/170/2 83/167/2 +f 90/182/7 83/150/7 88/175/7 +f 65/123/4 93/183/4 91/176/4 +f 94/184/4 66/131/4 92/179/4 +f 95/185/3 34/186/3 96/187/3 +f 34/67/5 33/66/5 97/188/5 +f 37/70/4 36/69/4 95/189/4 +f 98/190/6 96/191/6 97/192/6 +f 99/193/6 100/194/6 101/195/6 +f 102/196/4 101/197/4 98/198/4 +f 100/194/6 103/199/6 104/200/6 +f 101/197/4 104/201/4 105/202/4 +f 104/201/4 106/203/4 107/204/4 +f 108/205/4 109/206/4 106/203/4 +f 49/207/4 48/208/4 110/209/4 +f 111/210/4 112/211/4 100/212/4 +f 100/212/4 112/211/4 113/213/4 +f 114/214/2 112/215/2 115/216/2 +f 112/217/1 111/218/1 116/219/1 +f 103/220/3 113/221/3 108/222/3 +f 110/223/3 48/224/3 37/225/3 +f 113/221/3 117/226/3 118/227/3 +f 119/228/2 114/214/2 120/229/2 +f 114/230/4 117/231/4 113/213/4 +f 121/232/4 120/233/4 115/234/4 +f 118/235/4 122/236/4 109/206/4 +f 49/237/2 119/228/2 123/238/2 +f 117/226/3 110/223/3 124/239/3 +f 119/240/4 110/209/4 117/231/4 +f 125/241/4 123/242/4 120/233/4 +f 124/243/4 95/189/4 122/236/4 +f 126/244/6 49/245/6 48/246/6 +f 127/247/2 128/248/2 129/249/2 +f 97/188/5 33/66/5 67/128/5 +f 130/250/4 70/130/4 69/129/4 +f 127/251/6 131/252/6 132/253/6 +f 133/254/6 134/255/6 99/256/6 +f 132/257/4 133/258/4 102/196/4 +f 135/259/6 136/260/6 134/255/6 +f 131/261/4 135/262/4 133/258/4 +f 137/263/4 129/264/4 135/262/4 +f 129/264/4 128/265/4 138/266/4 +f 139/267/4 82/268/4 81/269/4 +f 134/270/4 140/271/4 111/272/4 +f 134/270/4 136/273/4 141/274/4 +f 102/275/3 99/276/3 111/277/3 +f 142/278/3 140/279/3 143/280/3 +f 116/281/1 111/282/1 140/283/1 +f 138/284/2 141/285/2 136/286/2 +f 69/287/2 82/288/2 139/289/2 +f 144/290/2 145/291/2 141/285/2 +f 146/292/3 143/280/3 147/293/3 +f 141/274/4 145/294/4 143/295/4 +f 142/296/4 146/297/4 121/232/4 +f 128/265/4 148/298/4 144/299/4 +f 149/300/3 147/293/3 81/301/3 +f 150/302/2 139/289/2 145/291/2 +f 145/294/4 139/267/4 147/303/4 +f 146/297/4 149/304/4 125/241/4 +f 148/298/4 130/250/4 150/305/4 +f 82/306/6 81/307/6 151/308/6 +f 31/64/3 46/309/3 29/62/3 +f 29/62/3 35/310/3 62/311/3 +f 36/312/3 35/310/3 34/186/3 +f 62/311/3 30/63/3 29/62/3 +f 34/186/3 35/310/3 29/62/3 +f 29/313/5 32/65/5 34/67/5 +f 64/124/4 35/68/4 37/70/4 +f 39/73/1 152/314/1 32/134/1 +f 32/134/1 29/71/1 39/73/1 +f 46/315/1 38/72/1 29/71/1 +f 43/316/1 40/74/1 42/76/1 +f 152/317/4 39/77/4 43/79/4 +f 40/74/1 44/80/1 41/75/1 +f 39/77/4 38/82/4 40/78/4 +f 38/82/4 46/84/4 44/83/4 +f 56/116/4 44/83/4 30/86/4 +f 60/121/4 47/87/4 49/89/4 +f 42/318/4 41/90/4 51/92/4 +f 50/91/4 41/90/4 52/94/4 +f 59/109/2 53/95/2 54/97/2 +f 53/319/6 55/98/6 50/100/6 +f 44/320/3 56/101/3 45/103/3 +f 64/120/3 37/104/3 47/106/3 +f 56/101/3 57/107/3 52/102/3 +f 63/118/2 59/109/2 60/110/2 +f 50/91/4 52/94/4 54/112/4 +f 55/321/4 53/113/4 61/115/4 +f 57/322/4 56/116/4 62/117/4 +f 126/323/2 63/118/2 49/119/2 +f 58/108/3 57/107/3 47/106/3 +f 54/112/7 58/111/7 60/121/7 +f 61/115/4 59/114/4 65/123/4 +f 57/322/4 62/117/4 64/124/4 +f 68/127/2 78/324/2 77/325/2 +f 77/325/2 80/326/2 68/127/2 +f 92/327/2 66/125/2 68/127/2 +f 70/328/2 67/126/2 66/125/2 +f 68/127/2 80/326/2 92/327/2 +f 68/329/5 67/128/5 32/65/5 +f 94/184/4 69/129/4 66/131/4 +f 32/134/1 152/314/1 71/132/1 +f 71/132/1 76/330/1 68/133/1 +f 78/331/1 68/133/1 76/330/1 +f 43/332/1 42/135/1 73/137/1 +f 152/317/4 43/79/4 71/139/4 +f 73/137/1 72/136/1 75/141/1 +f 71/139/4 73/138/4 76/143/4 +f 76/143/4 75/142/4 78/145/4 +f 77/144/4 75/142/4 80/147/4 +f 90/182/4 81/148/4 83/150/4 +f 42/333/4 51/151/4 72/153/4 +f 74/334/4 72/153/4 85/154/4 +f 55/335/3 51/155/3 43/157/3 +f 91/173/3 86/158/3 87/160/3 +f 87/336/6 84/161/6 55/163/6 +f 75/337/2 74/164/2 79/166/2 +f 94/338/2 83/167/2 69/169/2 +f 79/166/2 85/165/2 89/171/2 +f 93/181/3 90/172/3 91/173/3 +f 84/152/4 86/174/4 85/154/4 +f 55/321/4 61/115/4 87/177/4 +f 80/147/4 79/146/4 92/179/4 +f 151/339/3 81/180/3 93/181/3 +f 94/338/2 89/171/2 83/167/2 +f 86/174/7 90/182/7 88/175/7 +f 61/115/4 65/123/4 91/176/4 +f 89/178/4 94/184/4 92/179/4 +f 96/187/3 107/340/3 106/341/3 +f 106/341/3 109/342/3 96/187/3 +f 122/343/3 95/185/3 96/187/3 +f 36/312/3 34/186/3 95/185/3 +f 96/187/3 109/342/3 122/343/3 +f 96/344/5 34/67/5 97/188/5 +f 124/243/4 37/70/4 95/189/4 +f 97/192/6 153/345/6 98/190/6 +f 98/190/6 105/346/6 96/191/6 +f 107/347/6 96/191/6 105/346/6 +f 102/348/6 99/193/6 101/195/6 +f 153/349/4 102/196/4 98/198/4 +f 101/195/6 100/194/6 104/200/6 +f 98/198/4 101/197/4 105/202/4 +f 105/202/4 104/201/4 107/204/4 +f 104/201/4 108/205/4 106/203/4 +f 119/240/4 49/207/4 110/209/4 +f 99/350/4 111/210/4 100/212/4 +f 103/351/4 100/212/4 113/213/4 +f 120/229/2 114/214/2 115/216/2 +f 115/352/1 112/217/1 116/219/1 +f 104/353/3 103/220/3 108/222/3 +f 124/239/3 110/223/3 37/225/3 +f 108/222/3 113/221/3 118/227/3 +f 123/238/2 119/228/2 120/229/2 +f 112/211/4 114/230/4 113/213/4 +f 116/354/4 121/232/4 115/234/4 +f 108/205/4 118/235/4 109/206/4 +f 126/355/2 49/237/2 123/238/2 +f 118/227/3 117/226/3 124/239/3 +f 114/230/4 119/240/4 117/231/4 +f 121/232/4 125/241/4 120/233/4 +f 118/235/4 124/243/4 122/236/4 +f 37/356/6 126/244/6 48/246/6 +f 129/249/2 137/357/2 127/247/2 +f 127/247/2 130/358/2 148/359/2 +f 70/328/2 130/358/2 67/126/2 +f 148/359/2 128/248/2 127/247/2 +f 67/126/2 130/358/2 127/247/2 +f 127/360/5 97/188/5 67/128/5 +f 150/305/4 130/250/4 69/129/4 +f 132/253/6 153/345/6 97/192/6 +f 97/192/6 127/251/6 132/253/6 +f 137/361/6 131/252/6 127/251/6 +f 102/362/6 133/254/6 99/256/6 +f 153/349/4 132/257/4 102/196/4 +f 133/254/6 135/259/6 134/255/6 +f 132/257/4 131/261/4 133/258/4 +f 131/261/4 137/263/4 135/262/4 +f 135/262/4 129/264/4 138/266/4 +f 147/303/4 139/267/4 81/269/4 +f 99/363/4 134/270/4 111/272/4 +f 140/271/4 134/270/4 141/274/4 +f 116/364/3 102/275/3 111/277/3 +f 146/292/3 142/278/3 143/280/3 +f 142/365/1 116/281/1 140/283/1 +f 135/366/2 138/284/2 136/286/2 +f 150/302/2 69/287/2 139/289/2 +f 138/284/2 144/290/2 141/285/2 +f 149/300/3 146/292/3 147/293/3 +f 140/271/4 141/274/4 143/295/4 +f 116/354/4 142/296/4 121/232/4 +f 138/266/4 128/265/4 144/299/4 +f 151/367/3 149/300/3 81/301/3 +f 144/290/2 150/302/2 145/291/2 +f 143/295/4 145/294/4 147/303/4 +f 121/232/4 146/297/4 125/241/4 +f 144/299/4 148/298/4 150/305/4 +f 69/368/6 82/306/6 151/308/6 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Anzeige.011 +usemtl Anzeige.011 +f 63/369/4 126/370/4 154/371/4 +f 154/371/4 151/372/4 93/373/4 +f 154/371/4 126/370/4 123/374/4 +f 149/375/4 151/372/4 154/371/4 +f 65/376/4 63/369/4 154/371/4 +f 65/376/4 154/371/4 93/373/4 +f 125/377/4 154/371/4 123/374/4 +f 125/377/4 149/375/4 154/371/4 +l 1 155 +l 156 2 +l 3 157 +l 155 158 +l 157 156 +l 158 28 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr45.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr45.obj new file mode 100644 index 0000000..2ba17df --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr45.obj @@ -0,0 +1,859 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_top_smr45.mtl +o HsVsAnzOben_Cube.001 +v 0.250426 -0.505448 -0.210006 +v 0.331062 -0.505448 -0.290642 +v 0.290642 -0.505448 -0.331062 +v 0.290642 -0.505448 -0.331062 +v 0.290642 -0.301185 -0.331062 +v 0.331062 -0.301185 -0.371482 +v 0.290642 -0.174288 -0.331062 +v 0.331062 -0.174288 -0.371482 +v 0.371482 -0.505448 -0.331062 +v 0.371482 -0.301185 -0.331062 +v 0.331062 -0.301185 -0.290642 +v 0.371482 -0.174288 -0.331062 +v 0.331062 -0.174288 -0.290642 +v 0.331062 -0.505448 -0.371482 +v 0.331062 -0.505448 -0.290642 +v 0.210006 -0.505448 -0.169586 +v 0.210006 -0.301185 -0.169586 +v 0.169586 -0.301185 -0.210006 +v 0.210006 -0.174288 -0.169586 +v 0.169586 -0.174288 -0.210006 +v 0.210006 -0.505448 -0.250426 +v 0.210006 -0.301185 -0.250426 +v 0.250426 -0.301185 -0.210006 +v 0.169586 -0.505448 -0.210006 +v 0.210006 -0.174288 -0.250426 +v 0.250426 -0.505448 -0.210006 +v 0.250426 -0.174288 -0.210006 +v 0.210006 -0.505448 -0.250426 +v 0.411976 -0.045773 -0.216460 +v 0.480413 -0.070195 -0.284897 +v 0.480413 -0.064457 -0.284897 +v 0.314218 -0.045773 -0.314218 +v 0.314218 -0.210259 -0.314218 +v 0.411976 -0.210259 -0.216460 +v 0.480413 -0.098130 -0.284897 +v 0.480413 -0.210259 -0.284897 +v 0.463865 -0.210259 -0.301445 +v 0.463865 -0.045773 -0.301445 +v 0.458595 -0.045773 -0.306715 +v 0.458595 -0.064457 -0.306715 +v 0.498517 -0.064457 -0.346638 +v 0.422578 -0.064457 -0.422578 +v 0.382655 -0.064457 -0.382655 +v 0.463865 -0.064457 -0.301445 +v 0.503787 -0.064457 -0.341368 +v 0.480413 -0.045773 -0.284897 +v 0.481750 -0.098130 -0.319331 +v 0.481750 -0.210259 -0.319331 +v 0.476480 -0.210259 -0.324601 +v 0.498517 -0.070195 -0.346638 +v 0.422578 -0.070195 -0.422578 +v 0.503787 -0.070195 -0.341368 +v 0.458595 -0.070195 -0.306715 +v 0.498517 -0.080599 -0.346638 +v 0.382655 -0.070195 -0.382655 +v 0.463865 -0.070195 -0.301445 +v 0.463865 -0.080599 -0.301445 +v 0.503787 -0.080599 -0.341368 +v 0.458595 -0.080599 -0.306715 +v 0.476480 -0.098130 -0.324601 +v 0.382655 -0.080599 -0.382655 +v 0.480413 -0.080599 -0.284897 +v 0.458595 -0.098130 -0.306715 +v 0.463865 -0.098130 -0.301445 +v 0.382655 -0.098130 -0.382655 +v 0.284897 -0.098130 -0.480413 +v 0.216460 -0.210259 -0.411976 +v 0.216460 -0.045773 -0.411976 +v 0.301445 -0.210259 -0.463865 +v 0.284897 -0.210259 -0.480413 +v 0.306715 -0.045773 -0.458595 +v 0.346638 -0.064457 -0.498517 +v 0.306715 -0.064457 -0.458595 +v 0.341368 -0.064457 -0.503787 +v 0.301445 -0.064457 -0.463865 +v 0.301445 -0.045773 -0.463865 +v 0.284897 -0.064457 -0.480413 +v 0.284897 -0.045773 -0.480413 +v 0.301445 -0.070195 -0.463865 +v 0.284897 -0.070195 -0.480413 +v 0.324601 -0.210259 -0.476480 +v 0.319331 -0.210259 -0.481750 +v 0.319331 -0.098130 -0.481750 +v 0.346638 -0.070195 -0.498517 +v 0.341368 -0.070195 -0.503787 +v 0.346638 -0.080599 -0.498517 +v 0.306715 -0.070195 -0.458595 +v 0.341368 -0.080599 -0.503787 +v 0.301445 -0.080599 -0.463865 +v 0.324601 -0.098130 -0.476480 +v 0.306715 -0.080599 -0.458595 +v 0.284897 -0.080599 -0.480413 +v 0.306715 -0.098130 -0.458595 +v 0.301445 -0.098130 -0.463865 +v 0.480413 -0.322387 -0.284897 +v 0.411976 -0.374745 -0.216460 +v 0.314218 -0.374745 -0.314218 +v 0.458595 -0.374745 -0.306715 +v 0.400541 -0.356061 -0.400541 +v 0.476480 -0.356061 -0.324601 +v 0.458595 -0.356061 -0.306715 +v 0.382655 -0.356061 -0.382655 +v 0.481750 -0.356061 -0.319331 +v 0.463865 -0.356061 -0.301445 +v 0.463865 -0.374745 -0.301445 +v 0.480413 -0.356061 -0.284897 +v 0.480413 -0.374745 -0.284897 +v 0.463865 -0.350322 -0.301445 +v 0.480413 -0.350322 -0.284897 +v 0.481750 -0.322387 -0.319331 +v 0.400541 -0.350322 -0.400541 +v 0.476480 -0.350322 -0.324601 +v 0.481750 -0.350322 -0.319331 +v 0.476480 -0.339919 -0.324601 +v 0.458595 -0.350322 -0.306715 +v 0.382655 -0.350322 -0.382655 +v 0.481750 -0.339919 -0.319331 +v 0.463865 -0.339919 -0.301445 +v 0.476480 -0.322387 -0.324601 +v 0.458595 -0.339919 -0.306715 +v 0.382655 -0.339919 -0.382655 +v 0.480413 -0.339919 -0.284897 +v 0.458595 -0.322387 -0.306715 +v 0.463865 -0.322387 -0.301445 +v 0.382655 -0.322387 -0.382655 +v 0.458595 -0.210259 -0.306715 +v 0.216460 -0.374745 -0.411976 +v 0.284897 -0.350322 -0.480413 +v 0.284897 -0.356061 -0.480413 +v 0.284897 -0.322387 -0.480413 +v 0.301445 -0.374745 -0.463865 +v 0.306715 -0.374745 -0.458595 +v 0.306715 -0.356061 -0.458595 +v 0.324601 -0.356061 -0.476480 +v 0.301445 -0.356061 -0.463865 +v 0.319331 -0.356061 -0.481750 +v 0.284897 -0.374745 -0.480413 +v 0.301445 -0.350322 -0.463865 +v 0.319331 -0.322387 -0.481750 +v 0.324601 -0.350322 -0.476480 +v 0.319331 -0.350322 -0.481750 +v 0.306715 -0.350322 -0.458595 +v 0.324601 -0.339919 -0.476480 +v 0.301445 -0.339919 -0.463865 +v 0.319331 -0.339919 -0.481750 +v 0.306715 -0.339919 -0.458595 +v 0.324601 -0.322387 -0.476480 +v 0.284897 -0.339919 -0.480413 +v 0.306715 -0.322387 -0.458595 +v 0.301445 -0.322387 -0.463865 +v 0.306715 -0.210259 -0.458595 +v 0.382655 -0.045773 -0.382655 +v 0.382655 -0.374745 -0.382655 +v 0.382655 -0.210259 -0.382655 +v 0.210006 -0.505448 -0.169586 +v 0.371482 -0.505448 -0.331062 +v 0.331062 -0.505448 -0.371482 +v 0.169586 -0.505448 -0.210006 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.454504 0.000000 +vt 0.454504 0.365068 +vt 0.363511 0.365068 +vt 0.454504 0.591862 +vt 0.363511 0.591862 +vt 0.000000 0.591862 +vt 0.000000 0.226795 +vt 0.090993 0.226795 +vt 0.000000 0.000000 +vt 0.090993 0.000000 +vt 0.727022 0.591862 +vt 0.727022 0.226794 +vt 0.818014 0.226794 +vt 0.727022 0.000000 +vt 0.818014 0.000000 +vt 0.909007 0.591862 +vt 0.909007 0.226794 +vt 1.000000 0.226794 +vt 0.909007 0.000000 +vt 1.000000 0.000000 +vt 0.818014 0.591862 +vt 0.818014 0.226794 +vt 0.909007 0.226794 +vt 0.818014 0.000000 +vt 0.909007 0.000000 +vt 0.090993 0.956930 +vt 0.090993 0.591862 +vt 0.181986 0.591862 +vt 0.727022 0.000000 +vt 0.727021 0.365068 +vt 0.636029 0.365068 +vt 0.727022 0.591862 +vt 0.636029 0.591862 +vt 0.272518 0.591862 +vt 0.272518 0.226794 +vt 0.363511 0.226794 +vt 0.272518 0.000000 +vt 0.363511 0.000000 +vt 0.272979 0.591862 +vt 0.272979 0.795673 +vt 0.000000 0.897836 +vt 0.000000 0.694026 +vt 0.090993 0.694026 +vt 0.090993 0.897836 +vt 0.090993 1.000000 +vt 0.000000 0.591862 +vt 0.090993 0.591862 +vt 0.000000 0.000000 +vt 0.363511 0.000000 +vt 0.090993 0.591862 +vt 0.818014 0.591862 +vt 1.000000 0.591862 +vt 0.909007 0.591862 +vt 0.181986 0.956930 +vt 0.636029 0.000000 +vt 0.363511 0.591862 +vt 0.181986 0.795673 +vt 0.000000 1.000000 +vt 0.415110 0.773242 +vt 0.522823 0.746062 +vt 0.522823 0.752448 +vt 0.502593 0.379785 +vt 0.502593 0.196728 +vt 0.656453 0.196728 +vt 0.013671 0.321517 +vt 0.013671 0.196729 +vt 0.039717 0.196729 +vt 0.550165 0.515419 +vt 0.584493 0.407128 +vt 0.584498 0.407728 +vt 0.713615 0.930837 +vt 0.713615 0.868004 +vt 0.833135 0.868004 +vt 0.048011 0.379786 +vt 0.048011 0.358992 +vt 0.167531 0.358992 +vt 0.705321 0.930837 +vt 0.705321 0.868004 +vt 0.039717 0.379786 +vt 0.039717 0.358992 +vt 0.013671 0.379786 +vt 0.013671 0.358992 +vt 0.013671 0.352606 +vt 0.683795 0.138459 +vt 0.683795 0.013671 +vt 0.692089 0.013671 +vt 0.692089 0.196218 +vt 0.692089 0.189831 +vt 0.811609 0.189831 +vt 0.683795 0.196217 +vt 0.683795 0.189831 +vt 0.231660 0.902101 +vt 0.168828 0.902101 +vt 0.168828 0.890523 +vt 0.379473 0.890759 +vt 0.379473 0.953592 +vt 0.259953 0.953592 +vt 0.838951 0.169548 +vt 0.901784 0.169548 +vt 0.901784 0.175935 +vt 0.838951 0.013671 +vt 0.867101 0.013671 +vt 0.867101 0.138460 +vt 0.838951 0.157970 +vt 0.901784 0.157970 +vt 0.231660 0.890524 +vt 0.203511 0.871013 +vt 0.683795 0.178253 +vt 0.692089 0.178253 +vt 0.013671 0.718882 +vt 0.013671 0.707304 +vt 0.133191 0.707304 +vt 0.039717 0.352606 +vt 0.013671 0.341028 +vt 0.231660 0.871013 +vt 0.203511 0.746224 +vt 0.838951 0.138460 +vt 0.692089 0.138459 +vt 0.013671 0.687793 +vt 0.133191 0.687793 +vt 0.039717 0.321517 +vt 0.280055 0.714975 +vt 0.387767 0.590186 +vt 0.387767 0.773241 +vt 0.348734 0.196728 +vt 0.295345 0.196729 +vt 0.321391 0.196729 +vt 0.321391 0.321517 +vt 0.823492 0.407728 +vt 0.857825 0.515419 +vt 0.703995 0.515419 +vt 0.259953 0.800584 +vt 0.379473 0.800584 +vt 0.379473 0.863417 +vt 0.287052 0.358992 +vt 0.287052 0.379785 +vt 0.387767 0.800584 +vt 0.387767 0.863417 +vt 0.295346 0.358992 +vt 0.295346 0.379785 +vt 0.321391 0.358992 +vt 0.321391 0.379785 +vt 0.295346 0.352605 +vt 0.321391 0.352605 +vt 0.669684 0.678395 +vt 0.677978 0.678395 +vt 0.677978 0.803184 +vt 0.550165 0.854556 +vt 0.669683 0.854556 +vt 0.669683 0.860942 +vt 0.677977 0.854556 +vt 0.459990 0.806971 +vt 0.459990 0.800584 +vt 0.522823 0.800584 +vt 0.746628 0.367859 +vt 0.746628 0.379437 +vt 0.683795 0.379437 +vt 0.669685 0.951117 +vt 0.550165 0.951117 +vt 0.550165 0.888285 +vt 0.838951 0.365540 +vt 0.838951 0.359154 +vt 0.901784 0.359154 +vt 0.873634 0.328065 +vt 0.873634 0.203277 +vt 0.901784 0.203277 +vt 0.838951 0.347576 +vt 0.901784 0.347576 +vt 0.711945 0.348349 +vt 0.683795 0.367859 +vt 0.669683 0.842978 +vt 0.677978 0.842978 +vt 0.252711 0.707304 +vt 0.252711 0.718882 +vt 0.295346 0.341028 +vt 0.321391 0.341028 +vt 0.711945 0.223560 +vt 0.683795 0.348349 +vt 0.669684 0.803183 +vt 0.252711 0.687793 +vt 0.295346 0.321517 +vt 0.522822 0.465396 +vt 0.415110 0.590185 +vt 0.415110 0.407128 +vt 0.502593 0.013671 +vt 0.013671 0.071940 +vt 0.584498 0.650454 +vt 0.550165 0.542762 +vt 0.703995 0.542762 +vt 0.833135 0.986329 +vt 0.713615 0.986329 +vt 0.713615 0.958179 +vt 0.167532 0.034466 +vt 0.048011 0.034465 +vt 0.048011 0.013671 +vt 0.705321 0.986329 +vt 0.705321 0.958179 +vt 0.039717 0.034465 +vt 0.039717 0.013671 +vt 0.013671 0.034465 +vt 0.013672 0.013671 +vt 0.039717 0.040852 +vt 0.013671 0.040851 +vt 0.713615 0.840662 +vt 0.705321 0.840659 +vt 0.705364 0.715870 +vt 0.833187 0.684826 +vt 0.713669 0.684785 +vt 0.713671 0.678398 +vt 0.705374 0.684782 +vt 0.916024 0.689973 +vt 0.916024 0.678395 +vt 0.944174 0.678395 +vt 0.860477 0.923496 +vt 0.979997 0.923496 +vt 0.979997 0.951646 +vt 0.888681 0.678395 +vt 0.888681 0.684782 +vt 0.860532 0.684782 +vt 0.888681 0.715870 +vt 0.888681 0.840658 +vt 0.860532 0.840658 +vt 0.888681 0.696359 +vt 0.860532 0.696359 +vt 0.916024 0.709483 +vt 0.944174 0.689973 +vt 0.713665 0.696362 +vt 0.705370 0.696359 +vt 0.133191 0.418706 +vt 0.013671 0.418706 +vt 0.013671 0.407128 +vt 0.039717 0.052429 +vt 0.013671 0.052429 +vt 0.916024 0.834272 +vt 0.944174 0.709484 +vt 0.860532 0.715870 +vt 0.713658 0.715873 +vt 0.133191 0.438217 +vt 0.013671 0.438217 +vt 0.039717 0.071940 +vt 0.488140 0.878244 +vt 0.459990 0.878244 +vt 0.459990 0.869950 +vt 0.387767 0.407128 +vt 0.280054 0.434309 +vt 0.280054 0.427922 +vt 0.321390 0.071941 +vt 0.857825 0.542762 +vt 0.823497 0.651053 +vt 0.823492 0.650454 +vt 0.133191 0.935830 +vt 0.133191 0.963980 +vt 0.013671 0.963980 +vt 0.287051 0.013674 +vt 0.287052 0.034467 +vt 0.141485 0.935830 +vt 0.141485 0.963980 +vt 0.295345 0.013674 +vt 0.295345 0.034467 +vt 0.321390 0.013674 +vt 0.321390 0.034466 +vt 0.321390 0.040853 +vt 0.295345 0.040853 +vt 0.141485 0.783699 +vt 0.141485 0.908487 +vt 0.133191 0.908487 +vt 0.133191 0.746224 +vt 0.133191 0.752611 +vt 0.013671 0.752611 +vt 0.141485 0.746224 +vt 0.141485 0.752611 +vt 0.488140 0.911973 +vt 0.459990 0.911973 +vt 0.459990 0.905586 +vt 0.773970 0.223560 +vt 0.802120 0.223560 +vt 0.802120 0.235138 +vt 0.860477 0.896154 +vt 0.860477 0.868004 +vt 0.979997 0.868004 +vt 0.913317 0.413515 +vt 0.885167 0.413515 +vt 0.885167 0.407128 +vt 0.913317 0.569392 +vt 0.885167 0.569392 +vt 0.885167 0.444603 +vt 0.913317 0.425093 +vt 0.885167 0.425093 +vt 0.773970 0.235138 +vt 0.802120 0.254649 +vt 0.141485 0.764189 +vt 0.133191 0.764189 +vt 0.252711 0.407129 +vt 0.252711 0.418706 +vt 0.321390 0.052430 +vt 0.295345 0.052430 +vt 0.773970 0.254649 +vt 0.802120 0.379437 +vt 0.913317 0.444603 +vt 0.133191 0.783699 +vt 0.252711 0.438217 +vt 0.295345 0.071941 +vt 0.459990 0.842607 +vt 0.459990 0.834313 +vt 0.488140 0.834313 +vt 0.522823 0.773242 +vt 0.522823 0.714973 +vt 0.522823 0.734484 +vt 0.522823 0.590185 +vt 0.656453 0.379785 +vt 0.703995 0.407728 +vt 0.550165 0.407728 +vt 0.833135 0.930837 +vt 0.167531 0.379786 +vt 0.811609 0.196218 +vt 0.259953 0.890759 +vt 0.838951 0.175935 +vt 0.133191 0.718882 +vt 0.039717 0.341028 +vt 0.231660 0.746224 +vt 0.280055 0.773241 +vt 0.280055 0.752448 +vt 0.280055 0.746063 +vt 0.280055 0.734486 +vt 0.280054 0.590186 +vt 0.348734 0.379785 +vt 0.840658 0.407578 +vt 0.857825 0.407728 +vt 0.259953 0.863417 +vt 0.550165 0.860942 +vt 0.677977 0.860942 +vt 0.522823 0.806971 +vt 0.669685 0.888285 +vt 0.901784 0.365540 +vt 0.901784 0.328065 +vt 0.683795 0.223560 +vt 0.522822 0.407128 +vt 0.522822 0.427922 +vt 0.522822 0.434309 +vt 0.522822 0.445886 +vt 0.656453 0.013671 +vt 0.703995 0.650454 +vt 0.567332 0.650603 +vt 0.550165 0.650454 +vt 0.833135 0.958179 +vt 0.167533 0.013673 +vt 0.833189 0.678440 +vt 0.705377 0.678395 +vt 0.860477 0.951646 +vt 0.860532 0.678395 +vt 0.133191 0.407128 +vt 0.944174 0.834272 +vt 0.488140 0.869950 +vt 0.280054 0.407129 +vt 0.280054 0.465397 +vt 0.280054 0.445886 +vt 0.348734 0.013671 +vt 0.857825 0.650454 +vt 0.013671 0.935830 +vt 0.013671 0.746225 +vt 0.488140 0.905586 +vt 0.979997 0.896154 +vt 0.913317 0.407128 +vt 0.773970 0.379437 +vt 0.488140 0.842607 +vt 0.003906 1.011719 +vt 0.003906 0.500000 +vt 0.500000 0.500000 +vt 0.996094 0.500000 +vt 0.996094 1.011719 +vt 0.003906 -0.011719 +vt 0.996094 -0.011719 +vt 0.500000 1.011719 +vt 0.500000 -0.011719 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 -0.0000 +vn 0.3467 -0.8716 -0.3467 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Mast.011 +usemtl Mast.011 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 5/5/2 7/7/2 8/8/2 +f 9/9/3 10/10/3 11/11/3 +f 10/10/3 12/12/3 13/13/3 +f 14/14/4 6/15/4 10/16/4 +f 6/15/4 8/17/4 12/18/4 +f 15/19/5 11/20/5 5/21/5 +f 11/20/5 13/22/5 7/23/5 +f 16/24/5 17/25/5 18/26/5 +f 17/25/5 19/27/5 20/28/5 +f 21/29/4 22/30/4 23/31/4 +f 24/32/2 18/33/2 22/34/2 +f 18/33/2 20/35/2 25/36/2 +f 26/37/3 23/38/3 17/39/3 +f 23/38/3 27/40/3 19/41/3 +f 25/36/2 7/7/2 5/5/2 +f 23/31/6 22/42/6 5/43/6 +f 23/38/3 11/11/3 13/13/3 +f 27/44/1 13/45/1 7/46/1 +f 27/44/1 25/47/1 20/48/1 +f 13/45/1 12/49/1 8/50/1 +f 28/51/1 1/1/1 3/3/1 +f 14/52/2 4/4/2 6/6/2 +f 6/6/2 5/5/2 8/8/2 +f 15/53/3 9/9/3 11/11/3 +f 11/11/3 10/10/3 13/13/3 +f 9/54/4 14/14/4 10/16/4 +f 10/16/4 6/15/4 12/18/4 +f 4/55/5 15/19/5 5/21/5 +f 5/21/5 11/20/5 7/23/5 +f 24/56/5 16/24/5 18/26/5 +f 18/26/5 17/25/5 20/28/5 +f 26/57/4 21/29/4 23/31/4 +f 21/58/2 24/32/2 22/34/2 +f 22/34/2 18/33/2 25/36/2 +f 16/59/3 26/37/3 17/39/3 +f 17/39/3 23/38/3 19/41/3 +f 22/34/2 25/36/2 5/5/2 +f 11/60/6 23/31/6 5/43/6 +f 27/40/3 23/38/3 13/13/3 +f 25/47/1 27/44/1 7/46/1 +f 19/61/1 27/44/1 20/48/1 +f 7/46/1 13/45/1 8/50/1 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Schirm.011 +usemtl Schirm.011 +f 29/62/3 30/63/3 31/64/3 +f 32/65/5 33/66/5 34/67/5 +f 35/68/4 36/69/4 37/70/4 +f 29/71/1 38/72/1 39/73/1 +f 40/74/1 41/75/1 42/76/1 +f 39/77/4 40/78/4 43/79/4 +f 44/80/1 45/81/1 41/75/1 +f 38/82/4 44/83/4 40/78/4 +f 46/84/4 31/85/4 44/83/4 +f 44/83/4 31/85/4 30/86/4 +f 47/87/4 48/88/4 49/89/4 +f 41/90/4 50/91/4 51/92/4 +f 41/90/4 45/93/4 52/94/4 +f 53/95/2 50/96/2 54/97/2 +f 55/98/6 51/99/6 50/100/6 +f 56/101/3 52/102/3 45/103/3 +f 37/104/3 48/105/3 47/106/3 +f 57/107/3 58/108/3 52/102/3 +f 59/109/2 54/97/2 60/110/2 +f 52/94/4 58/111/4 54/112/4 +f 53/113/4 59/114/4 61/115/4 +f 56/116/4 30/86/4 62/117/4 +f 63/118/2 60/110/2 49/119/2 +f 57/107/3 64/120/3 47/106/3 +f 58/111/7 47/87/7 60/121/7 +f 59/114/4 63/122/4 65/123/4 +f 62/117/4 35/68/4 64/124/4 +f 66/125/2 67/126/2 68/127/2 +f 67/128/5 33/66/5 32/65/5 +f 69/129/4 70/130/4 66/131/4 +f 71/132/1 68/133/1 32/134/1 +f 42/135/1 72/136/1 73/137/1 +f 43/79/4 73/138/4 71/139/4 +f 72/136/1 74/140/1 75/141/1 +f 73/138/4 75/142/4 76/143/4 +f 75/142/4 77/144/4 78/145/4 +f 75/142/4 79/146/4 80/147/4 +f 81/148/4 82/149/4 83/150/4 +f 51/151/4 84/152/4 72/153/4 +f 72/153/4 84/152/4 85/154/4 +f 51/155/3 42/156/3 43/157/3 +f 86/158/3 84/159/3 87/160/3 +f 84/161/6 51/162/6 55/163/6 +f 74/164/2 85/165/2 79/166/2 +f 83/167/2 82/168/2 69/169/2 +f 85/165/2 88/170/2 89/171/2 +f 90/172/3 86/158/3 91/173/3 +f 86/174/4 88/175/4 85/154/4 +f 61/115/4 91/176/4 87/177/4 +f 79/146/4 89/178/4 92/179/4 +f 81/180/3 90/172/3 93/181/3 +f 89/171/2 88/170/2 83/167/2 +f 90/182/7 83/150/7 88/175/7 +f 65/123/4 93/183/4 91/176/4 +f 94/184/4 66/131/4 92/179/4 +f 95/185/3 34/186/3 96/187/3 +f 34/67/5 33/66/5 97/188/5 +f 37/70/4 36/69/4 95/189/4 +f 98/190/6 96/191/6 97/192/6 +f 99/193/6 100/194/6 101/195/6 +f 102/196/4 101/197/4 98/198/4 +f 100/194/6 103/199/6 104/200/6 +f 101/197/4 104/201/4 105/202/4 +f 104/201/4 106/203/4 107/204/4 +f 108/205/4 109/206/4 106/203/4 +f 49/207/4 48/208/4 110/209/4 +f 111/210/4 112/211/4 100/212/4 +f 100/212/4 112/211/4 113/213/4 +f 114/214/2 112/215/2 115/216/2 +f 112/217/1 111/218/1 116/219/1 +f 103/220/3 113/221/3 108/222/3 +f 110/223/3 48/224/3 37/225/3 +f 113/221/3 117/226/3 118/227/3 +f 119/228/2 114/214/2 120/229/2 +f 114/230/4 117/231/4 113/213/4 +f 121/232/4 120/233/4 115/234/4 +f 118/235/4 122/236/4 109/206/4 +f 49/237/2 119/228/2 123/238/2 +f 117/226/3 110/223/3 124/239/3 +f 119/240/4 110/209/4 117/231/4 +f 125/241/4 123/242/4 120/233/4 +f 124/243/4 95/189/4 122/236/4 +f 126/244/6 49/245/6 48/246/6 +f 127/247/2 128/248/2 129/249/2 +f 97/188/5 33/66/5 67/128/5 +f 130/250/4 70/130/4 69/129/4 +f 127/251/6 131/252/6 132/253/6 +f 133/254/6 134/255/6 99/256/6 +f 132/257/4 133/258/4 102/196/4 +f 135/259/6 136/260/6 134/255/6 +f 131/261/4 135/262/4 133/258/4 +f 137/263/4 129/264/4 135/262/4 +f 129/264/4 128/265/4 138/266/4 +f 139/267/4 82/268/4 81/269/4 +f 134/270/4 140/271/4 111/272/4 +f 134/270/4 136/273/4 141/274/4 +f 102/275/3 99/276/3 111/277/3 +f 142/278/3 140/279/3 143/280/3 +f 116/281/1 111/282/1 140/283/1 +f 138/284/2 141/285/2 136/286/2 +f 69/287/2 82/288/2 139/289/2 +f 144/290/2 145/291/2 141/285/2 +f 146/292/3 143/280/3 147/293/3 +f 141/274/4 145/294/4 143/295/4 +f 142/296/4 146/297/4 121/232/4 +f 128/265/4 148/298/4 144/299/4 +f 149/300/3 147/293/3 81/301/3 +f 150/302/2 139/289/2 145/291/2 +f 145/294/4 139/267/4 147/303/4 +f 146/297/4 149/304/4 125/241/4 +f 148/298/4 130/250/4 150/305/4 +f 82/306/6 81/307/6 151/308/6 +f 31/64/3 46/309/3 29/62/3 +f 29/62/3 35/310/3 62/311/3 +f 36/312/3 35/310/3 34/186/3 +f 62/311/3 30/63/3 29/62/3 +f 34/186/3 35/310/3 29/62/3 +f 29/313/5 32/65/5 34/67/5 +f 64/124/4 35/68/4 37/70/4 +f 39/73/1 152/314/1 32/134/1 +f 32/134/1 29/71/1 39/73/1 +f 46/315/1 38/72/1 29/71/1 +f 43/316/1 40/74/1 42/76/1 +f 152/317/4 39/77/4 43/79/4 +f 40/74/1 44/80/1 41/75/1 +f 39/77/4 38/82/4 40/78/4 +f 38/82/4 46/84/4 44/83/4 +f 56/116/4 44/83/4 30/86/4 +f 60/121/4 47/87/4 49/89/4 +f 42/318/4 41/90/4 51/92/4 +f 50/91/4 41/90/4 52/94/4 +f 59/109/2 53/95/2 54/97/2 +f 53/319/6 55/98/6 50/100/6 +f 44/320/3 56/101/3 45/103/3 +f 64/120/3 37/104/3 47/106/3 +f 56/101/3 57/107/3 52/102/3 +f 63/118/2 59/109/2 60/110/2 +f 50/91/4 52/94/4 54/112/4 +f 55/321/4 53/113/4 61/115/4 +f 57/322/4 56/116/4 62/117/4 +f 126/323/2 63/118/2 49/119/2 +f 58/108/3 57/107/3 47/106/3 +f 54/112/7 58/111/7 60/121/7 +f 61/115/4 59/114/4 65/123/4 +f 57/322/4 62/117/4 64/124/4 +f 68/127/2 78/324/2 77/325/2 +f 77/325/2 80/326/2 68/127/2 +f 92/327/2 66/125/2 68/127/2 +f 70/328/2 67/126/2 66/125/2 +f 68/127/2 80/326/2 92/327/2 +f 68/329/5 67/128/5 32/65/5 +f 94/184/4 69/129/4 66/131/4 +f 32/134/1 152/314/1 71/132/1 +f 71/132/1 76/330/1 68/133/1 +f 78/331/1 68/133/1 76/330/1 +f 43/332/1 42/135/1 73/137/1 +f 152/317/4 43/79/4 71/139/4 +f 73/137/1 72/136/1 75/141/1 +f 71/139/4 73/138/4 76/143/4 +f 76/143/4 75/142/4 78/145/4 +f 77/144/4 75/142/4 80/147/4 +f 90/182/4 81/148/4 83/150/4 +f 42/333/4 51/151/4 72/153/4 +f 74/334/4 72/153/4 85/154/4 +f 55/335/3 51/155/3 43/157/3 +f 91/173/3 86/158/3 87/160/3 +f 87/336/6 84/161/6 55/163/6 +f 75/337/2 74/164/2 79/166/2 +f 94/338/2 83/167/2 69/169/2 +f 79/166/2 85/165/2 89/171/2 +f 93/181/3 90/172/3 91/173/3 +f 84/152/4 86/174/4 85/154/4 +f 55/321/4 61/115/4 87/177/4 +f 80/147/4 79/146/4 92/179/4 +f 151/339/3 81/180/3 93/181/3 +f 94/338/2 89/171/2 83/167/2 +f 86/174/7 90/182/7 88/175/7 +f 61/115/4 65/123/4 91/176/4 +f 89/178/4 94/184/4 92/179/4 +f 96/187/3 107/340/3 106/341/3 +f 106/341/3 109/342/3 96/187/3 +f 122/343/3 95/185/3 96/187/3 +f 36/312/3 34/186/3 95/185/3 +f 96/187/3 109/342/3 122/343/3 +f 96/344/5 34/67/5 97/188/5 +f 124/243/4 37/70/4 95/189/4 +f 97/192/6 153/345/6 98/190/6 +f 98/190/6 105/346/6 96/191/6 +f 107/347/6 96/191/6 105/346/6 +f 102/348/6 99/193/6 101/195/6 +f 153/349/4 102/196/4 98/198/4 +f 101/195/6 100/194/6 104/200/6 +f 98/198/4 101/197/4 105/202/4 +f 105/202/4 104/201/4 107/204/4 +f 104/201/4 108/205/4 106/203/4 +f 119/240/4 49/207/4 110/209/4 +f 99/350/4 111/210/4 100/212/4 +f 103/351/4 100/212/4 113/213/4 +f 120/229/2 114/214/2 115/216/2 +f 115/352/1 112/217/1 116/219/1 +f 104/353/3 103/220/3 108/222/3 +f 124/239/3 110/223/3 37/225/3 +f 108/222/3 113/221/3 118/227/3 +f 123/238/2 119/228/2 120/229/2 +f 112/211/4 114/230/4 113/213/4 +f 116/354/4 121/232/4 115/234/4 +f 108/205/4 118/235/4 109/206/4 +f 126/355/2 49/237/2 123/238/2 +f 118/227/3 117/226/3 124/239/3 +f 114/230/4 119/240/4 117/231/4 +f 121/232/4 125/241/4 120/233/4 +f 118/235/4 124/243/4 122/236/4 +f 37/356/6 126/244/6 48/246/6 +f 129/249/2 137/357/2 127/247/2 +f 127/247/2 130/358/2 148/359/2 +f 70/328/2 130/358/2 67/126/2 +f 148/359/2 128/248/2 127/247/2 +f 67/126/2 130/358/2 127/247/2 +f 127/360/5 97/188/5 67/128/5 +f 150/305/4 130/250/4 69/129/4 +f 132/253/6 153/345/6 97/192/6 +f 97/192/6 127/251/6 132/253/6 +f 137/361/6 131/252/6 127/251/6 +f 102/362/6 133/254/6 99/256/6 +f 153/349/4 132/257/4 102/196/4 +f 133/254/6 135/259/6 134/255/6 +f 132/257/4 131/261/4 133/258/4 +f 131/261/4 137/263/4 135/262/4 +f 135/262/4 129/264/4 138/266/4 +f 147/303/4 139/267/4 81/269/4 +f 99/363/4 134/270/4 111/272/4 +f 140/271/4 134/270/4 141/274/4 +f 116/364/3 102/275/3 111/277/3 +f 146/292/3 142/278/3 143/280/3 +f 142/365/1 116/281/1 140/283/1 +f 135/366/2 138/284/2 136/286/2 +f 150/302/2 69/287/2 139/289/2 +f 138/284/2 144/290/2 141/285/2 +f 149/300/3 146/292/3 147/293/3 +f 140/271/4 141/274/4 143/295/4 +f 116/354/4 142/296/4 121/232/4 +f 138/266/4 128/265/4 144/299/4 +f 151/367/3 149/300/3 81/301/3 +f 144/290/2 150/302/2 145/291/2 +f 143/295/4 145/294/4 147/303/4 +f 121/232/4 146/297/4 125/241/4 +f 144/299/4 148/298/4 150/305/4 +f 69/368/6 82/306/6 151/308/6 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Anzeige.011 +usemtl Anzeige.011 +f 63/369/4 126/370/4 154/371/4 +f 154/371/4 151/372/4 93/373/4 +f 154/371/4 126/370/4 123/374/4 +f 149/375/4 151/372/4 154/371/4 +f 65/376/4 63/369/4 154/371/4 +f 65/376/4 154/371/4 93/373/4 +f 125/377/4 154/371/4 123/374/4 +f 125/377/4 149/375/4 154/371/4 +l 1 155 +l 156 2 +l 3 157 +l 155 158 +l 157 156 +l 158 28 diff --git a/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr60.obj b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr60.obj new file mode 100644 index 0000000..c99c697 --- /dev/null +++ b/advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr60.obj @@ -0,0 +1,859 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib advtrains_signals_ks_zs_top_smr60.mtl +o HsVsAnzOben_Cube.001 +v 0.304121 -0.505448 -0.119693 +v 0.406176 -0.505448 -0.170575 +v 0.380670 -0.505448 -0.221732 +v 0.380670 -0.505448 -0.221732 +v 0.380670 -0.301185 -0.221732 +v 0.431827 -0.301185 -0.247238 +v 0.380670 -0.174288 -0.221732 +v 0.431827 -0.174288 -0.247238 +v 0.457333 -0.505448 -0.196081 +v 0.457333 -0.301185 -0.196081 +v 0.406176 -0.301185 -0.170575 +v 0.457333 -0.174288 -0.196081 +v 0.406176 -0.174288 -0.170575 +v 0.431827 -0.505448 -0.247238 +v 0.406176 -0.505448 -0.170575 +v 0.252964 -0.505448 -0.094187 +v 0.252964 -0.301185 -0.094187 +v 0.227458 -0.301185 -0.145343 +v 0.252964 -0.174288 -0.094187 +v 0.227458 -0.174288 -0.145343 +v 0.278615 -0.505448 -0.170849 +v 0.278615 -0.301185 -0.170849 +v 0.304121 -0.301185 -0.119693 +v 0.227458 -0.505448 -0.145343 +v 0.278615 -0.174288 -0.170849 +v 0.304121 -0.505448 -0.119693 +v 0.304121 -0.174288 -0.119693 +v 0.278615 -0.505448 -0.170849 +v 0.459370 -0.045773 -0.074552 +v 0.545986 -0.070195 -0.117737 +v 0.545986 -0.064457 -0.117737 +v 0.397683 -0.045773 -0.198277 +v 0.397683 -0.210259 -0.198277 +v 0.459370 -0.210259 -0.074552 +v 0.545986 -0.098130 -0.117737 +v 0.545986 -0.210259 -0.117737 +v 0.535544 -0.210259 -0.138681 +v 0.535544 -0.045773 -0.138681 +v 0.532219 -0.045773 -0.145351 +v 0.532219 -0.064457 -0.145351 +v 0.582746 -0.064457 -0.170543 +v 0.534826 -0.064457 -0.266654 +v 0.484299 -0.064457 -0.241463 +v 0.535544 -0.064457 -0.138681 +v 0.586071 -0.064457 -0.163873 +v 0.545986 -0.045773 -0.117737 +v 0.558180 -0.098130 -0.149967 +v 0.558180 -0.210259 -0.149967 +v 0.554855 -0.210259 -0.156637 +v 0.582746 -0.070195 -0.170543 +v 0.534826 -0.070195 -0.266654 +v 0.586071 -0.070195 -0.163873 +v 0.532219 -0.070195 -0.145351 +v 0.582746 -0.080599 -0.170543 +v 0.484299 -0.070195 -0.241463 +v 0.535544 -0.070195 -0.138681 +v 0.535544 -0.080599 -0.138681 +v 0.586071 -0.080599 -0.163873 +v 0.532219 -0.080599 -0.145351 +v 0.554855 -0.098130 -0.156637 +v 0.484299 -0.080599 -0.241463 +v 0.545986 -0.080599 -0.117737 +v 0.532219 -0.098130 -0.145351 +v 0.535544 -0.098130 -0.138681 +v 0.484299 -0.098130 -0.241463 +v 0.422612 -0.098130 -0.365188 +v 0.335996 -0.210259 -0.322003 +v 0.335996 -0.045773 -0.322003 +v 0.433054 -0.210259 -0.344244 +v 0.422612 -0.210259 -0.365188 +v 0.436380 -0.045773 -0.337574 +v 0.486907 -0.064457 -0.362766 +v 0.436380 -0.064457 -0.337574 +v 0.483581 -0.064457 -0.369436 +v 0.433054 -0.064457 -0.344244 +v 0.433054 -0.045773 -0.344244 +v 0.422612 -0.064457 -0.365188 +v 0.422612 -0.045773 -0.365188 +v 0.433054 -0.070195 -0.344244 +v 0.422612 -0.070195 -0.365188 +v 0.459016 -0.210259 -0.348860 +v 0.455691 -0.210259 -0.355530 +v 0.455691 -0.098130 -0.355530 +v 0.486907 -0.070195 -0.362766 +v 0.483581 -0.070195 -0.369436 +v 0.486907 -0.080599 -0.362766 +v 0.436380 -0.070195 -0.337574 +v 0.483581 -0.080599 -0.369436 +v 0.433054 -0.080599 -0.344244 +v 0.459016 -0.098130 -0.348860 +v 0.436380 -0.080599 -0.337574 +v 0.422612 -0.080599 -0.365188 +v 0.436380 -0.098130 -0.337574 +v 0.433054 -0.098130 -0.344244 +v 0.545986 -0.322387 -0.117737 +v 0.459370 -0.374745 -0.074552 +v 0.397683 -0.374745 -0.198277 +v 0.532219 -0.374745 -0.145351 +v 0.506936 -0.356061 -0.252749 +v 0.554855 -0.356061 -0.156637 +v 0.532219 -0.356061 -0.145351 +v 0.484299 -0.356061 -0.241463 +v 0.558180 -0.356061 -0.149967 +v 0.535544 -0.356061 -0.138681 +v 0.535544 -0.374745 -0.138681 +v 0.545986 -0.356061 -0.117737 +v 0.545986 -0.374745 -0.117737 +v 0.535544 -0.350322 -0.138681 +v 0.545986 -0.350322 -0.117737 +v 0.558180 -0.322387 -0.149967 +v 0.506936 -0.350322 -0.252749 +v 0.554855 -0.350322 -0.156637 +v 0.558180 -0.350322 -0.149967 +v 0.554855 -0.339919 -0.156637 +v 0.532219 -0.350322 -0.145351 +v 0.484299 -0.350322 -0.241463 +v 0.558180 -0.339919 -0.149967 +v 0.535544 -0.339919 -0.138681 +v 0.554855 -0.322387 -0.156637 +v 0.532219 -0.339919 -0.145351 +v 0.484299 -0.339919 -0.241463 +v 0.545986 -0.339919 -0.117737 +v 0.532219 -0.322387 -0.145351 +v 0.535544 -0.322387 -0.138681 +v 0.484299 -0.322387 -0.241463 +v 0.532219 -0.210259 -0.145351 +v 0.335996 -0.374745 -0.322003 +v 0.422612 -0.350322 -0.365188 +v 0.422612 -0.356061 -0.365188 +v 0.422612 -0.322387 -0.365188 +v 0.433054 -0.374745 -0.344244 +v 0.436380 -0.374745 -0.337574 +v 0.436380 -0.356061 -0.337574 +v 0.459016 -0.356061 -0.348860 +v 0.433054 -0.356061 -0.344244 +v 0.455691 -0.356061 -0.355530 +v 0.422612 -0.374745 -0.365188 +v 0.433054 -0.350322 -0.344244 +v 0.455691 -0.322387 -0.355530 +v 0.459016 -0.350322 -0.348860 +v 0.455691 -0.350322 -0.355530 +v 0.436380 -0.350322 -0.337574 +v 0.459016 -0.339919 -0.348860 +v 0.433054 -0.339919 -0.344244 +v 0.455691 -0.339919 -0.355530 +v 0.436380 -0.339919 -0.337574 +v 0.459016 -0.322387 -0.348860 +v 0.422612 -0.339919 -0.365188 +v 0.436380 -0.322387 -0.337574 +v 0.433054 -0.322387 -0.344244 +v 0.436380 -0.210259 -0.337574 +v 0.484299 -0.045773 -0.241463 +v 0.484299 -0.374745 -0.241463 +v 0.484299 -0.210259 -0.241463 +v 0.252964 -0.505448 -0.094187 +v 0.457333 -0.505448 -0.196081 +v 0.431827 -0.505448 -0.247238 +v 0.227458 -0.505448 -0.145343 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.454504 0.000000 +vt 0.454504 0.365068 +vt 0.363511 0.365068 +vt 0.454504 0.591862 +vt 0.363511 0.591862 +vt 0.000000 0.591862 +vt 0.000000 0.226795 +vt 0.090993 0.226795 +vt 0.000000 0.000000 +vt 0.090993 0.000000 +vt 0.727022 0.591862 +vt 0.727022 0.226794 +vt 0.818014 0.226794 +vt 0.727022 0.000000 +vt 0.818014 0.000000 +vt 0.909007 0.591862 +vt 0.909007 0.226794 +vt 1.000000 0.226794 +vt 0.909007 0.000000 +vt 1.000000 0.000000 +vt 0.818014 0.591862 +vt 0.818014 0.226794 +vt 0.909007 0.226794 +vt 0.818014 0.000000 +vt 0.909007 0.000000 +vt 0.090993 0.956930 +vt 0.090993 0.591862 +vt 0.181986 0.591862 +vt 0.727022 0.000000 +vt 0.727021 0.365068 +vt 0.636029 0.365068 +vt 0.727022 0.591862 +vt 0.636029 0.591862 +vt 0.272518 0.591862 +vt 0.272518 0.226794 +vt 0.363511 0.226794 +vt 0.272518 0.000000 +vt 0.363511 0.000000 +vt 0.272979 0.591862 +vt 0.272979 0.795673 +vt 0.000000 0.897836 +vt 0.000000 0.694026 +vt 0.090993 0.694026 +vt 0.090993 0.897836 +vt 0.090993 1.000000 +vt 0.000000 0.591862 +vt 0.090993 0.591862 +vt 0.000000 0.000000 +vt 0.363511 0.000000 +vt 0.090993 0.591862 +vt 0.818014 0.591862 +vt 1.000000 0.591862 +vt 0.909007 0.591862 +vt 0.181986 0.956930 +vt 0.636029 0.000000 +vt 0.363511 0.591862 +vt 0.181986 0.795673 +vt 0.000000 1.000000 +vt 0.415110 0.773242 +vt 0.522823 0.746062 +vt 0.522823 0.752448 +vt 0.502593 0.379785 +vt 0.502593 0.196728 +vt 0.656453 0.196728 +vt 0.013671 0.321517 +vt 0.013671 0.196729 +vt 0.039717 0.196729 +vt 0.550165 0.515419 +vt 0.584493 0.407128 +vt 0.584498 0.407728 +vt 0.713615 0.930837 +vt 0.713615 0.868004 +vt 0.833135 0.868004 +vt 0.048011 0.379786 +vt 0.048011 0.358992 +vt 0.167531 0.358992 +vt 0.705321 0.930837 +vt 0.705321 0.868004 +vt 0.039717 0.379786 +vt 0.039717 0.358992 +vt 0.013671 0.379786 +vt 0.013671 0.358992 +vt 0.013671 0.352606 +vt 0.683795 0.138459 +vt 0.683795 0.013671 +vt 0.692089 0.013671 +vt 0.692089 0.196218 +vt 0.692089 0.189831 +vt 0.811609 0.189831 +vt 0.683795 0.196217 +vt 0.683795 0.189831 +vt 0.231660 0.902101 +vt 0.168828 0.902101 +vt 0.168828 0.890523 +vt 0.379473 0.890759 +vt 0.379473 0.953592 +vt 0.259953 0.953592 +vt 0.838951 0.169548 +vt 0.901784 0.169548 +vt 0.901784 0.175935 +vt 0.838951 0.013671 +vt 0.867101 0.013671 +vt 0.867101 0.138460 +vt 0.838951 0.157970 +vt 0.901784 0.157970 +vt 0.231660 0.890524 +vt 0.203511 0.871013 +vt 0.683795 0.178253 +vt 0.692089 0.178253 +vt 0.013671 0.718882 +vt 0.013671 0.707304 +vt 0.133191 0.707304 +vt 0.039717 0.352606 +vt 0.013671 0.341028 +vt 0.231660 0.871013 +vt 0.203511 0.746224 +vt 0.838951 0.138460 +vt 0.692089 0.138459 +vt 0.013671 0.687793 +vt 0.133191 0.687793 +vt 0.039717 0.321517 +vt 0.280055 0.714975 +vt 0.387767 0.590186 +vt 0.387767 0.773241 +vt 0.348734 0.196728 +vt 0.295345 0.196729 +vt 0.321391 0.196729 +vt 0.321391 0.321517 +vt 0.823492 0.407728 +vt 0.857825 0.515419 +vt 0.703995 0.515419 +vt 0.259953 0.800584 +vt 0.379473 0.800584 +vt 0.379473 0.863417 +vt 0.287052 0.358992 +vt 0.287052 0.379785 +vt 0.387767 0.800584 +vt 0.387767 0.863417 +vt 0.295346 0.358992 +vt 0.295346 0.379785 +vt 0.321391 0.358992 +vt 0.321391 0.379785 +vt 0.295346 0.352605 +vt 0.321391 0.352605 +vt 0.669684 0.678395 +vt 0.677978 0.678395 +vt 0.677978 0.803184 +vt 0.550165 0.854556 +vt 0.669683 0.854556 +vt 0.669683 0.860942 +vt 0.677977 0.854556 +vt 0.459990 0.806971 +vt 0.459990 0.800584 +vt 0.522823 0.800584 +vt 0.746628 0.367859 +vt 0.746628 0.379437 +vt 0.683795 0.379437 +vt 0.669685 0.951117 +vt 0.550165 0.951117 +vt 0.550165 0.888285 +vt 0.838951 0.365540 +vt 0.838951 0.359154 +vt 0.901784 0.359154 +vt 0.873634 0.328065 +vt 0.873634 0.203277 +vt 0.901784 0.203277 +vt 0.838951 0.347576 +vt 0.901784 0.347576 +vt 0.711945 0.348349 +vt 0.683795 0.367859 +vt 0.669683 0.842978 +vt 0.677978 0.842978 +vt 0.252711 0.707304 +vt 0.252711 0.718882 +vt 0.295346 0.341028 +vt 0.321391 0.341028 +vt 0.711945 0.223560 +vt 0.683795 0.348349 +vt 0.669684 0.803183 +vt 0.252711 0.687793 +vt 0.295346 0.321517 +vt 0.522822 0.465396 +vt 0.415110 0.590185 +vt 0.415110 0.407128 +vt 0.502593 0.013671 +vt 0.013671 0.071940 +vt 0.584498 0.650454 +vt 0.550165 0.542762 +vt 0.703995 0.542762 +vt 0.833135 0.986329 +vt 0.713615 0.986329 +vt 0.713615 0.958179 +vt 0.167532 0.034466 +vt 0.048011 0.034465 +vt 0.048011 0.013671 +vt 0.705321 0.986329 +vt 0.705321 0.958179 +vt 0.039717 0.034465 +vt 0.039717 0.013671 +vt 0.013671 0.034465 +vt 0.013672 0.013671 +vt 0.039717 0.040852 +vt 0.013671 0.040851 +vt 0.713615 0.840662 +vt 0.705321 0.840659 +vt 0.705364 0.715870 +vt 0.833187 0.684826 +vt 0.713669 0.684785 +vt 0.713671 0.678398 +vt 0.705374 0.684782 +vt 0.916024 0.689973 +vt 0.916024 0.678395 +vt 0.944174 0.678395 +vt 0.860477 0.923496 +vt 0.979997 0.923496 +vt 0.979997 0.951646 +vt 0.888681 0.678395 +vt 0.888681 0.684782 +vt 0.860532 0.684782 +vt 0.888681 0.715870 +vt 0.888681 0.840658 +vt 0.860532 0.840658 +vt 0.888681 0.696359 +vt 0.860532 0.696359 +vt 0.916024 0.709483 +vt 0.944174 0.689973 +vt 0.713665 0.696362 +vt 0.705370 0.696359 +vt 0.133191 0.418706 +vt 0.013671 0.418706 +vt 0.013671 0.407128 +vt 0.039717 0.052429 +vt 0.013671 0.052429 +vt 0.916024 0.834272 +vt 0.944174 0.709484 +vt 0.860532 0.715870 +vt 0.713658 0.715873 +vt 0.133191 0.438217 +vt 0.013671 0.438217 +vt 0.039717 0.071940 +vt 0.488140 0.878244 +vt 0.459990 0.878244 +vt 0.459990 0.869950 +vt 0.387767 0.407128 +vt 0.280054 0.434309 +vt 0.280054 0.427922 +vt 0.321390 0.071941 +vt 0.857825 0.542762 +vt 0.823497 0.651053 +vt 0.823492 0.650454 +vt 0.133191 0.935830 +vt 0.133191 0.963980 +vt 0.013671 0.963980 +vt 0.287051 0.013674 +vt 0.287052 0.034467 +vt 0.141485 0.935830 +vt 0.141485 0.963980 +vt 0.295345 0.013674 +vt 0.295345 0.034467 +vt 0.321390 0.013674 +vt 0.321390 0.034466 +vt 0.321390 0.040853 +vt 0.295345 0.040853 +vt 0.141485 0.783699 +vt 0.141485 0.908487 +vt 0.133191 0.908487 +vt 0.133191 0.746224 +vt 0.133191 0.752611 +vt 0.013671 0.752611 +vt 0.141485 0.746224 +vt 0.141485 0.752611 +vt 0.488140 0.911973 +vt 0.459990 0.911973 +vt 0.459990 0.905586 +vt 0.773970 0.223560 +vt 0.802120 0.223560 +vt 0.802120 0.235138 +vt 0.860477 0.896154 +vt 0.860477 0.868004 +vt 0.979997 0.868004 +vt 0.913317 0.413515 +vt 0.885167 0.413515 +vt 0.885167 0.407128 +vt 0.913317 0.569392 +vt 0.885167 0.569392 +vt 0.885167 0.444603 +vt 0.913317 0.425093 +vt 0.885167 0.425093 +vt 0.773970 0.235138 +vt 0.802120 0.254649 +vt 0.141485 0.764189 +vt 0.133191 0.764189 +vt 0.252711 0.407129 +vt 0.252711 0.418706 +vt 0.321390 0.052430 +vt 0.295345 0.052430 +vt 0.773970 0.254649 +vt 0.802120 0.379437 +vt 0.913317 0.444603 +vt 0.133191 0.783699 +vt 0.252711 0.438217 +vt 0.295345 0.071941 +vt 0.459990 0.842607 +vt 0.459990 0.834313 +vt 0.488140 0.834313 +vt 0.522823 0.773242 +vt 0.522823 0.714973 +vt 0.522823 0.734484 +vt 0.522823 0.590185 +vt 0.656453 0.379785 +vt 0.703995 0.407728 +vt 0.550165 0.407728 +vt 0.833135 0.930837 +vt 0.167531 0.379786 +vt 0.811609 0.196218 +vt 0.259953 0.890759 +vt 0.838951 0.175935 +vt 0.133191 0.718882 +vt 0.039717 0.341028 +vt 0.231660 0.746224 +vt 0.280055 0.773241 +vt 0.280055 0.752448 +vt 0.280055 0.746063 +vt 0.280055 0.734486 +vt 0.280054 0.590186 +vt 0.348734 0.379785 +vt 0.840658 0.407578 +vt 0.857825 0.407728 +vt 0.259953 0.863417 +vt 0.550165 0.860942 +vt 0.677977 0.860942 +vt 0.522823 0.806971 +vt 0.669685 0.888285 +vt 0.901784 0.365540 +vt 0.901784 0.328065 +vt 0.683795 0.223560 +vt 0.522822 0.407128 +vt 0.522822 0.427922 +vt 0.522822 0.434309 +vt 0.522822 0.445886 +vt 0.656453 0.013671 +vt 0.703995 0.650454 +vt 0.567332 0.650603 +vt 0.550165 0.650454 +vt 0.833135 0.958179 +vt 0.167533 0.013673 +vt 0.833189 0.678440 +vt 0.705377 0.678395 +vt 0.860477 0.951646 +vt 0.860532 0.678395 +vt 0.133191 0.407128 +vt 0.944174 0.834272 +vt 0.488140 0.869950 +vt 0.280054 0.407129 +vt 0.280054 0.465397 +vt 0.280054 0.445886 +vt 0.348734 0.013671 +vt 0.857825 0.650454 +vt 0.013671 0.935830 +vt 0.013671 0.746225 +vt 0.488140 0.905586 +vt 0.979997 0.896154 +vt 0.913317 0.407128 +vt 0.773970 0.379437 +vt 0.488140 0.842607 +vt 0.003906 1.011719 +vt 0.003906 0.500000 +vt 0.500000 0.500000 +vt 0.996094 0.500000 +vt 0.996094 1.011719 +vt 0.003906 -0.011719 +vt 0.996094 -0.011719 +vt 0.500000 1.011719 +vt 0.500000 -0.011719 +vn 0.0000 1.0000 -0.0000 +vn -0.4462 0.0000 -0.8949 +vn 0.4462 0.0000 0.8949 +vn 0.8949 0.0000 -0.4462 +vn -0.8949 0.0000 0.4462 +vn 0.0000 -1.0000 0.0000 +vn 0.4388 -0.8716 -0.2188 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Mast.011 +usemtl Mast.011 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 5/5/2 7/7/2 8/8/2 +f 9/9/3 10/10/3 11/11/3 +f 10/10/3 12/12/3 13/13/3 +f 14/14/4 6/15/4 10/16/4 +f 6/15/4 8/17/4 12/18/4 +f 15/19/5 11/20/5 5/21/5 +f 11/20/5 13/22/5 7/23/5 +f 16/24/5 17/25/5 18/26/5 +f 17/25/5 19/27/5 20/28/5 +f 21/29/4 22/30/4 23/31/4 +f 24/32/2 18/33/2 22/34/2 +f 18/33/2 20/35/2 25/36/2 +f 26/37/3 23/38/3 17/39/3 +f 23/38/3 27/40/3 19/41/3 +f 25/36/2 7/7/2 5/5/2 +f 23/31/6 22/42/6 5/43/6 +f 23/38/3 11/11/3 13/13/3 +f 27/44/1 13/45/1 7/46/1 +f 27/44/1 25/47/1 20/48/1 +f 13/45/1 12/49/1 8/50/1 +f 28/51/1 1/1/1 3/3/1 +f 14/52/2 4/4/2 6/6/2 +f 6/6/2 5/5/2 8/8/2 +f 15/53/3 9/9/3 11/11/3 +f 11/11/3 10/10/3 13/13/3 +f 9/54/4 14/14/4 10/16/4 +f 10/16/4 6/15/4 12/18/4 +f 4/55/5 15/19/5 5/21/5 +f 5/21/5 11/20/5 7/23/5 +f 24/56/5 16/24/5 18/26/5 +f 18/26/5 17/25/5 20/28/5 +f 26/57/4 21/29/4 23/31/4 +f 21/58/2 24/32/2 22/34/2 +f 22/34/2 18/33/2 25/36/2 +f 16/59/3 26/37/3 17/39/3 +f 17/39/3 23/38/3 19/41/3 +f 22/34/2 25/36/2 5/5/2 +f 11/60/6 23/31/6 5/43/6 +f 27/40/3 23/38/3 13/13/3 +f 25/47/1 27/44/1 7/46/1 +f 19/61/1 27/44/1 20/48/1 +f 7/46/1 13/45/1 8/50/1 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Schirm.011 +usemtl Schirm.011 +f 29/62/3 30/63/3 31/64/3 +f 32/65/5 33/66/5 34/67/5 +f 35/68/4 36/69/4 37/70/4 +f 29/71/1 38/72/1 39/73/1 +f 40/74/1 41/75/1 42/76/1 +f 39/77/4 40/78/4 43/79/4 +f 44/80/1 45/81/1 41/75/1 +f 38/82/4 44/83/4 40/78/4 +f 46/84/4 31/85/4 44/83/4 +f 44/83/4 31/85/4 30/86/4 +f 47/87/4 48/88/4 49/89/4 +f 41/90/4 50/91/4 51/92/4 +f 41/90/4 45/93/4 52/94/4 +f 53/95/2 50/96/2 54/97/2 +f 55/98/6 51/99/6 50/100/6 +f 56/101/3 52/102/3 45/103/3 +f 37/104/3 48/105/3 47/106/3 +f 57/107/3 58/108/3 52/102/3 +f 59/109/2 54/97/2 60/110/2 +f 52/94/4 58/111/4 54/112/4 +f 53/113/4 59/114/4 61/115/4 +f 56/116/4 30/86/4 62/117/4 +f 63/118/2 60/110/2 49/119/2 +f 57/107/3 64/120/3 47/106/3 +f 58/111/7 47/87/7 60/121/7 +f 59/114/4 63/122/4 65/123/4 +f 62/117/4 35/68/4 64/124/4 +f 66/125/2 67/126/2 68/127/2 +f 67/128/5 33/66/5 32/65/5 +f 69/129/4 70/130/4 66/131/4 +f 71/132/1 68/133/1 32/134/1 +f 42/135/1 72/136/1 73/137/1 +f 43/79/4 73/138/4 71/139/4 +f 72/136/1 74/140/1 75/141/1 +f 73/138/4 75/142/4 76/143/4 +f 75/142/4 77/144/4 78/145/4 +f 75/142/4 79/146/4 80/147/4 +f 81/148/4 82/149/4 83/150/4 +f 51/151/4 84/152/4 72/153/4 +f 72/153/4 84/152/4 85/154/4 +f 51/155/3 42/156/3 43/157/3 +f 86/158/3 84/159/3 87/160/3 +f 84/161/6 51/162/6 55/163/6 +f 74/164/2 85/165/2 79/166/2 +f 83/167/2 82/168/2 69/169/2 +f 85/165/2 88/170/2 89/171/2 +f 90/172/3 86/158/3 91/173/3 +f 86/174/4 88/175/4 85/154/4 +f 61/115/4 91/176/4 87/177/4 +f 79/146/4 89/178/4 92/179/4 +f 81/180/3 90/172/3 93/181/3 +f 89/171/2 88/170/2 83/167/2 +f 90/182/7 83/150/7 88/175/7 +f 65/123/4 93/183/4 91/176/4 +f 94/184/4 66/131/4 92/179/4 +f 95/185/3 34/186/3 96/187/3 +f 34/67/5 33/66/5 97/188/5 +f 37/70/4 36/69/4 95/189/4 +f 98/190/6 96/191/6 97/192/6 +f 99/193/6 100/194/6 101/195/6 +f 102/196/4 101/197/4 98/198/4 +f 100/194/6 103/199/6 104/200/6 +f 101/197/4 104/201/4 105/202/4 +f 104/201/4 106/203/4 107/204/4 +f 108/205/4 109/206/4 106/203/4 +f 49/207/4 48/208/4 110/209/4 +f 111/210/4 112/211/4 100/212/4 +f 100/212/4 112/211/4 113/213/4 +f 114/214/2 112/215/2 115/216/2 +f 112/217/1 111/218/1 116/219/1 +f 103/220/3 113/221/3 108/222/3 +f 110/223/3 48/224/3 37/225/3 +f 113/221/3 117/226/3 118/227/3 +f 119/228/2 114/214/2 120/229/2 +f 114/230/4 117/231/4 113/213/4 +f 121/232/4 120/233/4 115/234/4 +f 118/235/4 122/236/4 109/206/4 +f 49/237/2 119/228/2 123/238/2 +f 117/226/3 110/223/3 124/239/3 +f 119/240/4 110/209/4 117/231/4 +f 125/241/4 123/242/4 120/233/4 +f 124/243/4 95/189/4 122/236/4 +f 126/244/6 49/245/6 48/246/6 +f 127/247/2 128/248/2 129/249/2 +f 97/188/5 33/66/5 67/128/5 +f 130/250/4 70/130/4 69/129/4 +f 127/251/6 131/252/6 132/253/6 +f 133/254/6 134/255/6 99/256/6 +f 132/257/4 133/258/4 102/196/4 +f 135/259/6 136/260/6 134/255/6 +f 131/261/4 135/262/4 133/258/4 +f 137/263/4 129/264/4 135/262/4 +f 129/264/4 128/265/4 138/266/4 +f 139/267/4 82/268/4 81/269/4 +f 134/270/4 140/271/4 111/272/4 +f 134/270/4 136/273/4 141/274/4 +f 102/275/3 99/276/3 111/277/3 +f 142/278/3 140/279/3 143/280/3 +f 116/281/1 111/282/1 140/283/1 +f 138/284/2 141/285/2 136/286/2 +f 69/287/2 82/288/2 139/289/2 +f 144/290/2 145/291/2 141/285/2 +f 146/292/3 143/280/3 147/293/3 +f 141/274/4 145/294/4 143/295/4 +f 142/296/4 146/297/4 121/232/4 +f 128/265/4 148/298/4 144/299/4 +f 149/300/3 147/293/3 81/301/3 +f 150/302/2 139/289/2 145/291/2 +f 145/294/4 139/267/4 147/303/4 +f 146/297/4 149/304/4 125/241/4 +f 148/298/4 130/250/4 150/305/4 +f 82/306/6 81/307/6 151/308/6 +f 31/64/3 46/309/3 29/62/3 +f 29/62/3 35/310/3 62/311/3 +f 36/312/3 35/310/3 34/186/3 +f 62/311/3 30/63/3 29/62/3 +f 34/186/3 35/310/3 29/62/3 +f 29/313/5 32/65/5 34/67/5 +f 64/124/4 35/68/4 37/70/4 +f 39/73/1 152/314/1 32/134/1 +f 32/134/1 29/71/1 39/73/1 +f 46/315/1 38/72/1 29/71/1 +f 43/316/1 40/74/1 42/76/1 +f 152/317/4 39/77/4 43/79/4 +f 40/74/1 44/80/1 41/75/1 +f 39/77/4 38/82/4 40/78/4 +f 38/82/4 46/84/4 44/83/4 +f 56/116/4 44/83/4 30/86/4 +f 60/121/4 47/87/4 49/89/4 +f 42/318/4 41/90/4 51/92/4 +f 50/91/4 41/90/4 52/94/4 +f 59/109/2 53/95/2 54/97/2 +f 53/319/6 55/98/6 50/100/6 +f 44/320/3 56/101/3 45/103/3 +f 64/120/3 37/104/3 47/106/3 +f 56/101/3 57/107/3 52/102/3 +f 63/118/2 59/109/2 60/110/2 +f 50/91/4 52/94/4 54/112/4 +f 55/321/4 53/113/4 61/115/4 +f 57/322/4 56/116/4 62/117/4 +f 126/323/2 63/118/2 49/119/2 +f 58/108/3 57/107/3 47/106/3 +f 54/112/7 58/111/7 60/121/7 +f 61/115/4 59/114/4 65/123/4 +f 57/322/4 62/117/4 64/124/4 +f 68/127/2 78/324/2 77/325/2 +f 77/325/2 80/326/2 68/127/2 +f 92/327/2 66/125/2 68/127/2 +f 70/328/2 67/126/2 66/125/2 +f 68/127/2 80/326/2 92/327/2 +f 68/329/5 67/128/5 32/65/5 +f 94/184/4 69/129/4 66/131/4 +f 32/134/1 152/314/1 71/132/1 +f 71/132/1 76/330/1 68/133/1 +f 78/331/1 68/133/1 76/330/1 +f 43/332/1 42/135/1 73/137/1 +f 152/317/4 43/79/4 71/139/4 +f 73/137/1 72/136/1 75/141/1 +f 71/139/4 73/138/4 76/143/4 +f 76/143/4 75/142/4 78/145/4 +f 77/144/4 75/142/4 80/147/4 +f 90/182/4 81/148/4 83/150/4 +f 42/333/4 51/151/4 72/153/4 +f 74/334/4 72/153/4 85/154/4 +f 55/335/3 51/155/3 43/157/3 +f 91/173/3 86/158/3 87/160/3 +f 87/336/6 84/161/6 55/163/6 +f 75/337/2 74/164/2 79/166/2 +f 94/338/2 83/167/2 69/169/2 +f 79/166/2 85/165/2 89/171/2 +f 93/181/3 90/172/3 91/173/3 +f 84/152/4 86/174/4 85/154/4 +f 55/321/4 61/115/4 87/177/4 +f 80/147/4 79/146/4 92/179/4 +f 151/339/3 81/180/3 93/181/3 +f 94/338/2 89/171/2 83/167/2 +f 86/174/7 90/182/7 88/175/7 +f 61/115/4 65/123/4 91/176/4 +f 89/178/4 94/184/4 92/179/4 +f 96/187/3 107/340/3 106/341/3 +f 106/341/3 109/342/3 96/187/3 +f 122/343/3 95/185/3 96/187/3 +f 36/312/3 34/186/3 95/185/3 +f 96/187/3 109/342/3 122/343/3 +f 96/344/5 34/67/5 97/188/5 +f 124/243/4 37/70/4 95/189/4 +f 97/192/6 153/345/6 98/190/6 +f 98/190/6 105/346/6 96/191/6 +f 107/347/6 96/191/6 105/346/6 +f 102/348/6 99/193/6 101/195/6 +f 153/349/4 102/196/4 98/198/4 +f 101/195/6 100/194/6 104/200/6 +f 98/198/4 101/197/4 105/202/4 +f 105/202/4 104/201/4 107/204/4 +f 104/201/4 108/205/4 106/203/4 +f 119/240/4 49/207/4 110/209/4 +f 99/350/4 111/210/4 100/212/4 +f 103/351/4 100/212/4 113/213/4 +f 120/229/2 114/214/2 115/216/2 +f 115/352/1 112/217/1 116/219/1 +f 104/353/3 103/220/3 108/222/3 +f 124/239/3 110/223/3 37/225/3 +f 108/222/3 113/221/3 118/227/3 +f 123/238/2 119/228/2 120/229/2 +f 112/211/4 114/230/4 113/213/4 +f 116/354/4 121/232/4 115/234/4 +f 108/205/4 118/235/4 109/206/4 +f 126/355/2 49/237/2 123/238/2 +f 118/227/3 117/226/3 124/239/3 +f 114/230/4 119/240/4 117/231/4 +f 121/232/4 125/241/4 120/233/4 +f 118/235/4 124/243/4 122/236/4 +f 37/356/6 126/244/6 48/246/6 +f 129/249/2 137/357/2 127/247/2 +f 127/247/2 130/358/2 148/359/2 +f 70/328/2 130/358/2 67/126/2 +f 148/359/2 128/248/2 127/247/2 +f 67/126/2 130/358/2 127/247/2 +f 127/360/5 97/188/5 67/128/5 +f 150/305/4 130/250/4 69/129/4 +f 132/253/6 153/345/6 97/192/6 +f 97/192/6 127/251/6 132/253/6 +f 137/361/6 131/252/6 127/251/6 +f 102/362/6 133/254/6 99/256/6 +f 153/349/4 132/257/4 102/196/4 +f 133/254/6 135/259/6 134/255/6 +f 132/257/4 131/261/4 133/258/4 +f 131/261/4 137/263/4 135/262/4 +f 135/262/4 129/264/4 138/266/4 +f 147/303/4 139/267/4 81/269/4 +f 99/363/4 134/270/4 111/272/4 +f 140/271/4 134/270/4 141/274/4 +f 116/364/3 102/275/3 111/277/3 +f 146/292/3 142/278/3 143/280/3 +f 142/365/1 116/281/1 140/283/1 +f 135/366/2 138/284/2 136/286/2 +f 150/302/2 69/287/2 139/289/2 +f 138/284/2 144/290/2 141/285/2 +f 149/300/3 146/292/3 147/293/3 +f 140/271/4 141/274/4 143/295/4 +f 116/354/4 142/296/4 121/232/4 +f 138/266/4 128/265/4 144/299/4 +f 151/367/3 149/300/3 81/301/3 +f 144/290/2 150/302/2 145/291/2 +f 143/295/4 145/294/4 147/303/4 +f 121/232/4 146/297/4 125/241/4 +f 144/299/4 148/298/4 150/305/4 +f 69/368/6 82/306/6 151/308/6 +g HsVsAnzOben_Cube.001_HsVsAnzOben_Cube.001_Anzeige.011 +usemtl Anzeige.011 +f 63/369/4 126/370/4 154/371/4 +f 154/371/4 151/372/4 93/373/4 +f 154/371/4 126/370/4 123/374/4 +f 149/375/4 151/372/4 154/371/4 +f 65/376/4 63/369/4 154/371/4 +f 65/376/4 154/371/4 93/373/4 +f 125/377/4 154/371/4 123/374/4 +f 125/377/4 149/375/4 154/371/4 +l 1 155 +l 156 2 +l 3 157 +l 155 158 +l 157 156 +l 158 28 diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_hs_inv.png b/advtrains_signals_ks/textures/advtrains_signals_ks_hs_inv.png Binary files differindex d526a76..fdf41fa 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_hs_inv.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_hs_inv.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_danger.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_danger.png Binary files differindex dc58e53..5cc0ee1 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_danger.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_danger.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_free.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_free.png Binary files differindex 3912971..4c59bf9 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_free.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_free.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_nextslow.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_nextslow.png Binary files differnew file mode 100644 index 0000000..b8f5b02 --- /dev/null +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_nextslow.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shunt.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shunt.png Binary files differindex 812c678..5bf2146 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shunt.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shunt.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shuntd.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shuntd.png Binary files differindex cb56cd4..c5ed461 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shuntd.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shuntd.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_slow.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_slow.png Binary files differindex 2ba00b9..7b1e118 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_slow.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_slow.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_12.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_12.png Binary files differindex cba5222..bc5f758 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_12.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_12.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_16.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_16.png Binary files differindex a35fa93..ebbdd3d 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_16.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_16.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_20.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_20.png Binary files differnew file mode 100644 index 0000000..71b540d --- /dev/null +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_20.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_4.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_4.png Binary files differnew file mode 100644 index 0000000..21318b3 --- /dev/null +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_4.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_6.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_6.png Binary files differnew file mode 100644 index 0000000..b7c5a51 --- /dev/null +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_6.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_8.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_8.png Binary files differindex abfa10c..f9ff54f 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_8.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_8.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_e.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_e.png Binary files differindex 3d55af0..4ff8ce5 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_e.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_e.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_hfs.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_hfs.png Binary files differindex e54ab19..e5d8a24 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_hfs.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_hfs.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_lf7.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_lf7.png Binary files differnew file mode 100644 index 0000000..8ce24dc --- /dev/null +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_lf7.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_off.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_off.png Binary files differnew file mode 100644 index 0000000..6b077ec --- /dev/null +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_off.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_pam.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_pam.png Binary files differindex c4229fd..c60d900 100644 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_pam.png +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_pam.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_zs10.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_zs10.png Binary files differnew file mode 100644 index 0000000..e14c64f --- /dev/null +++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_zs10.png diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_zs_7.png b/advtrains_signals_ks/textures/advtrains_signals_ks_zs_7.png Binary files differdeleted file mode 100644 index 3c4b1e2..0000000 --- a/advtrains_signals_ks/textures/advtrains_signals_ks_zs_7.png +++ /dev/null diff --git a/advtrains_train_track/init.lua b/advtrains_train_track/init.lua index 6bb8b33..32e1235 100755..100644 --- a/advtrains_train_track/init.lua +++ b/advtrains_train_track/init.lua @@ -1,6 +1,182 @@ -- Default tracks for advtrains -- (c) orwell96 and contributors +local default_boxen = { + ["st"] = { + [""] = { + selection_box = { + type = "fixed", + fixed = {-1/2-1/16, -1/2, -1/2, 1/2+1/16, -1/2+2/16, 1/2}, + } + }, + ["_30"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.000, 0.5000, -0.3750, 1.000}, + {-0.8750, -0.5000, -1.000, -0.5000, -0.3750, 0.2500}, + {0.5000, -0.5000, -0.2500, 0.8750, -0.3750, 1.000}, + {-0.1250, -0.5000, -1.375, 0.1875, -0.3750, -1.000} + } + } + }, + ["_45"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.8750, 0.5000, -0.3750, 0.8750}, + {0.5000, -0.5000, -0.5000, 0.8750, -0.3750, 0.5000}, + {-0.8750, -0.5000, -0.5000, -0.5000, -0.3750, 0.5000} + } + } + }, + ["_60"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -0.5000, 1.000, -0.3750, 0.5000}, + {-1.000, -0.5000, -0.8750, 0.2500, -0.3750, -0.5000}, + {-0.2500, -0.5000, 0.5000, 1.000, -0.3750, 0.8750}, + {-1.375, -0.5000, -0.1250, -1.000, -0.3750, 0.1875} + } + } + }, + }, + + ["cr"] = { + [""] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.5000, 0.6875, -0.3750, 0.5000}, + {-0.3750, -0.5000, -1.000, 1.000, -0.3750, 0.000} + } + } + }, + ["_30"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.5000, 0.7500, -0.3750, 0.8750}, + {-0.3750, -0.5000, 0.8750, 0.2500, -0.3750, 1.188}, + {0.7500, -0.5000, 0.2500, 1.063, -0.3750, 0.8750} + } + } + }, + ["_45"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.125, 0.5000, -0.3750, 0.6875}, + {-0.8750, -0.5000, -0.9375, -0.5000, -0.3750, 0.06250}, + {0.5000, -0.5000, -0.5000, 0.8750, -0.3750, 0.5000} + } + } + }, + ["_60"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.8125, -0.5000, -0.5000, 1.188, -0.3750, 0.5000}, + {-0.1875, -0.5000, 0.5000, 0.8750, -0.3125, 0.8750}, + {-0.2500, -0.5000, -0.9375, 0.3125, -0.3125, -0.5000} + } + } + }, + }, + + ["swlst"] = { + [""] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.5000, 0.6250, -0.3750, 0.5000}, + {-0.3125, -0.5000, -1.000, 0.9375, -0.3125, -0.06250} + } + } + }, + ["_30"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.000, 0.5000, -0.3750, 1.000}, + {-0.8750, -0.5000, -1.000, -0.5000, -0.3750, 0.2500}, + {0.5000, -0.5000, -0.2500, 0.8750, -0.3750, 1.000}, + {-0.1250, -0.5000, -1.375, 0.1875, -0.3750, -1.000} + } + } + }, + ["_45"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.1875, 0.5000, -0.3750, 0.8750}, + {0.5000, -0.5000, -0.5000, 0.8750, -0.3750, 0.5000}, + {-0.8750, -0.5000, -0.8125, -0.5000, -0.3750, 0.5000} + } + } + }, + ["_60"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -0.5000, 1.000, -0.3750, 0.5000}, + {-1.000, -0.5000, -0.8750, 0.2500, -0.3750, -0.5000}, + {-0.2500, -0.5000, 0.5000, 1.000, -0.3750, 0.8750}, + {-1.375, -0.5000, -0.1250, -1.000, -0.3750, 0.1875} + } + } + }, + }, + + ["swrst"] = { + [""] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.5000, 0.6250, -0.3750, 0.5000}, + {-0.8125, -0.5000, -1.000, 0.4375, -0.3125, -0.06250} + } + } + }, + ["_30"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.000, 0.5000, -0.3750, 1.000}, + {-0.8750, -0.5000, -1.000, -0.5000, -0.3750, 0.2500}, + {0.5000, -0.5000, -0.2500, 0.8750, -0.3750, 1.000}, + {-0.1250, -0.5000, -1.375, 0.1875, -0.3750, -1.000} + } + } + }, + ["_45"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.1875, -0.5000, -0.5000, 0.8750, -0.3750, 0.5000}, + {-0.5000, -0.5000, 0.5000, 0.5000, -0.3750, 0.8750}, + {-0.8125, -0.5000, -0.8750, 0.5000, -0.3750, -0.5000} + } + } + }, + ["_60"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -0.5000, 1.000, -0.3750, 0.5000}, + {-1.000, -0.5000, -0.8750, 0.2500, -0.3750, -0.5000}, + {-0.2500, -0.5000, 0.5000, 1.000, -0.3750, 0.8750}, + {-1.375, -0.5000, -0.1250, -1.000, -0.3750, 0.1875} + } + } + }, + }, +} + +default_boxen["swlcr"] = default_boxen["swlst"] +default_boxen["swrcr"] = default_boxen["swrst"] + --flat advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack", @@ -10,6 +186,14 @@ advtrains.register_tracks("default", { shared_texture="advtrains_dtrack_shared.png", description=attrans("Track"), formats={}, + + get_additional_definiton = function(def, preset, suffix, rotation) + if default_boxen[suffix] ~= nil and default_boxen[suffix][rotation] ~= nil then + return default_boxen[suffix][rotation] + else + return {} + end + end, }, advtrains.ap.t_30deg_flat) minetest.register_craft({ @@ -21,6 +205,59 @@ minetest.register_craft({ }, }) +local y3_boxen = { + [""] = { + selection_box = { + type = "fixed", + fixed = { + {-0.8750, -0.5000, -1.125, 0.8750, -0.3750, 0.4375} + } + } + }, + + ["_30"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.875, 0.5000, -0.3750, 1.000}, + {-0.8750, -0.5000, -0.4375, -0.5000, -0.3750, 0.5625}, + {0.5000, -0.5000, -0.2500, 0.8125, -0.3750, 1.000}, + } + } + }, + + --UX FIXME: - 3way - have to place straight route before l and r or the + --nodebox overlaps too much and can't place the straight track node. + ["_45"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.1250, 0.5000, -0.3750, 0.8750}, + {0.5000, -0.5000, -0.5000, 0.8750, -0.3750, 0.5000}, + {-1.1250, -0.5000, -0.9375, -0.5000, -0.3750, 0.5000} + } + } + }, + + ["_60"] = { + selection_box = { + type = "fixed", + fixed = { + --{-0.5000, -0.5000, -0.875, 0.5000, -0.3750, 1.000}, + {-0.875, -0.5000, -0.5, 1.0, -0.3750, 0.5}, + --{-0.8750, -0.5000, -0.4375, -0.5000, -0.3750, 0.5625}, + {-0.4375, -0.5000, -0.8750, 0.5625, -0.3750, -0.5000}, + --{0.5000, -0.5000, -0.2500, 0.8125, -0.3750, 1.000}, + {-0.2500, -0.5000, -0.2500, 1.0000, -0.3750, 0.8125}, + } + } + }, +} + + +local function y3_turnouts_addef(def, preset, suffix, rotation) + return y3_boxen[rotation] or {} +end -- y-turnout advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_sy", @@ -30,6 +267,7 @@ advtrains.register_tracks("default", { shared_texture="advtrains_dtrack_shared.png", description=attrans("Y-turnout"), formats = {}, + get_additional_definiton = y3_turnouts_addef, }, advtrains.ap.t_yturnout) minetest.register_craft({ output = 'advtrains:dtrack_sy_placer 2', @@ -48,6 +286,7 @@ advtrains.register_tracks("default", { shared_texture="advtrains_dtrack_shared.png", description=attrans("3-way turnout"), formats = {}, + get_additional_definiton = y3_turnouts_addef, }, advtrains.ap.t_s3way) minetest.register_craft({ output = 'advtrains:dtrack_s3_placer 1', @@ -59,6 +298,35 @@ minetest.register_craft({ }) -- Diamond Crossings + +local perp_boxen = { + [""] = {}, --default size + ["_30"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -1.000, 1.000, -0.3750, 1.000} + } + } + }, + ["_45"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.8125, -0.5000, -0.8125, 0.8125, -0.3750, 0.8125} + } + } + }, + ["_60"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -1.000, 1.000, -0.3750, 1.000} + } + } + }, +} + -- perpendicular advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_xing", @@ -67,7 +335,10 @@ advtrains.register_tracks("default", { models_suffix=".obj", shared_texture="advtrains_dtrack_shared.png", description=attrans("Perpendicular Diamond Crossing Track"), - formats = {} + formats = {}, + get_additional_definiton = function(def, preset, suffix, rotation) + return perp_boxen[rotation] or {} + end }, advtrains.ap.t_perpcrossing) minetest.register_craft({ @@ -79,6 +350,73 @@ minetest.register_craft({ } }) +local ninety_plus_boxen = { + ["30l"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.000, 0.5000, -0.3750, 1.000}, + {-0.8750, -0.5000, -1.000, -0.5000, -0.3750, 0.2500}, + {0.5000, -0.5000, -0.2500, 0.8750, -0.3750, 1.000}, + {-0.1250, -0.5000, -1.375, 0.1875, -0.3750, -1.000} + } + } + }, + ["30r"] = { + selection_box = { + type = "fixed", + fixed = { + {0.5000, -0.5000, -1.000, -0.5000, -0.3750, 1.000}, + {0.8750, -0.5000, -1.000, 0.5000, -0.3750, 0.2500}, + {-0.5000, -0.5000, -0.2500, -0.8750, -0.3750, 1.000}, + {0.1250, -0.5000, -1.375, -0.1875, -0.3750, -1.000} + } + } + }, + ["45l"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.8750, 0.5000, -0.3750, 0.8750}, + {0.5000, -0.5000, -0.5000, 0.8750, -0.3750, 0.5000}, + {-0.8750, -0.5000, -0.5000, -0.5000, -0.3750, 0.5000} + } + } + }, + ["45r"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -0.8750, 0.5000, -0.3750, 0.8750}, + {0.5000, -0.5000, -0.5000, 0.8750, -0.3750, 0.5000}, + {-0.8750, -0.5000, -0.5000, -0.5000, -0.3750, 0.5000} + } + } + }, + ["60l"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -0.5000, 1.000, -0.3750, 0.5000}, + {-1.000, -0.5000, -0.8750, 0.2500, -0.3750, -0.5000}, + {-0.2500, -0.5000, 0.5000, 1.000, -0.3750, 0.8750}, + {-1.375, -0.5000, -0.1250, -1.000, -0.3750, 0.1875} + } + } + }, + ["60r"] = { + selection_box = { + type = "fixed", + fixed = { + {1.000, -0.5000, -0.5000, -1.000, -0.3750, 0.5000}, + {1.000, -0.5000, -0.8750, -0.2500, -0.3750, -0.5000}, + {0.2500, -0.5000, 0.5000, -1.000, -0.3750, 0.8750}, + {1.375, -0.5000, -0.1250, 1.000, -0.3750, 0.1875} + } + } + }, +} + -- 90plusx -- When you face east and param2=0, then this set of rails has a rail at 90 -- degrees to the viewer, plus another rail crossing at 30, 45 or 60 degrees. @@ -89,7 +427,10 @@ advtrains.register_tracks("default", { models_suffix=".obj", shared_texture="advtrains_dtrack_shared.png", description=attrans("90+Angle Diamond Crossing Track"), - formats = {} + formats = {}, + get_additional_definiton = function(def, preset, suffix, rotation) + return ninety_plus_boxen[suffix] or {} + end, }, advtrains.ap.t_90plusx_crossing) minetest.register_craft({ output = 'advtrains:dtrack_xing90plusx_placer 2', @@ -99,6 +440,7 @@ minetest.register_craft({ {'', '', 'advtrains:dtrack_placer'} } }) + -- Deprecate any rails using the old name scheme minetest.register_lbm({ label = "Upgrade legacy 4590 rails", @@ -119,6 +461,83 @@ minetest.register_lbm({ -- This will replace any items left in the inventory minetest.register_alias("advtrains:dtrack_xing4590_placer", "advtrains:dtrack_xing90plusx_placer") +local diagonal_boxen = { + ["30r45l"] = { + selection_box = { + type = "fixed", + fixed = { + {0.5000, -0.5000, -1.000, -0.5000, -0.3750, 1.000}, + {0.8750, -0.5000, -1.000, 0.5000, -0.3750, 0.2500}, + {-0.5000, -0.5000, -0.2500, -0.8750, -0.3750, 1.000}, + {0.1250, -0.5000, -1.375, -0.1875, -0.3750, -1.000} + } + } + }, + ["60l30l"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -0.5000, 1.000, -0.3750, 0.5000}, + {-1.000, -0.5000, -0.8750, 0.2500, -0.3750, -0.5000}, + {-0.2500, -0.5000, 0.5000, 1.000, -0.3750, 0.8750}, + {-1.375, -0.5000, -0.1250, -1.000, -0.3750, 0.1875} + } + } + }, + ["60l60r"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -1.000, 1.000, -0.3750, 1.000} + } + } + }, + ["60r30r"] = { + selection_box = { + type = "fixed", + fixed = { + {1.000, -0.5000, -0.5000, -1.000, -0.3750, 0.5000}, + {1.000, -0.5000, -0.8750, -0.2500, -0.3750, -0.5000}, + {0.2500, -0.5000, 0.5000, -1.000, -0.3750, 0.8750}, + {1.375, -0.5000, -0.1250, 1.000, -0.3750, 0.1875} + } + } + }, + ["30l45r"] = { + selection_box = { + type = "fixed", + fixed = { + {-0.5000, -0.5000, -1.000, 0.5000, -0.3750, 1.000}, + {-0.8750, -0.5000, -1.000, -0.5000, -0.3750, 0.2500}, + {0.5000, -0.5000, -0.2500, 0.8750, -0.3750, 1.000}, + {-0.1250, -0.5000, -1.375, 0.1875, -0.3750, -1.000} + } + } + }, + ["60l45r"] = { + selection_box = { + type = "fixed", + fixed = { + {-1.000, -0.5000, -0.5000, 1.000, -0.3750, 0.5000}, + {-1.000, -0.5000, -0.8750, 0.2500, -0.3750, -0.5000}, + {-0.2500, -0.5000, 0.5000, 1.000, -0.3750, 0.8750}, + {-1.375, -0.5000, -0.1250, -1.000, -0.3750, 0.1875} + } + } + }, + ["60r45l"] = { + selection_box = { + type = "fixed", + fixed = { + {1.000, -0.5000, -0.5000, -1.000, -0.3750, 0.5000}, + {1.000, -0.5000, -0.8750, -0.2500, -0.3750, -0.5000}, + {0.2500, -0.5000, 0.5000, -1.000, -0.3750, 0.8750}, + {1.375, -0.5000, -0.1250, 1.000, -0.3750, 0.1875} + } + } + }, +} + -- Diagonal -- This set of rail crossings is named based on the angle of each intersecting -- direction when facing east and param2=0. Rails with l/r swapped are mirror @@ -131,6 +550,9 @@ advtrains.register_tracks("default", { shared_texture="advtrains_dtrack_shared.png", description=attrans("Diagonal Diamond Crossing Track"), formats = {}, + get_additional_definiton = function(def, preset, suffix, rotation) + return diagonal_boxen[suffix] or {} + end, }, advtrains.ap.t_diagonalcrossing) minetest.register_craft({ output = 'advtrains:dtrack_xingdiag_placer 2', @@ -216,41 +638,151 @@ local function get_far_node(pos) 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 and i:get_list("box") 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 + +local function show_fc_formspec(pos,player) + local pname = player:get_player_name() + if minetest.is_protected(pos,pname) then + minetest.chat_send_player(pname, "Position is protected!") + return + end + + local meta = minetest.get_meta(pos) + local fc = meta:get_string("fc") or "" + + local form = 'formspec_version[4]'.. + 'size[10,5]'.. + 'label[0.5,0.4;Advtrains Loading/Unloading Track]'.. + 'label[0.5,1.1;Set the code to match against the wagon\'s freight code]'.. + 'label[0.5,1.6;A blank field matches all wagons (default)]'.. + 'label[0.5,2.1;Use code # to disable the track section]'.. + 'field[0.5,3;5.5,1;fc;FC;'..minetest.formspec_escape(fc)..']'.. + 'button[6.5,3;3,1;save;Submit]' + minetest.show_formspec(pname, "at_load_unload_"..advtrains.encode_pos(pos), form) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local pname = player:get_player_name() + local pe = string.match(formname, "^at_load_unload_(............)$") + local pos = advtrains.decode_pos(pe) + if pos then + if minetest.is_protected(pos, pname) then + minetest.chat_send_player(pname, "Position is protected!") + return + end + + if fields.save then + minetest.get_meta(pos):set_string("fc",tostring(fields.fc)) + minetest.chat_send_player(pname,"Freight code set: "..tostring(fields.fc)) + show_fc_formspec(pos,player) + end + end +end) + +local function load_wagon(wagon_id, node_inv, node_fc, unload) + local inv_modified = false + local w_inv=minetest.get_inventory({type="detached", name="advtrains_wgn_"..wagon_id}) + if w_inv and w_inv:get_list("box") then + + local wagon_data = advtrains.wagons[wagon_id] + local wagon_fc + if wagon_data.fc then + if not wagon_data.fcind then wagon_data.fcind = 1 end + wagon_fc = tostring(wagon_data.fc[wagon_data.fcind]) or "" + end + + if node_fc == "" or wagon_fc == node_fc then + if not unload then + for _, item in ipairs(node_inv:get_list("main")) do + if w_inv:get_list("box") and w_inv:room_for_item("box", item) then + w_inv:add_item("box", item) + node_inv:remove_item("main", item) + if item.name ~= "" then inv_modified = true 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 + else + for _, item in ipairs(w_inv:get_list("box")) do + if node_inv:get_list("main") and node_inv:room_for_item("main", item) then + w_inv:remove_item("box", item) + node_inv:add_item("main", item) + if item.name ~= "" then inv_modified = true end end end end - end - end + end + end + return inv_modified +end + +local function load_entire_train(pos, train_id, unload) -- flood load when not in an active area + if advtrains.is_node_loaded(pos) then -- leave the loading to the nodetimer if area is loaded + return + end + 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 node_fc = minetest.get_meta(pos):get_string("fc") or "" + if node_fc == "#" then + --track section is disabled + return + end + local node_inv = minetest.get_inventory({type="node", pos={x=pos.x, y=pos.y-1, z=pos.z}}) + if node_inv and train.velocity <= 2 then + for _, wagon_id in ipairs(train.trainparts) do + load_wagon(wagon_id, node_inv, node_fc, unload) + end + end end - +local function load_wagon_on_timer(pos, unload) -- loading ramp when in an active area + if not advtrains.is_node_loaded(pos) then -- leave the loading for the flood load function. we're out of area + return true -- reset the nodetimer until the node is loaded again + end + local tid, tidx = advtrains.get_train_at_pos(pos) + if not tid or tid == "" then + return true + end -- no train to load. + local train = advtrains.trains[tid] + 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 true + end + local node_fc = minetest.get_meta(pos):get_string("fc") or "" + if node_fc == "#" then + --track section is disabled + return true + end + local node_inv = minetest.get_inventory({type="node", pos={x=pos.x, y=pos.y-1, z=pos.z}}) + if node_inv and train.velocity <= 2 then + local _, wagon_id, wagon_data = advtrains.get_wagon_at_index(tid, tidx) + if wagon_id then + local inv_modified = load_wagon(wagon_id, node_inv, node_fc, unload) + if inv_modified then + if advtrains.wagon_prototypes[advtrains.get_wagon_prototype(wagon_data)].set_textures then + local wagon_object = advtrains.wagon_objects[wagon_id] + if wagon_object and wagon_data then + local ent = wagon_object:get_luaentity() + if ent and ent.set_textures then + ent:set_textures(wagon_data) + end + end + end + end + end + end + return true +end + +local nodetimer_interval = minetest.settings:get("advtrains_loading_track_timer") or 1 +local function start_nodetimer(pos) + local timer = minetest.get_node_timer(pos) + timer:start(nodetimer_interval) +end advtrains.register_tracks("default", { nodename_prefix="advtrains:dtrack_unload", @@ -262,15 +794,25 @@ advtrains.register_tracks("default", { 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, - }, + after_dig_node=function(pos) + advtrains.invalidate_all_paths() + advtrains.ndb.clear(pos) + end, + on_rightclick = function(pos, node, player) + show_fc_formspec(pos, player) + end, + after_place_node = function(pos) + advtrains.ndb.update(pos) + start_nodetimer(pos) + end, + on_timer = function(pos) + return load_wagon_on_timer(pos, true) + end, + advtrains = { + on_train_enter = function(pos, train_id) + load_entire_train(pos, train_id, true) + end, + }, } end }, advtrains.trackpresets.t_30deg_straightonly) @@ -284,16 +826,25 @@ advtrains.register_tracks("default", { 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, - }, + after_dig_node=function(pos) + advtrains.invalidate_all_paths() + advtrains.ndb.clear(pos) + end, + on_rightclick = function(pos, node, player) + show_fc_formspec(pos, player) + end, + after_place_node = function(pos) + advtrains.ndb.update(pos) + start_nodetimer(pos) + end, + on_timer = function(pos) + return load_wagon_on_timer(pos, false) + end, + advtrains = { + on_train_enter = function(pos, train_id) + load_entire_train(pos, train_id, false) + end, + }, } end }, advtrains.trackpresets.t_30deg_straightonly) @@ -305,7 +856,6 @@ if minetest.get_modpath("basic_materials") then elseif minetest.get_modpath("technic") then loader_core = "technic:control_logic_unit" end ---print("Loader Core: "..loader_core) minetest.register_craft({ type="shapeless", diff --git a/advtrains_train_track/settingtypes.txt b/advtrains_train_track/settingtypes.txt new file mode 100644 index 0000000..0af0081 --- /dev/null +++ b/advtrains_train_track/settingtypes.txt @@ -0,0 +1,4 @@ +# Set the nodetimer delay for the loading tracks. +# A longer delay may cause wagons to be missed if the pass over too fast. +# A shorter delay may cause lag as wagons are checked multiple times as they pass over. +advtrains_loading_track_timer (Loading Track Timer) int 1
\ No newline at end of file diff --git a/assets/rangierhalttafel.blend b/assets/rangierhalttafel.blend Binary files differnew file mode 100644 index 0000000..7f60a38 --- /dev/null +++ b/assets/rangierhalttafel.blend diff --git a/atc_command.txt b/atc_command.txt index 9f4eb50..5a1c8ff 100644 --- a/atc_command.txt +++ b/atc_command.txt @@ -51,6 +51,10 @@ Kick all passengers out of the trains This command kicks all passengers (non-driving players) off the train. This command works only if the train is stopped and its doors are open. +Cpl +Temporarily switch the train to "Autocouple" mode and wait for coupling. +This command makes the train continue at its current speed until it hits another standing wagon or train. Then, it couples to this train and ATC command execution continues. + # conditional statements: I<condition><code>; diff --git a/readme.txt b/readme.txt deleted file mode 100644 index 05a5d5e..0000000 --- a/readme.txt +++ /dev/null @@ -1,47 +0,0 @@ - -## ADVTRAINS ## realistic trains in Minetest! -by orwell96 and contributors(see below) - -For up-to-date information, visit https://advtrains.de/ - -License of code: GNU AGPL version 3 -License of media: CC-BY-SA 3.0 - -(up to commit 1bb1d8, the license has been LGPL 2.1) - -Contributions: - -Coding: -Various features and bugfixes have been contributed by: -- gpcf -- Blockhead -- ywang -Small code contributions: -- h-v-smacker -- NaruTrey - -Assets: -Gravel Texture : from Minetest Game -Initial rail model/texture : DS-minetest -Models for signals/bumpers : mbb -Steam engine / wagon texture: mbb -Detailed Steam engine : mbb / Krokoschlange(animation) -Industrial engine/wagons : mbb -Inventory images : mbb -Mod Description : hajo -Sounds: -advtrains_crossing_bell : Codesound -advtrains_japan_horn : Codesound -advtrains_steam_whistle : googol -advtrains_subway_horn : https://freesound.org/people/Mullumbimby/sounds/385283/ -advtrains_subway_* : Gabriel (gbl08ma) -45 degree platforms design : Och_Noe - -Testers: -gpcf (Linuxworks server) -imcasper (tss Branch) - - -If I forgot someone please punish me for that. Also see the Git commit log. - -You can see this mod in action on Linuxworks Next Generation server. diff --git a/serialize_lib/tests/serialize_spec.lua b/serialize_lib/spec/serialize_spec.lua index ccc3a67..d4af8e2 100644 --- a/serialize_lib/tests/serialize_spec.lua +++ b/serialize_lib/spec/serialize_spec.lua @@ -10,7 +10,7 @@ ser = require("serialize") local mock_file = {} _G.mock_file = mock_file function mock_file:read(arg) - if arg == "*l" then + if arg == "*l" or arg== "*line" then local l = self.lines[self.pointer or 1] self.pointer = (self.pointer or 1) + 1 return l @@ -49,7 +49,7 @@ local testtable = { ["es&&ca&\npe3"] = "baz&&bam&\nbim", ["es&:cape4"] = "foo\n:bar" } -local testser = [[LUA_SER v=1 +local testser = [[LUA_SER v=2 B1:T Sa:Sb Sc:B0 @@ -81,21 +81,18 @@ local function check_read(text) return ser.read_from_fd(f) end -local noskip = [[LUA_SER v=1 +local noskip = [[LUA_SER v=2 N1:T E E END_SER ]] -local skip = [[LUA_SER v=1 +local skip = [[LUA_SER v=2 E END_SER ]] describe("write_to_fd", function() - it("serializes a table correctly", function() - assert.equals(check_write(testtable), testser) - end) it("does not skip empty tables", function() assert.equals(check_write({{}}),noskip) end) |