aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--textures/advtrains_dtrack_rail_stop.pngbin0 -> 2860 bytes
-rw-r--r--textures/advtrains_dtrack_stop_placer.pngbin0 -> 280 bytes
-rw-r--r--tracks.lua24
3 files changed, 24 insertions, 0 deletions
diff --git a/textures/advtrains_dtrack_rail_stop.png b/textures/advtrains_dtrack_rail_stop.png
new file mode 100644
index 0000000..3cfd75f
--- /dev/null
+++ b/textures/advtrains_dtrack_rail_stop.png
Binary files differ
diff --git a/textures/advtrains_dtrack_stop_placer.png b/textures/advtrains_dtrack_stop_placer.png
new file mode 100644
index 0000000..82622db
--- /dev/null
+++ b/textures/advtrains_dtrack_stop_placer.png
Binary files differ
diff --git a/tracks.lua b/tracks.lua
index 99dbb27..0b7d125 100644
--- a/tracks.lua
+++ b/tracks.lua
@@ -584,6 +584,30 @@ for _,rot in ipairs({"", "_30", "_45", "_60"}) do
minetest.register_alias("advtrains:dtrack_bumper"..rot, "advtrains:dtrack_bumper_st"..rot)
end
+advtrains.register_tracks("default", {
+ nodename_prefix="advtrains:dtrack_stop",
+ texture_prefix="advtrains_dtrack_stop",
+ models_prefix="advtrains_dtrack",
+ models_suffix=".b3d",
+ shared_texture="advtrains_dtrack_rail_stop.png",
+ description="Stop and reverse rail",
+ formats={},
+ get_additional_definiton = function(def, preset, suffix, rotation)
+ return {
+ advtrains = {
+ on_train_enter=function(pos, train_id)
+ local train = advtrains.trains[train_id];
+ local endsp = train.tarvelocity;
+ train.tarvelocity = 0;
+ train.velocity = 0;
+ minetest.after(10,function(t,sp) train.movedir = -train.movedir; t.tarvelocity=sp; end, train, endsp);
+ end
+ }
+ }
+ end
+}, t_30deg_straightonly)
+
+
if mesecon then
advtrains.register_tracks("default", {
nodename_prefix="advtrains:dtrack_detector_off",