aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Log how long saving takesorwell962021-02-10
|
* Make dtime limiting a settingorwell962021-02-10
|
* Remove debug facilitiesorwell962021-02-10
|
* luaatc: don't fail train event when train has already passed the rail at ↵orwell962021-02-10
| | | | event time
* Add global slowdown factor instead of hard dtime limitingorwell962021-02-10
|
* Rewrite movement logic againorwell962021-02-10
|
* Add debug prints, modify LZB to fix problems with look_aheadorwell962021-02-10
|
* Stoprail: Set LZB checkpoint speed back to 2orwell962021-02-10
| | | | | Caused problems when approaching stoprail in manual control also better for compatibility
* Add IGNORE_WORLD mode to test using only the advtrains save dataorwell962021-02-10
|
* Add sign to make shunt moves proceed as main and improve doc of signalsorwell962021-02-10
|
* Make cab signalling work with renamed lzb fieldsorwell962021-02-10
|
* Fix new green signals bug caused by old trav_lzbdata, and callback loop in ↵orwell962021-02-10
| | | | signalling formspec
* Start using path_invalidate_ahead()orwell962021-02-10
|
* Hm, forget about it for now. Might be perfectly valid when train goes ↵orwell962021-02-10
| | | | farther than train length in step
* More debug info to hopefully gain more info on the bugorwell962021-02-10
|
* Fix HUD position and Remote Routesetting buttonorwell962021-02-10
|
* Try to track down why ATC is brokenorwell962021-02-10
|
* Fix things, rework signal aspect select dialog, transform old aspects on-the-flyorwell962021-02-10
|
* Simplify Signal Aspect Table (H#132) [breaks compatibility with signal API]orwell962021-02-10
|
* Always do zero-barrier check and prevent LZB 0 overruns in movement logicorwell962021-02-10
|
* Fix lots of things around new LZBorwell962021-02-10
|
* Remove pcall wrappers completely, add command to disable advtrains mainlooporwell962021-02-10
|
* Implement a LZB speed lookup table for the path and rewrite velocity controlsorwell962021-02-10
|
* Fix inconsistency between node enter callback and lzb approach callbacksorwell962021-02-10
| | | | (this caused the lzb approach to be called on nodes that have just received an enter event, which is not intended)
* Disable ARS train flag and surrounding usesorwell962021-02-10
|
* Add approach callback mechanism to LuaATCorwell962021-02-10
|
* Make is_node_loaded() checks also for mesecon interactions and ↵orwell962021-02-04
| | | | digiline_send(), move on_updated_from_nodedb to advtrains table
* Discard get_node_or_nil() for area-loaded check and use either a ↵orwell962021-02-03
| | | | | | distance-based approach or minetest.is_block_active() if available See also https://github.com/minetest/minetest/pull/10897
* add unit tests for serialize_libGabriel Pérez-Cerezo2021-01-31
|
* Use graphical indication for more elements; improve 7-segment displayrelease-2.2.1ywang2021-01-20
|
* Use absolute positioning from the bottom of the screenywang2021-01-19
|
* Fix serialisation: breach of contract, file left openBlockhead2021-01-18
| | | | Previous commit did not fix saving, but is kept because there is a corner case for which it is required (see MT forum)
* Fix atomic saving on windows when save file does not existorwell962021-01-17
|
* Fix removing stale TCB nodesrelease-2.2.0orwell962021-01-12
|
* Some more serializer fixes (backported from new_lzb):orwell962021-01-12
| | | | | | - Move DUMP_DEBUG_SAVE block before the actual saving so it can be used to trace serializer errors - Don't crash on functions in data, ignore them silently - Increase the save interval
* serialize_lib: Allow empty strings in keyorwell962021-01-12
|
* Backport ndb format from cellworld to also store the cids in the ndb file; ↵orwell962021-01-12
| | | | integrate ndb in serialize_lib atomic system
* Make advtrains use serialize_lib (save version 4)orwell962021-01-12
| | | | Old save format will be gracefully migrated
* Serialize_lib: finish up and add atomic apiorwell962021-01-12
|
* Implement basic serialization and file openingorwell962021-01-12
|
* DUMP_DEBUG_SAVE also dumps interlocking dataorwell962021-01-12
|
* fix mis-patched 90+60r crossing connsGabriel Pérez-Cerezo2021-01-10
| | | | Thanks, Maverick2797
* Add K command to station railGabriel Pérez-Cerezo2021-01-08
| | | | | Move the UI of station rails to use checkboxes rather then dropdowns for the reverse command.
* Add ATC "K" commandGabriel Pérez-Cerezo2021-01-07
| | | | | | | This command kicks out all passengers when the train is stopped and its doors are open. In addtion, a wagon:is_driver_stand(seat) function was added to allow finding out easily if a seat is the driver stand of the wagon.
* Change color of max speed indicationywang2021-01-07
|
* Remove advtrains_hud_blank.pngywang2021-01-05
|
* Revert to black background; use "blocks" for the (physical) maximum speedywang2021-01-05
|
* HUD improvementsywang2021-01-04
|
* Minor optimizationsywang2020-12-30
|
* Add demoywang2020-12-27
|
class="hl opt">(is); for (u16 i = 0; i < count; i++) { v3s16 p; if (absolute_pos) { p.X = readS16(is); p.Y = readS16(is); p.Z = readS16(is); } else { u16 p16 = readU16(is); p.X = p16 & (MAP_BLOCKSIZE - 1); p16 /= MAP_BLOCKSIZE; p.Y = p16 & (MAP_BLOCKSIZE - 1); p16 /= MAP_BLOCKSIZE; p.Z = p16; } if (m_data.find(p) != m_data.end()) { warningstream << "NodeMetadataList::deSerialize(): " << "already set data at position " << PP(p) << ": Ignoring." << std::endl; continue; } NodeMetadata *data = new NodeMetadata(item_def_mgr); data->deSerialize(is, version); m_data[p] = data; } } NodeMetadataList::~NodeMetadataList() { clear(); } std::vector<v3s16> NodeMetadataList::getAllKeys() { std::vector<v3s16> keys; NodeMetadataMap::const_iterator it; for (it = m_data.begin(); it != m_data.end(); ++it) keys.push_back(it->first); return keys; } NodeMetadata *NodeMetadataList::get(v3s16 p) { NodeMetadataMap::const_iterator n = m_data.find(p); if (n == m_data.end()) return NULL; return n->second; } void NodeMetadataList::remove(v3s16 p) { NodeMetadata *olddata = get(p); if (olddata) { if (m_is_metadata_owner) delete olddata; m_data.erase(p); } } void NodeMetadataList::set(v3s16 p, NodeMetadata *d) { remove(p); m_data.insert(std::make_pair(p, d)); } void NodeMetadataList::clear() { if (m_is_metadata_owner) { NodeMetadataMap::const_iterator it; for (it = m_data.begin(); it != m_data.end(); ++it) delete it->second; } m_data.clear(); } int NodeMetadataList::countNonEmpty() const { int n = 0; NodeMetadataMap::const_iterator it; for (it = m_data.begin(); it != m_data.end(); ++it) { if (!it->second->empty()) n++; } return n; }