aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.build.yml48
-rw-r--r--.dir-locals.el5
-rw-r--r--README.md108
-rw-r--r--advtrains/api_doc.txt62
-rw-r--r--advtrains/atc.lua29
-rw-r--r--advtrains/couple.lua207
-rw-r--r--advtrains/debugitems.lua30
-rw-r--r--advtrains/doc/advtrains_speed_lessp.3advtrains.md15
-rw-r--r--advtrains/doc/advtrains_speed_set_restriction.3advtrains.md18
-rw-r--r--advtrains/doc/signal_aspect.7advtrains.md24
-rw-r--r--advtrains/init.lua19
-rw-r--r--advtrains/locale/advtrains.de.tr5
-rw-r--r--advtrains/lzb.lua13
-rw-r--r--advtrains/nodedb.lua2
-rw-r--r--advtrains/occupation.lua120
-rw-r--r--advtrains/path.lua24
-rw-r--r--advtrains/signals.lua4
-rw-r--r--advtrains/spec/speed_spec.lua70
-rw-r--r--advtrains/speed.lua88
-rw-r--r--advtrains/textures/advtrains_hud_ars.pngbin132 -> 0 bytes
-rw-r--r--advtrains/textures/advtrains_hud_atc.pngbin122 -> 528 bytes
-rw-r--r--advtrains/textures/advtrains_hud_autocouple.pngbin168 -> 0 bytes
-rw-r--r--advtrains/textures/advtrains_hud_lzb.pngbin125 -> 398 bytes
-rw-r--r--advtrains/textures/advtrains_hud_ms.pngbin111 -> 0 bytes
-rw-r--r--advtrains/textures/advtrains_hud_shunt.pngbin145 -> 476 bytes
-rw-r--r--advtrains/tracks.lua3
-rw-r--r--advtrains/trainhud.lua300
-rw-r--r--advtrains/trainlogic.lua59
-rw-r--r--advtrains/wagons.lua178
-rw-r--r--advtrains_interlocking/approach.lua9
-rw-r--r--advtrains_interlocking/ars.lua4
-rw-r--r--advtrains_interlocking/database.lua22
-rw-r--r--advtrains_interlocking/signal_api.lua32
-rw-r--r--advtrains_interlocking/spec/ars_spec.lua67
-rwxr-xr-xadvtrains_interlocking/tcb_ts_ui.lua13
-rw-r--r--advtrains_luaautomation/README.md36
-rw-r--r--advtrains_luaautomation/active_common.lua18
-rwxr-xr-x[-rw-r--r--]advtrains_luaautomation/atc_rail.lua41
-rw-r--r--advtrains_luaautomation/environment.lua19
-rw-r--r--advtrains_luaautomation/init.lua5
-rw-r--r--advtrains_luaautomation/mesecon_controller.lua259
-rwxr-xr-x[-rw-r--r--]advtrains_luaautomation/operation_panel.lua6
-rw-r--r--advtrains_luaautomation/pcnaming.lua7
-rw-r--r--advtrains_luaautomation/textures/atlatc_luacontroller_LED_A.pngbin0 -> 2196 bytes
-rw-r--r--advtrains_luaautomation/textures/atlatc_luacontroller_LED_B.pngbin0 -> 2188 bytes
-rw-r--r--advtrains_luaautomation/textures/atlatc_luacontroller_LED_C.pngbin0 -> 2191 bytes
-rw-r--r--advtrains_luaautomation/textures/atlatc_luacontroller_LED_D.pngbin0 -> 2200 bytes
-rw-r--r--advtrains_luaautomation/textures/atlatc_luacontroller_bottom.pngbin0 -> 222 bytes
-rw-r--r--advtrains_luaautomation/textures/atlatc_luacontroller_sides.pngbin0 -> 504 bytes
-rw-r--r--advtrains_luaautomation/textures/atlatc_luacontroller_top.pngbin0 -> 8440 bytes
-rw-r--r--advtrains_signals_ks/doc/advtrains_signals_ks.7advtrains.md52
-rwxr-xr-xadvtrains_signals_ks/init.lua290
-rw-r--r--advtrains_signals_ks/init_degrotate_nodes.lua4
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr0.obj262
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr30.obj262
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr45.obj262
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_hfs_smr60.obj262
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr0.obj227
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr30.obj228
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr45.obj228
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs10_smr60.obj228
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr0.obj128
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr30.obj129
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr45.obj129
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_sign_zs3_smr60.obj129
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom.obj956
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr0.obj1045
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr30.obj1045
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr45.obj1045
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_bottom_smr60.obj1045
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_top.obj835
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr0.obj859
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr30.obj859
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr45.obj859
-rw-r--r--advtrains_signals_ks/models/advtrains_signals_ks_zs_top_smr60.obj859
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_hs_inv.pngbin210 -> 128 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_ltm_danger.pngbin227 -> 121 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_ltm_free.pngbin215 -> 121 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_ltm_nextslow.pngbin0 -> 148 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shunt.pngbin238 -> 135 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shuntd.pngbin239 -> 136 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_ltm_slow.pngbin219 -> 121 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_12.pngbin197 -> 129 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_16.pngbin190 -> 122 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_20.pngbin0 -> 5715 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_4.pngbin0 -> 113 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_6.pngbin0 -> 120 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_8.pngbin174 -> 106 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_e.pngbin166 -> 98 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_hfs.pngbin193 -> 11564 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_lf7.pngbin0 -> 102 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_off.pngbin0 -> 72 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_pam.pngbin211 -> 155 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_sign_zs10.pngbin0 -> 95 bytes
-rw-r--r--advtrains_signals_ks/textures/advtrains_signals_ks_zs_7.pngbin251 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]advtrains_train_track/init.lua650
-rw-r--r--advtrains_train_track/settingtypes.txt4
-rw-r--r--assets/rangierhalttafel.blendbin0 -> 125362 bytes
-rw-r--r--atc_command.txt4
-rw-r--r--readme.txt47
-rw-r--r--serialize_lib/spec/serialize_spec.lua (renamed from serialize_lib/tests/serialize_spec.lua)11
101 files changed, 12533 insertions, 2379 deletions
diff --git a/.build.yml b/.build.yml
new file mode 100644
index 0000000..303348f
--- /dev/null
+++ b/.build.yml
@@ -0,0 +1,48 @@
+image: debian/stable
+packages:
+- git
+- curl
+- minetest-server
+- unzip
+- wget
+- lua-busted
+sources :
+- https://git.sr.ht/~gpcf/advtrains
+
+tasks:
+
+- download_mt_server: |
+ mkdir bin
+ wget https://lifomaps.de/advtrains-test/builtin.tar.gz
+ tar xf builtin.tar.gz
+ curl https://lifomaps.de/advtrains-test/minetestserver -o ~/bin/minetestserver
+ chmod +x ~/bin/minetestserver
+- install_mt_game : |
+ curl -L https://github.com/minetest/minetest_game/archive/master.zip -o master.zip
+ mkdir -p .minetest/games/
+ cd .minetest/games
+ unzip ../../master.zip
+ mv minetest_game-master minetest_game
+- install_test_world: |
+ mkdir -p .minetest/worlds/
+ curl https://lifomaps.de/advtrains-test/testworld.tar.gz -o ~/testworld.tar.gz
+ cd .minetest/worlds/
+ tar xf ../../testworld.tar.gz
+- run_unit_tests : |
+ cd advtrains/advtrains
+ busted
+ cd ../advtrains_interlocking
+ busted
+ cd ../serialize_lib
+ busted
+- activate_test_env: |
+ cd advtrains
+ git merge --no-commit origin/luaatcdebug
+- install_advtrains : |
+ mkdir .minetest/mods
+ cp -r advtrains .minetest/mods
+ cd .minetest/mods
+ git clone https://git.bananach.space/basic_trains.git/
+- run_test_world: |
+ echo "bind_address = 127.0.0.1" > minetest.conf
+ ~/bin/minetestserver --port 31111 --gameid minetest_game --config ~/minetest.conf --world ~/.minetest/worlds/advtrains_testworld
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)))
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 d3e7ca9..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
@@ -106,12 +120,6 @@ advtrains.register_wagon(name, prototype, description, inventory_image)
^- both the inventory grid and a 'Wagon properties' button.
^- Use "list["..inventory_name..";<list_name>;<X>,<Y>;<W>,<H>;<Start>]" to display a wagon's inventory list.
- text_hud = function(train, flip) end
- ^- optional: Text HUD to show to the driver. The inside display is automatically prepended.
- graphical_hud = function(train, flip) end
- ^- optional: Graphical HUD to show to the driver.
- The HUD formats defined by advtrains are used by default.
-
custom_on_step = function(self, dtime) end
^- optional: Execute custom code on every step
custom_on_activate = function(self, dtime_s) end
@@ -144,48 +152,6 @@ In case there are multiple possibilities, will show a form.
If you can't enter or leave a train because the doors are closed, holding the Sneak key while right-clicking bypasses the "doors have to be open" enforcement.
-# Train HUD
-The text_hud and graphical_hud fields of the wagons allow you to specify the look of your driver HUDs.
-* The text_hud function should return a string that will be shown to the driver. This should usually include the inside display as well
-* The graphical_hud function should return a texture string and the height of the texture. This is used to allow proper positioning of the text HUD.
-
-There are currently a few pre-defined elements that can help create the graphical HUD. These functions are in the advtrains.hud table:
-* texture_escape(str): a trivial function that escapes the textures
-* digit(digit, x, y, w, h, pc, nc): displays a single digit
- * digit: the digit to display
- * x, y: the upper-left corner of the digit display
- * w, h: the width and height of a horizontal segment
- * pc: the color to show when a given segment is lit
- * nc: the color to show when a given segment is not lit
-* number(num, length, x, y, w, h, margin, pc, nc): displays a non-negative integer, possibly using multiple 7-segment displays:
- * num: the number to display
- * length: the numbers of digits to display (if nil: the number of digits in the number).
- * x, y: the upper-left corner of the digit display
- * w, h, pc, nc: (see above)
- * margin: the margin between each digit
- * The behavior of num>=10^length is undefined.
-* leverof(train): returns the lever of the train. This should be preferred over train.lever
-* lever(lever, x, y, w1, w2, h): draws a lever
- * lever: the lever of the train
- * x, y: the upper-left corner of the lever
- * w1: the width of the merkers beside the lever
- * w2: the width of the handle
- * h: the height of the lever
- * In the context of drawing (i.e. the description of the x, y, w1, w2, and h arguments), "the lever" refers to the area that the actual lever is drawn in, not the lever itself.
-* door(o, x, y, w, h, m): draws a simple door indicator
- * o: the state of the door
- * x, y, w, h: the upper-left corner and the size of the indicator
- * m: the margin between the elements of the indicator
- * The indicator includes an indicator for each door and a simple shape showing a vehicle
- * Due to the internals of this function, it is recommended that (w-2*m) is a multiple of 4
-* speed_horizontal(train, x, y, w, h, m): draws a horizontal bar showing the speed
- * train: the train table
- * x, y, w, h: the upper-left cornder and the size of the indicator
- * m: the margin between the elements of the indicator
- * h must be greater than 10
- * Due to the internals of this function, it is recommended that (w-19*m) is a multiple of 20
-* In the above functions, the behavior of negative coordinates and magnitudes (e.g. width, height, margin) and invalid data is undefined.
-
### Tracks
Most modders will be satisfied with the built-in tracks. If cog railways, maglev trains and mine trains are added, it is necessary to understand the definition of tracks. Although the tracks API is there, explaining it would require more effort than me creating the wanted definitions myself. Contact me if you need to register your own rails using my registration functions.
diff --git a/advtrains/atc.lua b/advtrains/atc.lua
index 64cdcec..c1ff218 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
@@ -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
@@ -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/couple.lua b/advtrains/couple.lua
index 336a6d4..b6a445e 100644
--- a/advtrains/couple.lua
+++ b/advtrains/couple.lua
@@ -11,17 +11,24 @@
-- 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:
- -- initiating train is reversed
- -- stationary train is reversed if required, so that it points towards the initiating train
- -- do_connect_trains(initiating, stationary)
--- As a result, the coupled train is reversed in direction. Alternative way of doing things (might be considered later):
- -- stationary train is reversed if required, so that it points away from the initiating train
-- index of initiating train is set so that it matches the front pos of stationary train
- -- wagons of stationary train are inserted at the beginning of initiating 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)
-- 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
@@ -72,8 +79,9 @@ function advtrains.train_check_couples(train)
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)
+ 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
@@ -102,8 +110,9 @@ function advtrains.train_check_couples(train)
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)
+ 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
@@ -142,14 +151,22 @@ 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("Initiating couplign between init=",init_train.id,"stat=",stat_train.id,"backside=",stat_is_backside)
- if init_train.autocouple then
- advtrains.couple_trains(init_train, true, stat_train, stat_is_front)
- else
- local pos = advtrains.path_get_interpolated(init_train, init_train.index)
- create_couple_entity(pos, init_train, true, 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
@@ -177,54 +194,154 @@ function advtrains.safe_couple_trains(train1, t1_is_front, train2, t2_is_front,
wck_t2 = check_twagon_owner(train2, t2_is_front, pname)
end
if (wck_t1 or wck_t2) or not pname then
- advtrains.couple_trains(train1, t1_is_front, train2, t2_is_front)
+
+ 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(train1, t1_is_front, train2, t2_is_front)
- --atdebug("Couple trains init=",init_train.id,"stat=",stat_train.id,"statreverse=",stat_must_reverse)
- -- see comment on top of file
- if t1_is_front then
- advtrains.invert_train(train1.id)
+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 t2_is_front then
- advtrains.invert_train(train2.id)
+ 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
- advtrains.do_connect_trains(train1, train2)
-end
+ -- only used with the couple entity
+ if invert_init_train then
+ advtrains.invert_train(init_train.id)
+ end
--- Adds the wagons of first to second and deletes second_id afterwards
--- Assumes that second_id stands right behind first_id and both trains point to the same direction
-function advtrains.do_connect_trains(first, second)
+ 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
- if not advtrains.train_ensure_init(first.id, first) then
- atwarn("Coupling: first train",first.id,"is not initialized! Operation aborted!")
+ -- 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 not advtrains.train_ensure_init(second.id, second) then
- atwarn("Coupling: second 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)
+
+ 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
-
- advtrains.remove_train(second.id)
- first.velocity = 0
+ -- TODO: migrate some of the properties from stat_train to init_train?
- advtrains.update_trainpart_properties(first.id)
- advtrains.couple_invalidate(first)
+ 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("<none>") 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("<none>") 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)
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 083281e..cc8f8d1 100644
--- a/advtrains/init.lua
+++ b/advtrains/init.lua
@@ -48,6 +48,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
@@ -198,6 +201,8 @@ advtrains.meseconrules =
advtrains.fpath=minetest.get_worldpath().."/advtrains"
+advtrains.speed = dofile(advtrains.modpath.."/speed.lua")
+
dofile(advtrains.modpath.."/path.lua")
dofile(advtrains.modpath.."/trainlogic.lua")
dofile(advtrains.modpath.."/trainhud.lua")
@@ -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
@@ -753,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/advtrains.de.tr b/advtrains/locale/advtrains.de.tr
index cd43eed..6abbc12 100644
--- a/advtrains/locale/advtrains.de.tr
+++ b/advtrains/locale/advtrains.de.tr
@@ -70,3 +70,8 @@ This track can not be removed!=Diese Schiene kann nicht entfernt werden!
Position is occupied by a train.=Ein Zug steht an dieser Position.
There's a Track Circuit Break here.=Hier ist eine Gleisabschnittsgrenze (TCB).
There's a Signal Influence Point here.=Hier ist ein Signal-Beeinflussungspunkt.
+Buffer and Chain Coupler=Schraubenkupplung
+Scharfenberg Coupler=Scharfenbergkupplung
+Japanese Train Inter-Wagon Connection=Waggonzwischenverbindung Japanischer Personenzug
+Can not couple: The couplers of the trains do not match (@1 and @2).=Kann nicht ankuppeln: Die Kupplungen der Züge passen nicht zueinander (@1 und @2)
+<none>=<keine>
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 f2b8a13..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
@@ -421,18 +434,19 @@ 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)
+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.get_trains_over(base_pos)
+ 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
diff --git a/advtrains/signals.lua b/advtrains/signals.lua
index 5fb1d1b..b26c950 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,
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/textures/advtrains_hud_ars.png b/advtrains/textures/advtrains_hud_ars.png
deleted file mode 100644
index 69aa055..0000000
--- a/advtrains/textures/advtrains_hud_ars.png
+++ /dev/null
Binary files differ
diff --git a/advtrains/textures/advtrains_hud_atc.png b/advtrains/textures/advtrains_hud_atc.png
index 7fd492a..e033653 100644
--- a/advtrains/textures/advtrains_hud_atc.png
+++ b/advtrains/textures/advtrains_hud_atc.png
Binary files differ
diff --git a/advtrains/textures/advtrains_hud_autocouple.png b/advtrains/textures/advtrains_hud_autocouple.png
deleted file mode 100644
index e89b06a..0000000
--- a/advtrains/textures/advtrains_hud_autocouple.png
+++ /dev/null
Binary files differ
diff --git a/advtrains/textures/advtrains_hud_lzb.png b/advtrains/textures/advtrains_hud_lzb.png
index 8e4004d..e1b5f70 100644
--- a/advtrains/textures/advtrains_hud_lzb.png
+++ b/advtrains/textures/advtrains_hud_lzb.png
Binary files differ
diff --git a/advtrains/textures/advtrains_hud_ms.png b/advtrains/textures/advtrains_hud_ms.png
deleted file mode 100644
index ad9d042..0000000
--- a/advtrains/textures/advtrains_hud_ms.png
+++ /dev/null
Binary files differ
diff --git a/advtrains/textures/advtrains_hud_shunt.png b/advtrains/textures/advtrains_hud_shunt.png
index 84f5c31..f4d27a5 100644
--- a/advtrains/textures/advtrains_hud_shunt.png
+++ b/advtrains/textures/advtrains_hud_shunt.png
Binary files differ
diff --git a/advtrains/tracks.lua b/advtrains/tracks.lua
index 261818e..3959232 100644
--- a/advtrains/tracks.lua
+++ b/advtrains/tracks.lua
@@ -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),
diff --git a/advtrains/trainhud.lua b/advtrains/trainhud.lua
index 6d66618..22aa6cf 100644
--- a/advtrains/trainhud.lua
+++ b/advtrains/trainhud.lua
@@ -86,18 +86,16 @@ function advtrains.on_control_change(pc, train, flip)
end
end
end
-function advtrains.update_driver_hud(pname, train, flip, thud, ghud)
+function advtrains.update_driver_hud(pname, train, flip)
local inside=train.text_inside or ""
- local ft = (thud or advtrains.hud.dtext)(train, flip)
- local ht, gs = (ghud or advtrains.hud.dgraphical)(train, flip)
- advtrains.set_trainhud(pname, inside.."\n"..ft, ht, gs)
+ local ft, ht = advtrains.hud_train_format(train, flip)
+ advtrains.set_trainhud(pname, inside.."\n"..ft, ht)
end
function advtrains.clear_driver_hud(pname)
advtrains.set_trainhud(pname, "")
end
-function advtrains.set_trainhud(name, text, driver, gs)
- gs = gs or 110
+function advtrains.set_trainhud(name, text, driver)
local hud = advtrains.hud[name]
local player=minetest.get_player_by_name(name)
if not player then
@@ -119,7 +117,7 @@ function advtrains.set_trainhud(name, text, driver, gs)
name = "ADVTRAINS",
number = 0xFFFFFF,
position = {x=0.5, y=1},
- offset = {x=0, y=-190-gs},
+ offset = {x=0, y=-300},
text = text,
scale = {x=200, y=60},
alignment = {x=0, y=-1},
@@ -129,7 +127,6 @@ function advtrains.set_trainhud(name, text, driver, gs)
else
if hud.oldText ~= text then
player:hud_change(hud.id, "text", text)
- player:hud_change(hud.id, "offset", {x=0, y=-190-gs})
hud.oldText=text
end
if hud.driver then
@@ -178,222 +175,147 @@ Value Disp Control Meaning
4 + W Accelerate
]]
-function advtrains.hud.texture_escape(str)
- return string.gsub(str, "[%[%()^:]", "\\%1")
-end
-
-function advtrains.hud.dtext(train, flip)
- local st = {}
- if train.debug then st = {train.debug} end
-
- st[#st+1] = attrans("Train ID: @1", train.id)
+function advtrains.hud_train_format(train, flip)
+ if not train then return "","" end
+ local sformat = string.format -- this appears to be faster than (...):format
- if res and res == 0 then
- st[#st+1] = attrans("OVERRUN RED SIGNAL! Examine situation and reverse train to move again.")
- end
+ local max = train.max_speed or 10
+ local res = train.speed_restriction
+ local vel = advtrains.abs_ceil(train.velocity)
+ local vel_kmh=advtrains.abs_ceil(advtrains.ms_to_kmh(train.velocity))
- if train.atc_command then
- st[#st+1] = string.format("ATC: %s%s", train.atc_delay and advtrains.abs_ceil(train.atc_delay).."s " or "", train.atc_command or "")
+ local tlev=train.lever or 1
+ if train.velocity==0 and not train.active_control then tlev=1 end
+ if train.hud_lzb_effect_tmr then
+ tlev=1
end
- return table.concat(st, "\n")
-end
-
-function advtrains.hud.sevenseg(digit, x, y, w, h, pc, nc)
+ local ht = {"[combine:440x110:0,0=(advtrains_hud_bg.png^[resize\\:440x110)"}
local st = {}
- local sformat = string.format
- local f = "%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d%s)"
- local segs = {
- {h, 0, w, h},
- {0, h, h, w},
- {w+h, h, h, w},
- {h, w+h, w, h},
- {0, w+2*h, h, w},
- {w+h, w+2*h, h, w},
- {h, 2*(w+h), w, h}}
- local trans = {
- [0] = {true, true, true, false, true, true, true},
- [1] = {false, false, true, false, false, true, false},
- [2] = {true, false, true, true, true, false, true},
- [3] = {true, false, true, true, false, true, true},
- [4] = {false, true, true, true, false, true, false},
- [5] = {true, true, false, true, false, true, true},
- [6] = {true, true, false, true, true, true, true},
- [7] = {true, false, true, false, false, true, false},
- [8] = {true, true, true, true, true, true, true},
- [9] = {true, true, true, true, false, true, true}
- }
- local ent = trans[digit or 10]
- if not ent then return end
- for i = 1, 7, 1 do
- if ent[i] then
- local s = segs[i]
- st[#st+1] = sformat(f, x+s[1], y+s[2], s[3], s[4], pc and "^[colorize\\:"..pc or "")
- elseif nc then
- local s = segs[i]
- st[#st+1] = sformat(f, x+s[1], y+s[2], s[3], s[4], "^[colorize\\:"..nc)
- end
- end
- return table.concat(st,":")
-end
-
-function advtrains.hud.number(number, padding, x, y, w, h, margin, pcolor, ncolor)
- local st = {}
- local number = math.abs(math.floor(number or 0))
- if not padding then
- if number == 0 then
- padding = 0
- else
- padding = math.floor(math.log10(number))
+ if train.debug then st = {train.debug} end
+
+ -- seven-segment display
+ local function sevenseg(digit, x, y, w, h, m)
+ --[[
+ -1-
+ 2 3
+ -4-
+ 5 6
+ -7-
+ ]]
+ local segs = {
+ {h, 0, w, h},
+ {0, h, h, w},
+ {w+h, h, h, w},
+ {h, w+h, w, h},
+ {0, w+2*h, h, w},
+ {w+h, w+2*h, h, w},
+ {h, 2*(w+h), w, h}}
+ local trans = {
+ [0] = {true, true, true, false, true, true, true},
+ [1] = {false, false, true, false, false, true, false},
+ [2] = {true, false, true, true, true, false, true},
+ [3] = {true, false, true, true, false, true, true},
+ [4] = {false, true, true, true, false, true, false},
+ [5] = {true, true, false, true, false, true, true},
+ [6] = {true, true, false, true, true, true, true},
+ [7] = {true, false, true, false, false, true, false},
+ [8] = {true, true, true, true, true, true, true},
+ [9] = {true, true, true, true, false, true, true}}
+ local ent = trans[digit or 10]
+ if not ent then return end
+ for i = 1, 7, 1 do
+ if ent[i] then
+ local s = segs[i]
+ ht[#ht+1] = sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^%s)",x+s[1], y+s[2], s[3], s[4], m)
+ end
end
- else
- padding = padding - 1
end
- for i = padding, 0, -1 do
- st[#st+1] = advtrains.hud.sevenseg(math.floor(number/10^i)%10, x+(padding-i)*(w+2*h+margin), y, w, h, pcolor, ncolor)
+
+ -- lever
+ ht[#ht+1] = "275,10=(advtrains_hud_bg.png^[colorize\\:cyan^[resize\\:5x18)"
+ ht[#ht+1] = "275,28=(advtrains_hud_bg.png^[colorize\\:white^[resize\\:5x18)"
+ ht[#ht+1] = "275,46=(advtrains_hud_bg.png^[colorize\\:orange^[resize\\:5x36)"
+ ht[#ht+1] = "275,82=(advtrains_hud_bg.png^[colorize\\:red^[resize\\:5x18)"
+ ht[#ht+1] = "292,16=(advtrains_hud_bg.png^[colorize\\:darkslategray^[resize\\:6x78)"
+ ht[#ht+1] = sformat("280,%s=(advtrains_hud_bg.png^[colorize\\:gray^[resize\\:30x18)",18*(4-tlev)+10)
+ -- reverser
+ ht[#ht+1] = sformat("245,10=(advtrains_hud_arrow.png^[transformFY%s)", flip and "" or "^[multiply\\:cyan")
+ ht[#ht+1] = sformat("245,85=(advtrains_hud_arrow.png%s)", flip and "^[multiply\\:orange" or "")
+ ht[#ht+1] = "250,35=(advtrains_hud_bg.png^[colorize\\:darkslategray^[resize\\:5x40)"
+ ht[#ht+1] = sformat("240,%s=(advtrains_hud_bg.png^[resize\\:25x15^[colorize\\:gray)", flip and 65 or 30)
+ -- train control/safety indication
+ if train.tarvelocity or train.atc_command then
+ ht[#ht+1] = "10,10=(advtrains_hud_atc.png^[resize\\:30x30^[multiply\\:cyan)"
end
- return table.concat(st,":")
-end
-
-function advtrains.hud.leverof(train)
- if not train then return nil end
- local tlev=train.lever or 3
- if train.velocity==0 and not train.active_control then tlev=1 end
if train.hud_lzb_effect_tmr then
- tlev=1
+ ht[#ht+1] = "50,10=(advtrains_hud_lzb.png^[resize\\:30x30^[multiply\\:red)"
end
- return tlev
-end
-
-function advtrains.hud.lever(lever, x, y, w1, w2, height)
- local sformat = string.format
- local hs = height/5
- local st = {
- sformat("%d,%d=(advtrains_hud_bg.png^[colorize\\:cyan^[resize\\:%dx%d)", x, y, w1, hs),
- sformat("%d,%d=(advtrains_hud_bg.png^[colorize\\:white^[resize\\:%dx%d)", x, y+hs, w1, hs),
- sformat("%d,%d=(advtrains_hud_bg.png^[colorize\\:orange^[resize\\:%dx%d)", x, y+hs*2, w1, hs*2),
- sformat("%d,%d=(advtrains_hud_bg.png^[colorize\\:red^[resize\\:%dx%d)", x, y+hs*4, w1, hs),
- sformat("%d,%d=(advtrains_hud_bg.png^[colorize\\:darkslategray^[resize\\:%dx%d)", x+(w2+w1)/2, y+(hs-w1)/2, w1, hs*4+2*w1),
- sformat("%d,%d=(advtrains_hud_bg.png^[colorize\\:gray^[resize\\:%dx%d)", x+w1, y+(4-lever)*hs, w2, hs),
- }
- return table.concat(st, ":")
-end
-
-function advtrains.hud.door(o, x, y, w, h, m)
- local sformat = string.format
- local dw = (w-m*2)/4
- local ww = w-(dw+m)*2
- local wh = h/2-m
- local st = {
- sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^[colorize\\:white)", x+dw+m, y, ww, h),
- sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d)", x+dw+m*2, y+m, ww-2*m, wh),
- sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^[colorize\\:%s)", x, y, dw, h, o==-1 and "white" or "darkslategray"),
- sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d)", x+m, y+m, dw-2*m, wh),
- sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^[colorize\\:%s)", x+w-dw, y, dw, h, o==1 and "white" or "darkslategray"),
- sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d)", x+w-dw+m, y+m, dw-2*m, wh),
- }
- return table.concat(st, ":")
-end
-
-function advtrains.hud.speed_horizontal(train, x, y, w, h, m)
- local sformat = string.format
- local barw, barh = (w-m*19)/20, h-10
- local max = train.max_speed or 10
- local res = train.speed_restriction
- local vel = advtrains.abs_ceil(train.velocity)
- local tar = train.tarvelocity
- local st = {}
- for i = 1, vel do
- st[i] = sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^[colorize\\:white)", x+(i-1)*(barw+m), y+5, barw, barh)
+ if train.is_shunt then
+ ht[#ht+1] = "90,10=(advtrains_hud_shunt.png^[resize\\:30x30^[multiply\\:orange)"
end
- for i = vel+1, max do
- st[i] = sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^[colorize\\:darkslategray)", x+(i-1)*(barw+m), y+5, barw, barh)
+ -- door
+ ht[#ht+1] = "187,10=(advtrains_hud_bg.png^[resize\\:26x30^[colorize\\:white)"
+ ht[#ht+1] = "189,12=(advtrains_hud_bg.png^[resize\\:22x11)"
+ ht[#ht+1] = sformat("170,10=(advtrains_hud_bg.png^[resize\\:15x30^[colorize\\:%s)", train.door_open==-1 and "white" or "darkslategray")
+ ht[#ht+1] = "172,12=(advtrains_hud_bg.png^[resize\\:11x11)"
+ ht[#ht+1] = sformat("215,10=(advtrains_hud_bg.png^[resize\\:15x30^[colorize\\:%s)", train.door_open==1 and "white" or "darkslategray")
+ ht[#ht+1] = "217,12=(advtrains_hud_bg.png^[resize\\:11x11)"
+ -- speed indication(s)
+ sevenseg(math.floor(vel/10), 320, 10, 30, 10, "[colorize\\:red\\:255")
+ sevenseg(vel%10, 380, 10, 30, 10, "[colorize\\:red\\:255")
+ for i = 1, vel, 1 do
+ ht[#ht+1] = sformat("%d,65=(advtrains_hud_bg.png^[resize\\:8x20^[colorize\\:white)", i*11-1)
end
- if res and res > 0 and res < max then
- st[#st+1] = sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^[colorize\\:red)", x+res*(barw+m)-m, y, m, h)
+ for i = max+1, 20, 1 do
+ ht[#ht+1] = sformat("%d,65=(advtrains_hud_bg.png^[resize\\:8x20^[colorize\\:darkslategray)", i*11-1)
end
- if tar then
- local tc = math.min(tar, max)
- st[#st+1] = sformat("%d,%d=(advtrains_hud_bg.png^[resize\\:%dx%d^[colorize\\:cyan)", x+tc*(barw+m)-m, y+5+barh, m, 5)
+ if res and res > 0 then
+ ht[#ht+1] = sformat("%d,60=(advtrains_hud_bg.png^[resize\\:3x30^[colorize\\:red\\:255)", 7+res*11)
+ end
+ if train.tarvelocity then
+ ht[#ht+1] = sformat("%d,85=(advtrains_hud_arrow.png^[multiply\\:cyan^[transformFY^[makealpha\\:#000000)", 1+train.tarvelocity*11)
end
- return table.concat(st, ":")
-end
-
-function advtrains.hud.dgraphical(train, flip)
- if not train then return "" end
- local sformat = string.format -- this appears to be faster than (...):format
-
- local max = train.max_speed or 10
- local vel = advtrains.abs_ceil(train.velocity)
- local res = train.speed_restriction
- local tar = train.tarvelocity
-
- local ht = {"[combine:450x120:0,0=(advtrains_hud_bg.png^[resize\\:450x120)"}
- if train.debug then st = {train.debug} end
-
- ht[#ht+1] = advtrains.hud.lever(advtrains.hud.leverof(train), 275, 10, 5, 30, 100)
- -- reverser
- ht[#ht+1] = sformat("245,10=(advtrains_hud_arrow.png^[transformFY%s)", flip and "" or "^[multiply\\:cyan")
- ht[#ht+1] = sformat("245,95=(advtrains_hud_arrow.png%s)", flip and "^[multiply\\:orange" or "")
- ht[#ht+1] = "250,35=(advtrains_hud_bg.png^[colorize\\:darkslategray^[resize\\:5x50)"
- ht[#ht+1] = sformat("240,%s=(advtrains_hud_bg.png^[resize\\:25x15^[colorize\\:gray)", flip and 75 or 30)
- -- first row
- ht[#ht+1] = sformat("10,10=(advtrains_hud_ars.png^[multiply\\:%s)", (not (advtrains.interlocking and train.ars_disable)) and "cyan" or "darkslategray")
- ht[#ht+1] = sformat("50,10=(advtrains_hud_lzb.png^[multiply\\:%s)", train.hud_lzb_effect_tmr and "red" or "darkslategray")
- ht[#ht+1] = sformat("90,10=(advtrains_hud_shunt.png^[multiply\\:%s)", train.is_shunt and "orange" or "darkslategray")
- ht[#ht+1] = sformat("145,10=(advtrains_hud_autocouple.png^[multiply\\:%s)", train.autocouple and "orange" or "darkslategray")
- -- second row
local lzb = train.lzb
- local noupcoming = true
if lzb and lzb.checkpoints then
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
- if spd then
- ht[#ht+1] = advtrains.hud.number(spd, 2, 10, 45, 5, 2, 2, c, "darkslategray")
- ht[#ht+1] = sformat("10,67=(advtrains_hud_ms.png^[multiply\\:%s)", c)
- else
- ht[#ht+1] = advtrains.hud.number(88, 2, 10, 45, 5, 2, 2, "darkslategray")
- ht[#ht+1] = "10,67=(advtrains_hud_ms.png^[multiply\\:darkslategray)"
+ ht[#ht+1] = sformat("130,10=(advtrains_hud_bg.png^[resize\\:30x5^[colorize\\:%s)",c)
+ ht[#ht+1] = sformat("130,35=(advtrains_hud_bg.png^[resize\\:30x5^[colorize\\:%s)",c)
+ if spd and spd~=0 then
+ ht[#ht+1] = sformat("%d,50=(advtrains_hud_arrow.png^[multiply\\:red^[makealpha\\:#000000)", 1+spd*11)
end
local floor = math.floor
local dist = floor(((oc[i].index or train.index)-train.index))
dist = math.max(0, math.min(999, dist))
- ht[#ht+1] = advtrains.hud.number(dist, 3, 35, 45, 9, 4, 2, c, "darkslategray")
- noupcoming = false
+ for j = 1, 3, 1 do
+ sevenseg(floor((dist/10^(3-j))%10), 119+j*11, 18, 4, 2, "[colorize\\:"..c)
+ end
break
end
end
end
- if noupcoming then
- ht[#ht+1] = advtrains.hud.number(88, 2, 10, 45, 5, 2, 2, "darkslategray")
- ht[#ht+1] = "10,67=(advtrains_hud_ms.png^[multiply\\:darkslategray)"
- ht[#ht+1] = advtrains.hud.number(888, 3, 35, 45, 9, 4, 2, "darkslategray")
+
+ if res and res == 0 then
+ st[#st+1] = attrans("OVERRUN RED SIGNAL! Examine situation and reverse train to move again.")
end
- ht[#ht+1] = sformat("100,45=(advtrains_hud_atc.png^[multiply\\:%s)", (train.tarvelocity or train.atc_command) and "cyan" or "darkslategray")
- if tar and tar >= 0 then
- local tc = math.min(max, tar)
- ht[#ht+1] = advtrains.hud.number(tar, 2, 135, 45, 5, 2, 2, "cyan", "darkslategray")
- ht[#ht+1] = "135,67=(advtrains_hud_ms.png^[multiply\\:cyan)"
- else
- ht[#ht+1] = advtrains.hud.number(88, 2, 135, 45, 5, 2, 2, "darkslategray")
- ht[#ht+1] = "135,67=(advtrains_hud_ms.png^[multiply\\:darkslategray)"
+
+ if train.atc_command then
+ st[#st+1] = sformat("ATC: %s%s", train.atc_delay and advtrains.abs_ceil(train.atc_delay).."s " or "", train.atc_command or "")
end
- ht[#ht+1] = advtrains.hud.door(train.door_open, 167, 45, 60, 30, 2)
- -- speed indications
- ht[#ht+1] = advtrains.hud.number(vel, 2, 320, 10, 35, 10, 10, "red")
- ht[#ht+1] = advtrains.hud.speed_horizontal(train, 10, 80, 217, 30, 3)
- return table.concat(ht,":"), 120
+ return table.concat(st,"\n"), table.concat(ht,":")
end
-local texture = advtrains.hud.dgraphical { -- dummy train object to demonstrate the train hud
- max_speed = 17, speed_restriction = 15, velocity = 14, tarvelocity = 12,
+local _, texture = advtrains.hud_train_format { -- dummy train object to demonstrate the train hud
+ max_speed = 15, speed_restriction = 15, velocity = 15, tarvelocity = 12,
active_control = true, lever = 3, ctrl = {lzb = true}, is_shunt = true,
- door_open = 1, lzb = {checkpoints = {{speed=6, index=125.7}}}, index = 0,
- hud_lzb_effect_tmr = true, autocouple = true,
+ door_open = 1, lzb = {oncoming = {{spd=6, idx=125.7}}}, index = 0,
}
minetest.register_node("advtrains:hud_demo",{
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua
index 00c04bf..f136577 100644
--- a/advtrains/trainlogic.lua
+++ b/advtrains/trainlogic.lua
@@ -143,8 +143,11 @@ minetest.register_on_joinplayer(function(player)
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
@@ -251,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
@@ -387,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:
@@ -418,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
@@ -609,7 +619,7 @@ function advtrains.train_step_b(id, train, dtime)
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.get_trains_over(base_pos)
+ 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
@@ -639,9 +649,10 @@ function advtrains.train_step_b(id, train, dtime)
-- 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)
+ 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 then
+ 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 = {
@@ -711,12 +722,15 @@ function advtrains.train_step_c(id, train, dtime)
if train.ontrack_collision_info then
train.velocity = 0
train.acceleration = 0
- advtrains.atc.train_reset_command(train)
+ --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
@@ -1039,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
@@ -1108,6 +1131,7 @@ 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
@@ -1130,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
@@ -1139,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
@@ -1153,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
@@ -1190,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
@@ -1216,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
@@ -1229,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]
diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index 596c272..62e65af 100644
--- a/advtrains/wagons.lua
+++ b/advtrains/wagons.lua
@@ -307,7 +307,7 @@ function wagon:on_step(dtime)
local has_driverstand = pname and advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist)
has_driverstand = has_driverstand and self:is_driver_stand(seat)
if has_driverstand and driver then
- advtrains.update_driver_hud(driver:get_player_name(), self:train(), data.wagon_flipped, self.text_hud, self.graphical_hud)
+ advtrains.update_driver_hud(driver:get_player_name(), self:train(), data.wagon_flipped)
elseif driver then
--only show the inside text
local inside=self:train().text_inside or ""
@@ -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
@@ -1316,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
@@ -1384,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_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..50fb2bc 100644
--- a/advtrains_luaautomation/active_common.lua
+++ b/advtrains_luaautomation/active_common.lua
@@ -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", "LuaATC component, unconfigured.")
local ph=minetest.pos_to_string(pos)
--just get first available key!
for en,_ in pairs(atlatc.envs) do
@@ -48,7 +48,7 @@ function ac.getform(pos, meta_p)
.."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.."]"
+ .."label["..atlatc.CODE_FORM_ERRLABELPOS..";"..err.."]"
return form
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", "LuaATC component, assigned to environment '"..nodetbl.env.."'")
else
- meta:set_string("infotext", "LuaAutomation component, invalid enviroment set!")
+ meta:set_string("infotext", "LuaATC component, invalid enviroment set!")
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
diff --git a/advtrains_luaautomation/atc_rail.lua b/advtrains_luaautomation/atc_rail.lua
index b862129..aac11f0 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 Rail"),
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..c51aa71 100644
--- a/advtrains_luaautomation/init.lua
+++ b/advtrains_luaautomation/init.lua
@@ -14,6 +14,8 @@ minetest.register_privilege("atlatc", { description = "Player can place and modi
--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..bffff84
--- /dev/null
+++ b/advtrains_luaautomation/mesecon_controller.lua
@@ -0,0 +1,259 @@
+-- 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 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 = "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..c118ff3 100644..100755
--- a/advtrains_luaautomation/operation_panel.lua
+++ b/advtrains_luaautomation/operation_panel.lua
@@ -1,13 +1,13 @@
-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 = "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..71f4d9a 100644
--- a/advtrains_luaautomation/pcnaming.lua
+++ b/advtrains_luaautomation/pcnaming.lua
@@ -44,7 +44,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
diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_A.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_A.png
new file mode 100644
index 0000000..c6182cc
--- /dev/null
+++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_A.png
Binary files differ
diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_B.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_B.png
new file mode 100644
index 0000000..04c2da0
--- /dev/null
+++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_B.png
Binary files differ
diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_C.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_C.png
new file mode 100644
index 0000000..01f6ae4
--- /dev/null
+++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_C.png
Binary files differ
diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_LED_D.png b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_D.png
new file mode 100644
index 0000000..6c8a26f
--- /dev/null
+++ b/advtrains_luaautomation/textures/atlatc_luacontroller_LED_D.png
Binary files differ
diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_bottom.png b/advtrains_luaautomation/textures/atlatc_luacontroller_bottom.png
new file mode 100644
index 0000000..7ae955c
--- /dev/null
+++ b/advtrains_luaautomation/textures/atlatc_luacontroller_bottom.png
Binary files differ
diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_sides.png b/advtrains_luaautomation/textures/atlatc_luacontroller_sides.png
new file mode 100644
index 0000000..40f4b60
--- /dev/null
+++ b/advtrains_luaautomation/textures/atlatc_luacontroller_sides.png
Binary files differ
diff --git a/advtrains_luaautomation/textures/atlatc_luacontroller_top.png b/advtrains_luaautomation/textures/atlatc_luacontroller_top.png
new file mode 100644
index 0000000..a5059af
--- /dev/null
+++ b/advtrains_luaautomation/textures/atlatc_luacontroller_top.png
Binary files differ
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
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_danger.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_danger.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_free.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_free.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_nextslow.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_nextslow.png
new file mode 100644
index 0000000..b8f5b02
--- /dev/null
+++ b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_nextslow.png
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shunt.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shunt.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shuntd.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_shuntd.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_slow.png b/advtrains_signals_ks/textures/advtrains_signals_ks_ltm_slow.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_12.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_12.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_16.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_16.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_20.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_20.png
new file mode 100644
index 0000000..71b540d
--- /dev/null
+++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_20.png
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_4.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_4.png
new file mode 100644
index 0000000..21318b3
--- /dev/null
+++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_4.png
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_6.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_6.png
new file mode 100644
index 0000000..b7c5a51
--- /dev/null
+++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_6.png
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_8.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_8.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_e.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_e.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_hfs.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_hfs.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_lf7.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_lf7.png
new file mode 100644
index 0000000..8ce24dc
--- /dev/null
+++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_lf7.png
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_off.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_off.png
new file mode 100644
index 0000000..6b077ec
--- /dev/null
+++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_off.png
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_pam.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_pam.png
index 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
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_sign_zs10.png b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_zs10.png
new file mode 100644
index 0000000..e14c64f
--- /dev/null
+++ b/advtrains_signals_ks/textures/advtrains_signals_ks_sign_zs10.png
Binary files differ
diff --git a/advtrains_signals_ks/textures/advtrains_signals_ks_zs_7.png b/advtrains_signals_ks/textures/advtrains_signals_ks_zs_7.png
deleted file mode 100644
index 3c4b1e2..0000000
--- a/advtrains_signals_ks/textures/advtrains_signals_ks_zs_7.png
+++ /dev/null
Binary files differ
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
new file mode 100644
index 0000000..7f60a38
--- /dev/null
+++ b/assets/rangierhalttafel.blend
Binary files differ
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)