Skip to content

Technical information

Deyan Dobromirov edited this page Aug 26, 2024 · 29 revisions

What do the tool versions represent?

The first number will get an increase when a new major update has arrived. The second number is the commit number in the repository, related to some smaller changes and fixes. For example rearranging the code, new features, performance optimizations, doing the same thing, but in a more elegant way and such.

Does this script store the created queries for later use?

Yes. That way it performs faster statements generation with very little memory consumed. Statement storage is based on the caller name. A good example is CacheQueryPiece where the program tries to retrieve the generated query, without going through the trouble to concatenate all the fields. For the most expensive function CacheQueryPiece, the request is done using the model, so in the statement it is substituted as an argument provided to SQLCacheStmt(<hash>, <stmt>, <arguments>). That way the base statement is stored once and formatted every time it needs to be used.

Why sometimes the tracks do not connect perfectly.

As you all may know the computer has a finite data representation inside the memory ( a.k.a. 32 for float and 64 bits for double in some languages long double is 80 or 96 bits ) and cannot multiply, divide, subtract and add without error. That's why tiny offsets are to be expected when creating a track layout. Another thing is that the precision of the models themselves may vary depending on how good or bad are they:

How is the project structured?

Here are all the files and folders, generated by my recursive directory extractor. To the minimal installation of TA requires you to have only the lua folder inside the cloned repo folder.

Directory: [C:/Users/ddobromirov/Documents/Lua-Projs/VerControl/TrackAssemblyTool_GIT]

TrackAssemblyTool
╠═══data
║   ╠═══advdupe2 --> Extension testing duplications
║   ║   ╚═══wire_extension_test.txt [2kB]
║   ╠═══expression2
║   ║   ╠═══TA_Active_point_scanner.txt [2kB]
║   ║   ╠═══TA_Exporter_Generator.txt [3kB]
║   ║   ╠═══TA_ExtensionTest.txt [2kB]
║   ║   ╠═══TA_Scan_Export_Generator.txt [6kB]
║   ║   ╠═══TA_Scan_Generator.txt [7kB]
║   ║   ╠═══TA_Wire_Test.txt [2kB]
║   ║   ╠═══TA_curve_rotator.txt [55B]
║   ║   ╚═══Test_Rail_Angler.txt [906B]
║   ╚═══trackassembly
║       ╠═══dsv
║       ║   ╠═══LUA
║       ║   ║   ╠═══cl_trackassembly_additions.txt [103B]
║       ║   ║   ╠═══cl_trackassembly_category.txt [9kB]
║       ║   ║   ╠═══cl_trackassembly_physproperties.txt [4kB]
║       ║   ║   ╚═══cl_trackassembly_pieces.txt [541kB]
║       ║   ╠═══PlarailTRACKASSEMBLY_CATEGORY.txt [55B]
║       ║   ╠═══PlarailTRACKASSEMBLY_PIECES.txt [3kB]
║       ║   ╠═══Ron_s_2ft_track_packTRACKASSEMBLY_CATEGORY.txt [513B]
║       ║   ╠═══Ron_s_2ft_track_packTRACKASSEMBLY_PIECES.txt [3kB]
║       ║   ╠═══Ron_s_G_Scale_Track_packTRACKASSEMBLY_CATEGORY.txt [353B]
║       ║   ╠═══Ron_s_G_Scale_Track_packTRACKASSEMBLY_PIECES.txt [5kB]
║       ║   ╠═══SQL
║       ║   ║   ╠═══cl_trackassembly_additions.txt [200B]
║       ║   ║   ╠═══cl_trackassembly_category.txt [9kB]
║       ║   ║   ╠═══cl_trackassembly_physproperties.txt [5kB]
║       ║   ║   ╚═══cl_trackassembly_pieces.txt [543kB]
║       ║   ╠═══Test_s_track_packTRACKASSEMBLY_CATEGORY.txt [505B]
║       ║   ╠═══Test_s_track_packTRACKASSEMBLY_PIECES.txt [694B]
║       ║   ╠═══joe_s_2ft_track_pack2trackassembly_pieces.txt [3kB]
║       ║   ╠═══joe_s_2ft_track_packtrackassembly_category.txt [417B]
║       ║   ╠═══joe_s_2ft_track_packtrackassembly_pieces.txt [76B]
║       ║   ╠═══shinji85_s_railstrackassembly_additions.txt [13B]
║       ║   ╠═══shinji85_s_railstrackassembly_category.txt [534B]
║       ║   ╚═══shinji85_s_railstrackassembly_pieces.txt [7kB]
║       ╠═══exp
║       ║   ╠═══cl_TRACKASSEMBLY_ADDITIONS.txt [952B]
║       ║   ╠═══cl_TRACKASSEMBLY_PHYSPROPERTIES.txt [6kB]
║       ║   ╠═══cl_TRACKASSEMBLY_PIECES.txt [342kB]
║       ║   ╠═══sv_TRACKASSEMBLY_ADDITIONS.txt [952B]
║       ║   ╠═══sv_TRACKASSEMBLY_PHYSPROPERTIES.txt [6kB]
║       ║   ╠═══sv_TRACKASSEMBLY_PIECES.txt [342kB]
║       ║   ╚═══z_autorun_[anyone_s_horrible_trackpack].txt [21kB]
║       ╠═══set
║       ║   ╠═══trackasmlib_dsv.txt [18B]
║       ║   ╠═══trackasmlib_slskip.txt [74B]
║       ║   ╠═══z_autorun_[trackassembly].txt [7kB]
║       ║   ╚═══z_autoset_[trackassembly].txt [23kB]
║       ╠═══tools
║       ║   ╠═══discontinued
║       ║   ║   ╠═══author-converted
║       ║   ║   ║   ╚═══Shinji85's Rails.txt [7kB]
║       ║   ║   ╠═══owner-discontinued
║       ║   ║   ║   ╠═══Ron's 2ft track pack.txt [2kB]
║       ║   ║   ║   ╠═══Ron's 56 gauge rails.txt [48kB]
║       ║   ║   ║   ╚═══SligWolf's minitrains.txt [892B]
║       ║   ║   ╚═══owner-maintained
║       ║   ║       ╠═══Anyone's Horrible Trackpack.lua [3kB]
║       ║   ║       ╠═══Ron's 2ft track pack.lua [61kB]
║       ║   ║       ╠═══SligWolf's Minihover.lua [2kB]
║       ║   ║       ╠═══SligWolf's Minitrains.lua [6kB]
║       ║   ║       ╚═══SligWolf's White Rails.lua [3kB]
║       ║   ╠═══hooks
║       ║   ║   ╠═══pre-commit.bat [360B]
║       ║   ║   ╚═══pre-commit.lua [2kB]
║       ║   ╠═══peaces_manager
║       ║   ║   ╠═══common.h [4kB]
║       ║   ║   ╠═══emd.bat [7kB]
║       ║   ║   ╠═══main.cpp [476B]
║       ║   ║   ╠═══main.h [277B]
║       ║   ║   ╠═══models_ignored.txt [284kB]
║       ║   ║   ╠═══peaces_manager.cbp [849B]
║       ║   ║   ╠═══string_stack.h [4kB]
║       ║   ║   ╠═══struct_entry.h [6kB]
║       ║   ║   ╚═══struct_match.h [5kB]
║       ║   ╠═══pictures --> Contains addon pictures
║       ║   ║   ╠═══BOM.jpg [55kB]
║       ║   ║   ╠═══UTF-8.jpg [78kB]
║       ║   ║   ╠═══dsv_manager.jpg [92kB]
║       ║   ║   ╠═══frequent_pieces.jpg [94kB]
║       ║   ║   ╠═══icon.jpg [67kB]
║       ║   ║   ╠═══pointassist.jpg [41kB]
║       ║   ║   ╠═══rollercoaster_assist.jpg [290kB]
║       ║   ║   ╠═══screenshot.jpg [521kB]
║       ║   ║   ╠═══snapadvaiser.jpg [47kB]
║       ║   ║   ╠═══surfsnap.jpg [328kB]
║       ║   ║   ╚═══track_addon.jpg [71kB]
║       ║   ╠═══todo.txt [0B]
║       ║   ╚═══workshop --> Workshop related stuff
║       ║       ╠═══addon.json [315B]
║       ║       ╠═══addon.txt [124B]
║       ║       ╚═══description.txt [6kB]
║       ╠═══trackasmlib_db.txt [32kB]
║       ╚═══trackasmlib_log.txt [76kB]
╠═══license [34kB]
╠═══lua --> Contains all GLua sub-addons files
║   ╠═══autorun
║   ║   ╠═══trackassembly_init.lua [383kB]
║   ║   ╚═══z_autorun_[shinji85_s_rails].lua [24kB]
║   ╠═══entities
║   ║   ╚═══gmod_wire_expression2 --> Contains all the wire expression 2 extensions
║   ║       ╚═══core
║   ║           ╚═══custom
║   ║               ╠═══cl_trackasmlib_wire.lua [4kB]
║   ║               ╚═══trackasmlib_wire.lua [6kB]
║   ╠═══trackassembly
║   ║   ╚═══trackasmlib.lua [261kB]
║   ╠═══vgui
║   ║   ╚═══dasminsliderbutton.lua [8kB]
║   ╚═══weapons --> Contains all the dedicated MASK tool objects information MASK
║       ╚═══gmod_tool
║           ╚═══stools
║               ╚═══trackassembly.lua [31kB]
╠═══readme.md [38kB]
╚═══resource
    ╚═══localization
        ╠═══bg
        ║   ╚═══trackassembly.properties [28kB]
        ╠═══en
        ║   ╚═══trackassembly.properties [7kB]
        ╠═══fr
        ║   ╚═══trackassembly.properties [7kB]
        ╠═══ja
        ║   ╚═══trackassembly.properties [8kB]
        ╠═══ru
        ║   ╚═══trackassembly.properties [57B]
        ╚═══zh-cn
            ╚═══trackassembly.properties [6kB]