Commit Graph

481 Commits (master)

Author SHA1 Message Date
orwell96 5f290819cd Correct last commit 2019-01-22 00:13:11 +01:00
orwell96 1965e846b6 Debugging code to trace down path_invalidate within callbacks error 2019-01-22 00:06:59 +01:00
orwell96 85f1600f53 Workaround 2019-01-21 23:57:19 +01:00
orwell96 f705feb4ee Do not run train steps when path has been deleted 2019-01-21 23:40:09 +01:00
orwell96 f162ebf63f Avoid division through zero in get_acceleration 2019-01-21 22:41:57 +01:00
orwell96 e915b61da6 Index NaN check (tracking obscure error detected on LW migration) 2019-01-21 22:26:11 +01:00
orwell96 97145e0f06 Additional info print for path_print() 2019-01-21 22:16:00 +01:00
orwell96 12f8e26cb4 Do not clear tarvelocity when setting new, potential no-op command 2019-01-15 15:38:17 +01:00
orwell96 c3c96274be Add "routingcode" property
Used for ARS and stop points
2019-01-09 16:10:56 +01:00
orwell96 b332a31d48 Make track protection radius configurable 2018-12-18 11:56:48 +01:00
orwell96 36357bd444 Fix player_to_train_mapping (H#74)
Entries were not inserted, thus neither damage protection nor teleport-to-train did work
2018-12-16 20:39:55 +01:00
orwell96 fb10420c38 Fix 144e1fc4e0 (there's no self in one of the instructions) 2018-12-10 23:07:27 +01:00
orwell96 c8788e6ca7 Fix crashes:
1. when train hit a route, nil access to already cancelled route caused crash
2. fix crash when trying to ensure_init a train that doesn't exist
2018-12-10 22:57:16 +01:00
orwell96 144e1fc4e0 Change get_inventory_formspec API - add invname parameter 2018-12-10 22:54:23 +01:00
orwell96 c3c5431412 Shunt signals (not exactly Ks), along with fixes in other components that those rely on 2018-12-08 17:12:57 +01:00
orwell96 e37f4f9188 Apply speed restriction 0.5 indexes later, do not cap tarvelocity by speed_restriction 2018-12-04 19:27:44 +01:00
orwell96 ec68eaa229 Added on_train_approach callback, non-permanent external LZB brakepoints and basis for "stop rails"
Stop rails ATM use the aforementioned things to add a pointwise "2" speed restriction. Seems to work.
2018-11-29 17:52:56 +01:00
orwell96 01ffee4d58 Implement new position encoding function and benchmark it
This shall replace all "pos_to_string" hashes in the long term. Performs a bit better than pos_to_string (but still worse than the "nested tables" layout the nodedb uses
(an unmatched open parenthesis leaves a tension that will stay all day... 2 do even more
2018-11-29 17:00:57 +01:00
orwell96 0f295ec4a9 Fix discouple positioning when wagon was just loaded 2018-11-20 12:37:34 +01:00
orwell96 df29faccc0 Remove superfluous "tarvelocity" assignments 2018-11-20 12:03:34 +01:00
orwell96 37166b5c14 Make "Line" property accessible from OBC and gettable via LATC, change subway wagon texture handling 2018-11-20 11:57:46 +01:00
orwell96 8b80742fa5 Remove debug print 2018-11-20 00:24:39 +01:00
orwell96 5874a6d3f4 Fix protection regarding tracks (track_builder and railway_operator) and documentation on privileges 2018-11-12 22:24:56 +01:00
orwell96 07fa21f992 Increase savefile version to 2
(Master downgrade protection)
2018-11-10 22:53:12 +01:00
orwell96 b872bdae82 Remove "couple locks" and apply protection to the actual coupling process, and fix permissions on that 2018-11-10 12:12:52 +01:00
orwell96 06216b0ca1 No static_save for discouple entities 2018-10-30 15:42:30 +01:00
orwell96 fbed4e29d1 Document fix 0a982b6356
Add comment that explains why fix was necessary
2018-10-29 23:51:41 +01:00
orwell96 0a982b6356 Actually set last_connid to 1, to prevent warning 2018-10-29 23:42:47 +01:00
orwell96 93726db4e3 Handle the case that a train is not initialized (train_ensure_init returns nil/false)
Fixes H#72
2018-10-29 21:19:49 +01:00
orwell96 60b7254992 atdump() to treat certain values special 2018-10-29 19:32:43 +01:00
orwell96 9f6ae55e37 Small fixes which do not have any effect 2018-10-29 16:04:36 +01:00
orwell96 e194732596 Complete Ks Main signals 2018-10-26 18:41:24 +02:00
orwell96 fe4b4a695a Fix node database ATC rail bug
After successfully registering newly-placed ATC rails in the nodedb, the rail's after_place_node() callback
(local apn_func()) immediately cleared it again by passing a "node" object that was actually a player object
and thus had no "name" or "param2" to ndb.update(), which it handled how it should not in this situation.
Since those ndb.update calls were unnecessary anyways, I removed them completely.
2018-10-17 21:05:06 +02:00
orwell96 267ce6fe6d Prevent any user control except "Brake" when an ATC override is present
Solves the problem of accidentally breaking atc-driven trains
2018-10-17 19:10:37 +02:00
orwell96 b4534c6f12 Improve ATC-LZB-User control interaction, smoothen LZB control operations
(prevent flickering view when atc battles against lzb)
2018-10-17 18:58:57 +02:00
orwell96 cd38b17eab Address H#60, H#17, M#18 and M#7
duplicate "message" to "msg"
make operation panel "cracky"
remove inexistent dtime_s parameter
add bones:bones to the list of not_blocking_trains nodes
2018-10-17 18:11:11 +02:00
orwell96 c6bef1c358 Fix H#69
Cause was a cascaded crash, original cause was something different
2018-10-17 17:45:51 +02:00
orwell96 87621caf1f Fix H#66 (Hemiptera 66) crash on missing double_conn match 2018-10-17 17:42:32 +02:00
orwell96 e04d84cb4c Actually allow what manual promises (setting IP on non-assigned signals) 2018-10-17 17:37:03 +02:00
orwell96 11fe530e18 Properly handle speed restrictions 2018-10-10 23:31:12 +02:00
orwell96 9db52bcd32 Remote Routesetting from Onboard Computer
+ Fix lzb oncoming item deletion/speed restriction
2018-10-10 23:17:31 +02:00
orwell96 842a85606e Properly implement invalidate_all_paths, recheck lzb on aspect change 2018-10-10 22:41:59 +02:00
orwell96 33c839b40d Add signal safety control override, restructure control system 2018-10-10 21:49:52 +02:00
orwell96 8f8f009425 Make signal influence point (~halt point) specifiable
Also extend signal api necessarily
2018-10-09 12:07:23 +02:00
orwell96 8df7bcf6b6 Improve route programming:
- Formspec for TCBs instead of unhandy chatcommands
- Ability to advance route over the next secction without punching end
- Better visualization
- Ability to route into dead-end sections
2018-10-07 22:21:49 +02:00
orwell96 2596866b74 Add interlocking guide/manual, silence debug outputs 2018-09-14 21:36:59 +02:00
orwell96 05cb6090ac Move passive API to the advtrains core
to remove dependency of interlocking on luaautomation
2018-08-16 19:18:03 +02:00
orwell96 5fad61e9c9 Fix various bugs found while testing 2018-08-13 11:27:38 +02:00
orwell96 3dc5b28774 Teleport player to their train every 2 seconds instead of just on_joinplayer
Solves problem of wagon being unloaded while player sitting inside it because of network lag
2018-08-12 18:01:50 +02:00
orwell96 b80ba056d9 Fix some incompatibility crash for old worlds 2018-08-12 17:56:02 +02:00
h-v-smacker 6d7d9d0181 onboard computer fix 2018-08-12 17:53:03 +02:00
Gabriel Pérez-Cerezo ffc3cf9d10 Remove redundant digtron.lua file 2018-08-12 17:51:09 +02:00
Gabriel Pérez-Cerezo a7bb207007 Make digtron able to build tracks. 2018-08-12 17:50:37 +02:00
orwell96 0ec89364c0 Fix ATC rail reversing 2018-08-12 16:36:20 +02:00
orwell96 cb56b8b49a Signal aspect handling, make default signals compatible, fix signal digging 2018-08-12 14:25:38 +02:00
orwell96 6cdb47edd2 Add routesetting callbacks.
Now, only the signal aspect setting is still missing
2018-08-12 13:23:36 +02:00
orwell96 c34794e8a1 Implement routesetting
Missing things: signal aspect updating, waiting routes handling, management /info tool
2018-07-21 16:31:00 +02:00
orwell96 031aab4633 Signal assignment and route programming procedure 2018-07-04 17:48:33 +02:00
orwell96 9586a4d709 Add off-track train flag, fixes wagon object property reset on reversing 2018-07-04 14:04:41 +02:00
orwell96 820503ba81 Implement trains blocking sections 2018-06-29 16:16:55 +02:00
orwell96 1a64e96ae9 Complete Track Section handling, incl. removing tcb's and marker entities 2018-06-26 10:46:40 +02:00
orwell96 e1ebbff23c Add track section concept and rework TCB design, implement new linking behavior 2018-06-21 20:34:20 +02:00
orwell96 5992618ee8 Add Track Circuit Breaks (TCBs), Database and Track Circuit Setup
Does not get saved yet.
2018-06-20 20:13:12 +02:00
orwell96 08ac0f9c05 Check for inventory existence before serializing, and do not create it again if it already exists. 2018-06-19 19:49:24 +02:00
orwell96 b59c89f35a Fix Boardcom and Wagon properties not being shown 2018-06-18 18:54:00 +02:00
orwell96 a961e7f672 Fix box wagon inventory serialization and make box wagons protected. 2018-06-14 22:25:54 +02:00
orwell96 a758426835 Correct some documentation 2018-06-14 21:31:35 +02:00
imcasper 105aacccf9 Update nodedb.lua
correct read/write file binary data
2018-06-14 17:39:42 +02:00
orwell96 3d7924c751 Fix bugs found while testing 2018-06-14 17:39:42 +02:00
orwell96 521112aced add option to show train and wagon id 2018-06-14 17:39:42 +02:00
orwell96 2a76d4a960 Fix final bugs and to-do's (u.a.save/load system) 2018-06-14 17:39:42 +02:00
orwell96 254c32e304 Fix yaw calculations, track placement orientation and speed up direction lookup functions 2018-06-14 17:39:42 +02:00
orwell96 24b0639c5f Mainly make collisions and coupling work
Missing: ATC stuff, yaw problems
2018-06-14 17:39:42 +02:00
orwell96 5dca155333 Implement collisions. (does not work yet, still code errors) 2018-06-14 17:39:42 +02:00
orwell96 b420a71939 Implement a reverse path lookup for trains instead of an occupations window system 2018-06-14 17:39:42 +02:00
orwell96 caf2bda7bc Fix path_dir to actually be an angle, path item deletion and orientation of wagons
The occupation system as it is now will change. For each position, I will save the index in the train's path,
and implement a callback system. I need this because the occupation window system will not be enough to cover all use cases
(e.g. to make a train stop with it's center or back at a certain position, I need 3 different brake distances, which doesn't fit into the scheme)
2018-06-14 17:39:42 +02:00
orwell96 139a26fccc Bugfixes part 1
There's something wrong with the new paths, next time build a path validity checker to trace the issue
2018-06-14 17:39:42 +02:00
orwell96 30e98520e7 Occupation System, new train steps, still incomplete 2018-06-14 17:39:42 +02:00
orwell96 064a454117 Adapt wagons to new path system
Still outstanding: trains
2018-06-14 17:39:42 +02:00
orwell96 3420a1a912 Restructure path system
The changes to the path system have not yet been integrated...
2018-06-14 17:39:42 +02:00
Gabriel Pérez-Cerezo da0e7ac756
make platform creation possible from other mods 2018-06-10 17:40:37 +02:00
Gabriel Pérez-Cerezo 38d10acca2
Merge branch 'master' of https://github.com/orwell96/advtrains 2018-06-10 17:30:50 +02:00
orwell96 8b576357ef Rework the privilege system completely
See privilege_guide.txt for information
2018-03-14 20:57:07 +01:00
Gabriel Pérez-Cerezo e22e8ad0b9
fixed unmerged stuff 2018-02-22 11:06:22 +01:00
Gabriel Pérez-Cerezo 8ca7325d7c
Merge https://github.com/orwell96/advtrains into log 2018-02-22 11:03:53 +01:00
Gabriel Pérez-Cerezo 481f6218a8 Log certain events in a logfile in the world directory
(also fix the output of /at_sync_ndb)
2018-02-21 20:03:34 +01:00
orwell96 4c512f1dc5
Allow wagon owners to drive their trains #2
The check was missing at check_seat_group_access
2018-02-20 16:39:31 +01:00
orwell96 e9322075a3
Allow wagon owners to control their own trains
...even without the train_operator privilege
This still doesn't allow them to control switches, but whatever...
2018-02-20 16:22:31 +01:00
Gabriel Pérez-Cerezo 81d637dc76
added separate logging for railway networks 2018-02-18 22:52:57 +01:00
orwell96 06cdb14f3d
Do not crash when player gets on a train while it`s turning 2018-02-07 22:29:08 +01:00
orwell96 c93a5bf390 Simplify /at_reroute
It is not necessary to reload the save files, because there already is a function to invalidate train routes e.g. when turnouts are switched
2018-01-23 13:14:40 +01:00
orwell96 418c026038 Correct discouple position
Discouple entity was falsely placed at the position of the wagon
instead of at its end
2018-01-22 22:44:55 +01:00
orwell96 8ef6e9a529
Fix crash
IDK why this happens, but it's not important.
2018-01-17 20:15:06 +01:00
orwell96 fa7f05fd0c
Actually use the static_save property
My PR on this was merged months ago, but i've just noticed that i'm not using it yet
2018-01-15 22:17:56 +01:00
orwell96 e9946d98ac Relayout Wagon Properties form
The button wasn't visible on the screen anymore
2018-01-15 14:45:51 +01:00
orwell96 11da67f426
Add "seat_access" to saved fields
Fixes seat access properties not being saved
Reported by Och_Noe in Linuxworks Server
2018-01-15 13:35:50 +01:00
orwell96 27afd89d1b
Use directory delimter constant
Reported by @kostett, probably the cause of buggy nodedb saving
2018-01-15 13:33:43 +01:00
orwell96 7507dbba3a Add train_operator privilege check on discouple 2018-01-09 22:04:25 +01:00
orwell96 79da249c3d Add bord computer to trains
Features:
- couple/decouple trains from a driver stand
- new couple lock system (owner based, overridable by 'train_remove' privilege)
- all train operators can now change the inside/outside text, allows for multilines
Accessible via right-click menu or by pressing Sneak+Jump keys
2018-01-09 21:30:56 +01:00
orwell96 33a8f0f570 Move driving_ctrl_access property to seat group
there's now a more strict check for the train_operator privilege
Also added custom reasons on getting on a train.
2018-01-09 18:30:29 +01:00
orwell96 ae88f29481 Don't use looped sounds on subway
(causes engine bugs with dangling sound handles)
2018-01-07 20:52:15 +01:00
orwell96 1f26781b6a Change controls for trains (again) 2018-01-07 20:41:48 +01:00
orwell96 07442cfe8f Decrease the amount of garbage saved in save files 2018-01-07 19:00:43 +01:00
orwell96 e3b7046968 Remove path invalidation statement.
Caused problems on multiple detector rails in a row, because paths got cleared in-between a train step
Also optimize some code
2017-12-18 23:44:01 +01:00
orwell96 8a51a10a61 Fix detector lookup in ATC rails 2017-12-18 23:26:01 +01:00
orwell96 09838252fe Do not spam the server chat with messages from /at_sync_ndb and trains going off_track
The off-track warning has moved into the info text of wagons
2017-12-18 23:20:29 +01:00
orwell96 46c4447da0 Rewrite rail connection system...
...to support an arbitrary number of connections for rails, which leads to these new features:
- switches now get recognized by the trackworker correctly
- ability to add real rail crosses
During this, I also rewrote the rail registering system and the conway function (important part of path prediction)
Note, developers: the track preset format changed, you might need to rewrite them according to the presets in tracks.lua if you wrote your own
(possibly breaks advcarts)
2017-12-18 23:09:23 +01:00
orwell96 faa60e2bd4 Use preferred rail orientation algorithm also for double connections 2017-12-18 12:39:38 +01:00
orwell96 cd0aaa53a0 Move train_load() function into advtrains_train_track 2017-12-18 12:21:54 +01:00
orwell96 e9c51dfab4
Make sure an old_velocity is always passed
Fixes crash on placing a new subway wagon
2017-12-06 21:27:04 +01:00
orwell96 dc67ff7226 Implement sound api and some sounds
- Level crossing bell
- Horns
- Subway train driving and door sounds
...to be continued...
2017-12-06 13:23:55 +01:00
orwell96 83df46d786 Change name of update_animation function
I will use this for sounds, and so it needs to be changed to a more general name
2017-11-29 17:20:46 +01:00
orwell96 7681de96c9
remove superfluous parameter
... from update_trainpart_properties call
Prohibits flipping of all wagons when extent_h wasn't set
2017-11-27 17:46:01 +01:00
orwell96 a3d3520fdb Do not modify rails that should not be modified
... when placing tracks, such as slopes
Fixes slopes being replaced by curves.
Also, check the node below for connection (does not check rely, but that would be uneccessary)
2017-11-24 12:31:46 +01:00
orwell96 ef076d6435 Merge branch 'master' of https://github.com/orwell96/advtrains 2017-11-24 12:07:23 +01:00
orwell96 3d29635a8f Correct yaw to preferred rail direction calculation 2017-11-24 12:06:46 +01:00
orwell96 7ea41df5d9
Preserve the player's looking direction
Contributed by @gpcf
2017-11-23 19:59:21 +01:00
orwell96 d78d07589d Add modifiable wagon extents
This will be required for advcarts
2017-11-23 17:00:39 +01:00
orwell96 5fc6cc7f5b Fix multiple track types not working simultaneously
Bug was caused by the drives_on table of every train and advtrains.all_tracktypes
sharing the same reference, which caused advtrains.all_tracktypes to become the
intersection of all train drives_on's in the world.
However, this did become empty, causing nothing to work anymore.
2017-11-22 23:13:42 +01:00
orwell96 2d4833b5a8 do not register wagons in the advtrains namespace automatically
One step towards advcarts compatibility
2017-11-22 22:16:08 +01:00
orwell96 409e2125c9 Make trackplacer align rails by any tracks, not just by tracks with the same nnpref
This finally fixes the need to rotate atc rails and bumpers.
Also prefers rotation that is closer to the player's look dir (placed bumpers will face the player)
2017-11-22 20:46:36 +01:00
orwell96 ce73643b10
Do not punch signs
For some reason, a sign text gets removed by a train when it drives by.
This should fix it.
2017-11-14 23:16:08 +01:00
orwell96 17ee62dc64
Fix occasional crash in discouple on_punch
I think the issue is caused by the new animal damage code...
2017-11-14 22:08:56 +01:00
orwell96 480011c781
Fix entity damage
Animals from mobs weren't damaged because they have the immortal group set.
Instead, we check for the existence of "fleshy".
2017-11-02 18:00:38 +01:00
orwell96 9294e770ca Change name of the node database group in order to clone node database code into a library mod
advtrains will keep its own node database code for reasons of crash recovery, with the handicap that improvements to nplib need to be manually backported.
2017-10-31 13:52:32 +01:00
orwell96 cac7753158 Punch non-player objects when they get overridden by a train. 2017-10-25 14:04:20 +02:00
orwell96 3659fa9e63 Fix subway train placer 2017-10-25 13:31:01 +02:00
orwell96 c5256fb3aa Some workaround fixes for Linuxworks server
Trains no longer get deleted when there's no rail
Fast item to create subway train
2017-10-25 12:34:49 +02:00
orwell96 f1a8b4f505 Implement multi-occupation in detector.on_node table to finally fix collisions 2017-10-25 11:49:34 +02:00
orwell96 1f9a9062e0 Replace many math.floor(x+0.5) calls (or math.floor calls that should be those) by custom atround() function 2017-10-25 10:51:19 +02:00
orwell96 c67770833b Fix coupling and collisions in certain cases
If a train moved towards another train, and the other train's step was executed after the first one's, the trains did eventually not collide.
Fix by moving the enter_node and collision check to step_b
Also change some couple behavior
2017-10-25 10:33:41 +02:00
Gabriel Pérez-Cerezo f228e2d30e Moved default train track to separate mod, for integration with advcarts. 2017-10-25 09:52:10 +02:00
orwell96 291da56aa2 Fix last commit 2017-10-23 14:02:40 +02:00
orwell96 850d8ac570 Fix continous object_property modification
This problem caused flickering of door animations on subways.
2017-10-23 13:56:59 +02:00
Gabriel Pérez-Cerezo 11d6a12ce7 Set wagon line number 2017-10-23 13:40:20 +02:00
orwell96 be771d9413 Prefer saved nodedb node before node loaded from map
Possibly fixes bug on linuxworks server.
2017-10-11 12:45:37 +02:00
orwell96 6ade65b6d6 Merge remote-tracking branch 'lemon-melon-repo/master' 2017-10-11 12:32:23 +02:00
orwell96 0dfb0fce22 Do not crash when train_pos is nil while checking wagon entity loading 2017-10-11 11:53:14 +02:00
orwell96 b6a5620cd3 Fix error cascade due to inexistent drb_dump when debugging is disabled 2017-10-11 11:22:35 +02:00
rubenwardy d65c4916ce Remove zip release files, move mod to root, exclude assets from Makefile (#92) 2017-09-20 18:05:04 +02:00
MBB b75c83ea43 Merge PR from mbb - Improve models and textures 2017-08-24 19:26:40 +02:00
Gabriel Pérez-Cerezo 9826161a14 Added command to reroute trains 2017-08-15 14:35:42 +02:00
Gabriel Pérez-Cerezo c894dee7ef Fixed #86 2017-08-15 14:35:41 +02:00
lemon-melon c184c00f26 Add speed as number in km/h to train hud 2017-07-15 16:04:08 +01:00
lemon-melon efc319f877 Add m/s to km/h helper function 2017-07-15 16:01:15 +01:00
orwell96 a34ff7664a Add command to throw all players out of trains, fixes #78 2017-06-12 21:13:53 +02:00
orwell96 05704ac016 Fix broken door animations caused by continuous set_object_properties() messages sent to client
... which each time caused the animation to be reset
2017-06-08 14:20:40 +02:00
orwell96 af46d180f8 lower capacity of freight cars 2017-06-08 11:13:53 +02:00
orwell96 3abd0f0e34 Change log level of save_all message to atprint() 2017-06-08 11:07:45 +02:00
orwell96 e1fce28fac Do not clear the F table when running the init code fails 2017-06-08 11:05:24 +02:00
orwell96 d78450bb7c Merge pull request #67 from AntumDeluge/settings
Replace deprecated methods
2017-06-08 10:52:36 +02:00
AntumDeluge f6b00f882c Check if 'digtron' global exists before calling in condition:
Fixes 'Undeclared global variable "digtron"'.
2017-06-07 17:38:25 -07:00
AntumDeluge 7db4a5f039 Replace deprecated methods:
- 'setting_get' with 'settings:get'
- 'setting_getbool' with 'settings:get_bool'
2017-06-07 03:53:52 -07:00
gpcf 92af0b53e5 Add loading/unloading rails (#63)
Pull request by gpcf
Will update zip file with next release
2017-05-31 21:32:05 +02:00
orwell96 93250ca3a2 Fix still broken ndb restoring, and make sid() honor nil values 2017-05-31 15:55:45 +02:00
orwell96 ca6989b560 Fix detector rails changing to default orientation
Release 1.8.1
2017-05-30 15:19:24 +02:00
orwell96 b8a3ac038f Re-add option for debugging features and add option to disable collisions 2017-05-30 15:16:56 +02:00
orwell96 5ebadbd6ff Fix collision bug (trains driving through each other) 2017-05-30 14:55:41 +02:00
orwell96 e484654f89 Re-add debug ring buffer and print its contents on a lua crash
When the crash on linuxworks has been fixed, the ringbuffer will go into master and behind an option
also fix last commit
2017-05-30 09:20:01 +02:00
orwell96 74c8784b21 Fix command + Update zip file - Version 1.8 2017-05-22 16:18:24 +02:00
orwell96 d22b9fb011 Add Digtron compatibility
Override digtron's item-place function to be able to place tracks with digtrons.
2017-05-22 15:44:25 +02:00
orwell96 9132c5d996 Fix some 'undeclared assignment' warnings 2017-05-22 15:13:43 +02:00
orwell96 0f14562112 Fix Syntax Error 2017-05-22 15:08:10 +02:00
orwell96 d85f95ad10 Fix issue #40
Was caused by arrowconn not being set. Instructs user to revisit.
2017-05-22 15:01:38 +02:00
orwell96 5fe0ba1f24 Remove the debug setting 2017-05-22 14:59:35 +02:00
orwell96 b6cbc36192 Fix a series of bugs
- Prevent min_iot from becoming a comma value, which caused a major problem on the linuxworks server
- Fix previous commit
- also restore the nodedb file after a crash
Other changes:
- add chatcommand to update the nodedb after using WorldEdit
2017-05-22 14:56:41 +02:00
orwell96 2f2a859e08 Don't invoke conway on a path item that has been over-generated
This breaks ATC systems that are based on wronly switched switches, but fixes a series of bugs (esp. setting train recovery positions at a place where no tracks are)
2017-05-15 12:46:58 +02:00
orwell96 da884afbb1 write the saved nodedb state back to the map when restoring after a crash
also, print a complete stack trace when an error happens
also, don't replace nodes in the nodedb when worldedit has been used
2017-05-12 21:57:51 +02:00
orwell96 5aaf493cef Remove pos_to_string whereever possible to prevent crashes 2017-05-12 19:59:42 +02:00
orwell96 dbe13e67f1 Relicensing media under CC-BY-SA 2017-05-04 16:50:44 +02:00
orwell96 28717b4d65 Performance improvements: Don't clear paths unless absolutely necessary
instead delete path elements that are too far from the train one-by-one
Also when switching a switch or changing rails, only clear train paths of trains that are nearby.
2017-05-03 16:31:13 +02:00
orwell96 0c7144bcc4 Merge nocrash branch into master and merging it with the unified functions so that restoring works how it should
Also fix minor bugs and an occasional crash with couples
2017-04-29 19:44:43 +02:00
orwell96 331db7ba5f Unify globalstep, load and save of all components into single functions 2017-04-29 19:13:15 +02:00
orwell96 f42b01c74b Add pcall wrapper to prevent server crashes when advtrains throws an error
Instead, read save files again and restore state before the crash
Rebased to latest commit
2017-04-29 14:53:00 +02:00
orwell96 337db2a573 Add Andrew's Cross 2017-04-27 15:33:40 +02:00
orwell96 64dcbad3d2 Fix bug introduced by last commit (revert change) 2017-04-12 15:11:44 +02:00
orwell96 fe8794b353 Add privilege for basic train operation.
This privilege is granted to singleplayer by default, but is not granted on servers. This prevents unexperienced or evil players from breaking automatic train operation on servers.
2017-04-09 15:17:51 +02:00
orwell96 4ea222fd6a record_protection_violation: fix player name not being passed 2017-04-07 23:06:02 +02:00
orwell96 e795f51293 Fix #59 2017-04-05 13:35:39 +02:00
orwell96 0447e43be9 Actually check for protection when placing trains and use the train_place privilege 2017-04-02 17:07:58 +02:00
orwell96 327b12d488 Assert some variable types obtained from lua automation 2017-03-30 22:17:54 +02:00
orwell96 606c129f57 Add support to display text to passengers and on the outside of the train
Outside is currently displayed as infotext. TODO: signs-like draw it on the wagon
FIXME: When object properties are set, for some reason the animation restarts
2017-03-30 21:51:45 +02:00
orwell96 b5a5d9035f Respect protection_bypass privilege, fix crash with areas and properly record protection violations 2017-03-30 21:21:03 +02:00
orwell96 a091ac2e1d Fix privilege enforcement being useless
Privilege violations caused an error message but didn't abort the operation
2017-03-16 22:04:32 +01:00
orwell96 ba0e75a692 Fix Atc arrows pointing into wrong direction 2017-03-12 19:27:40 +01:00
orwell96 dab50fe064 Screw buttonlike rules for wall signals and use regular rules. 2017-03-12 12:19:18 +01:00
orwell96 e9fb8f9f1b Redo rail models
Use multiple textures for slope objects, include mbb's rail textures and make curves and switches look better. Also add cable template.
2017-03-12 12:19:18 +01:00
orwell96 0dd40c2434 Don't drop items in creative mode when player gets overrun by train 2017-03-11 22:19:01 +01:00
orwell96 4187d2504c "Sneak" instead of "Shift" for the sneak key 2017-03-09 13:22:11 +01:00
orwell96 1137dad2fe Update manual and include everything in repo 2017-03-09 12:05:50 +01:00
orwell96 272c7b1390 Improve debug outputs of couples and increase maximum distance 2017-03-03 10:56:58 +01:00
orwell96 71ff39637f Only get on by walking in when there's a platform, improve get off handling 2017-02-28 16:25:32 +01:00
orwell96 d51a00c823 Add passive component naming 2017-02-28 14:38:59 +01:00
orwell96 aa2ec0fc03 Add ceiling-mounted signal
This is the wall signal as ceiling variant. Because the trackdb can only save 4 rotation values, we need a ceiling version of this.
2017-02-28 13:39:38 +01:00
orwell96 be1ac1e68e Fix collision issues 2017-02-21 11:39:13 +01:00
orwell96 3b354fb085 Also check positions on high platforms at entering doors 2017-02-21 11:38:17 +01:00
orwell96 56cbfc2c85 Only place rails on solid nodes 2017-02-21 11:02:25 +01:00
orwell96 6b5f5ea345 Fix manual operation of mesecon switches 2017-02-20 11:31:14 +01:00
orwell96 e4e76322ba Fix crash when ATC rail exists but no command is saved.
Crash was caused by a concatenation for a debug message. atprint can handle nil if passed as separate parameter
Setting the train's atc command to nil just means that there is no command.
2017-02-20 11:14:37 +01:00
orwell96 e97287614c don't pass unexistant variable to train_step_b (fixes #46) 2017-02-17 15:30:34 +01:00
orwell96 38fecddff9 use mesecons_switch as correct dependency for luaautomation 2017-02-15 21:29:34 +01:00
orwell96 5eac1d1d27 fix crash on seatpc nil 2017-02-15 21:19:30 +01:00
orwell96 5b7a06fe0f fix #34 - end_index not set when step_a returned in phase 2 2017-02-15 19:45:43 +01:00
orwell96 3f382974b8 Proper implementation for getting on by walking into train, rework damage and player controls in train, fix death and join bugs, do not spawn bones on death 2017-02-09 00:13:36 +01:00
orwell96 4abb967f92 Merge PR from gpcf (Get on by walking in) 2017-02-07 22:10:48 +01:00
orwell96 9f862a158c Use identical proxy environment with swapped metatable to not having to setfenv every function in F. 2017-02-07 22:06:39 +01:00
orwell96 3f54727e4f Check if node is actually loaded before querying get_meta()
Known to cause a segfault in engine sometimes.
2017-02-05 22:54:31 +01:00
orwell96 d84c23f084 Do not invalidate paths unnecessarily
Recomputing paths needs time and computing power, so do this only when really necessary
2017-02-05 20:41:31 +01:00
orwell96 648e501f46 Fix "lock couples" checkbox on wagon properties form 2017-02-05 20:14:37 +01:00
orwell96 b31229d62e Fix ATC components being randomly ignored by trains.
Also add warnings to off_track stuff
Also pack for release
2017-02-05 17:57:46 +01:00
Gabriel Pérez-Cerezo 746e328b7b
Merge branch 'master' of https://github.com/orwell96/advtrains 2017-02-05 16:32:53 +01:00
orwell96 c79be69aef Fix itrainmap 2017-02-05 13:21:06 +01:00
orwell96 af14d57557 Fix LuaAtc Interrupt saving
The timer was loaded, but not saved, leading to it being counted from 0 upwards every restart, which of course broke interrupts.
2017-02-05 12:42:39 +01:00
orwell96 d4975a7003 Even more bugfixes
- add translations of all index values to invert_train
- fix on_leave_node callbacks not being called when train reverses
- fix callbacks on train creation and destruction
- Fix warning when saving ATC rail info
2017-02-04 21:09:20 +01:00
orwell96 61e48fff28 Commit 1.6.2
- Add some more stuff to API for LuaATC rails
- Warn on strange events even if debug info is disabled
- save atlatc on shutdown too
- fix detector rails in unloaded chunks
- do not fail silently in simple ATC rails
2017-02-04 18:35:34 +01:00
orwell96 b3ce833df8 fix up stuff in itrainmap 2017-02-03 20:43:46 +01:00
orwell96 328d5054a1 Revert change to node pos hashes, and rewrite trackdb to use individual coordinates
The precision of integers was not sufficient for saving pos node hashes in most cases, leading to strange bugs.
This fixes broken ATC rails, broken LuaAutomation stuff and trackdb on Windows.
Probably also fixes trains randomly stopping.
2017-02-03 20:40:30 +01:00
orwell96 a72dda17be Add quick position lookup by punching nodes 2017-02-03 15:40:44 +01:00
orwell96 f74ef2a456 add wallmounted light signal 2017-02-03 14:14:45 +01:00
orwell96 82efe2e773 Fix itrainmap not working 2017-02-03 10:27:34 +01:00
orwell96 4882abb1c0 Merge PR from mbb: add better textures and crafts 2017-02-02 23:07:09 +01:00
mbblp 54b78023d7 add better textures and crafts 2017-02-02 23:06:24 +01:00
orwell96 bcf82ed70d Add documentation and pack for release 2017-02-02 22:26:43 +01:00
orwell96 948482a99e LuaAutomation: Add interrupt to the ingame API and implement initialization code handling and env management 2017-02-02 21:14:20 +01:00
orwell96 b19033b224 LuaAutomation - Basic component implementation
Implements the base code for LuaAutomation, an ATC rail and a punch-operated 'operation panel' as well as interface for passive components.
Changes in advtrains code where neccessary.
Supported passive components are light signals, switches and mesecon switches
2017-02-02 17:17:39 +01:00
orwell96 a8f9e3d43e Fix collision to work with pos node hashes 2017-02-02 16:39:16 +01:00
orwell96 f6d1157ba1 Lua automation - initial incomplete coding 2017-02-02 00:02:11 +01:00
orwell96 78e936bea7 Replace all table indices that were pos_to_string strings with node hashes.
Lua table string lookup consumes about 10 times more time than numeric indices
2017-01-31 20:52:02 +01:00
orwell96 01f0d2c445 Join itrainmap mod into the modpack 2017-01-31 20:36:38 +01:00
orwell96 3ca1115142 Remove lua_atc from advtrains main mod. 2017-01-31 20:36:03 +01:00
orwell96 1648de4114 Limit dtime to prevent trains moving too far in a single step
and update zip
2017-01-29 21:50:11 +01:00
orwell96 90390dfc98 Add getter calls for raw nodedb
(required for itrainmap mod)
2017-01-29 21:24:40 +01:00
orwell96 4b63e8d9d6 Fix wagon properties not saved on button click 2017-01-29 21:24:03 +01:00
Gabriel Pérez-Cerezo bfd24ee43a
Found out why collision box does not fit train 2017-01-29 12:52:51 +01:00
Gabriel Pérez-Cerezo 5f01cd2d5a
Added getting on and off by walking in and out. Default seat on subway is now passenger seat. 2017-01-29 12:37:47 +01:00
orwell96 724b03abb9 Fix a crash, update translations and zip file 2017-01-28 17:58:19 +01:00
orwell96 83c859b13a Multiple major changes:
- implement wagon properties and seat group access check
- fix a server warning about unassigned variable
- refill advtrains.detector.on_node every step
- reorder train step function(s):
  - fixed bug that some atc rails were not recognized
  - saving some extra calculations
  - integrate path prediction directly to step functions and separate it
  (also see comment directly above train_step_a())
- add couple lock feature (can't couple or discouple from wagon with locked couples)
- ...
2017-01-28 16:46:24 +01:00
orwell96 262f425966 remove tunnelborer
better now than too late.
use 'digtron' for more realistic functionality.
2017-01-25 22:06:54 +01:00
orwell96 e322e00e3d Document door animation parameters 2017-01-25 21:55:40 +01:00
orwell96 54b566e7a7 Add forced get-on/off to prevent trains being unusable due to closed doors.
else you would be able to lock yourself out of trains or lock players in trains with no escape.
2017-01-25 21:38:08 +01:00
orwell96 ffc49f0972 Rewrite seating system
Players no longer need to worry where to sit down.
2017-01-25 21:23:54 +01:00
orwell96 bd0a4a51b8 Fix typo that caused crash 2017-01-25 12:26:43 +01:00
orwell96 edc7f1ec5f Fix find&replace mistake that broke ATC command interpretation 2017-01-24 21:10:53 +01:00
orwell96 29886d5657 Fix crash when train went off track 2017-01-24 20:41:37 +01:00
orwell96 a2d0b1b8f2 Create new models and textures for japanese train 2017-01-24 19:09:33 +01:00
orwell96 631e77b189 Do not recover wagons from minetest's static storage
Since missing wagons are spawned anyway by update_trainpart_properties, this only causes visible trouble when a train gets into loaded area. also avoids placing entities into unloaded terrain randomly.
2017-01-23 21:36:38 +01:00
orwell96 fac8b518c9 Add intllib support and German translation 2017-01-23 21:29:59 +01:00
orwell96 203a36a5eb Merge branch 'master' of https://github.com/orwell96/advtrains 2017-01-19 20:36:00 +01:00
Gabriel Pérez-Cerezo 647b3c8a4c
Removed last occurrence of minetest.env 2017-01-18 23:28:23 +01:00
Gabriel Pérez-Cerezo fc67d4531a
Merged priv 2017-01-18 23:22:06 +01:00