From 9360519b24cd8eda5af19eb62f0ca5e450e2775d Mon Sep 17 00:00:00 2001 From: Deyan Dobromirov Date: Fri, 27 Dec 2024 17:15:08 +0200 Subject: [PATCH] Updated library control statements (#59) Fixed table definition runtime error for `ExportSyncDB` Fixed: Actually use the super-elevation return value to notify the client Fixed: Angle grid/snap triggering log messages Fixed: Apply super-elevation when spawn flat is not checked Fixed: Automatically populate POA row value on registration Fixed: Categories not being exported due to one-liners Fixed: Close generated files on sort fail Fixed: Context menu `box` copy returning the incorrect row due to different cords Fixed: Context menu icons not being displayed correctly Fixed: Create table STMT building improper error logs Fixed: Creating table index error report order Fixed: Curve node remove on the client checks its status Fixed: Curve node remove reverts the value of the last node Fixed: DB export flag not being reset on menu error Fixed: DSV auto-run loading due to `FORM_PREFIXDSV` being changed Fixed: DSV manager buttons get squished when many DSV are present Fixed: DSV manager properly showing generic database Fixed: DSV registration existence check crash when source not provided Fixed: Data selection sequential errors due to comparing different data type Fixed: Direct value injection in `tA = {}` Fixed: Equalize export column order for SQL/LUA mode Fixed: Executing action OPEN_EXTERNDB status being unchecked Fixed: Exit properly on SQL build deny Fixed: Export BD convar is not reset when exporting inventory Fixed: Export auto-run failing due to the new control statement Fixed: Export track type as DSV in SQL mode Fixed: Export type auto-run not finding a data checks Fixed: Exporting DSV in Lua mode create unnecessary table Fixed: Exporting DSV in SQL mode triggers data matching error Fixed: Exporting DSV process triggering error due to query store missing Fixed: Exporting content for sync inventory missing new added models due to the store cache Fixed: Exporting content to autorun file trigger order error in SQL mode Fixed: External DB manager closing its panel when no line is selected on entry Fixed: External DB manager creating new DSV when edit is triggered Fixed: Failed routine `ExportTypeDSV` cannot index files P/A Fixed: File fore-close for `ExportDSV` on some fail cases Fixed: Frequent pices panel sorting crashing in LUA mode Fixed: Frequent pieces panel not working Fixed: Frequent pieces retiring more that N when more than N are valid Fixed: Frequent pieces return the table when at least one is present Fixed: Frequent pieces updated with records without post-work Fixed: General sorting when values are missing. Nil is less than everything Fixed: Incorrect indexing for DSV synchronization raises errors in track pack scripts Fixed: Inventory export runtime errors with library self-reference Fixed: Log settings return proper value Fixed: Logic and runtime errors of `ExportTypeDSV` Fixed: Lower the network latency when sending normal vectors Fixed: Lua mode exports being more accurate Fixed: Luapad call crashing when editing DSV contents Fixed: Luapad prefix is not displayed on the opened tab Fixed: Matching forcing errors in LUA mode Fixed: Node name is always overridden by category Fixed: Node settings not being copied in some cases Fixed: Panel content not sorted correctly due to missing local reference Fixed: Panel runtime errors Fixed: Phys properties generating sequential errors Fixed: Phys property size being bound to sequential records Fixed: Physical properties exported as DSV PKs are not ordered Fixed: Physical properties table exports PK without quotes Fixed: Population additions on autorun checking for no data found Fixed: Prefix/parameters being consistent across all APIs Fixed: Primary table validation proper build error report Fixed: Provide the context menu tables option if such are available at all Fixed: Reduce the network overhead for `CREATE_CURVE_NODE` Fixed: Reduce the select columns count for additions Fixed: Registering a DSV does not show source script in the logs Fixed: Routine `ExportTypeRun` failed to export contents in lua mode Fixed: Routine pieces search by type icon missing Fixed: Runtime error due to missed bracket in `CacheQueryAdditions` Fixed: Runtime error file exists missing the second argument Fixed: Runtime error in `ImportDSV` relative to `DATA` Fixed: Runtime errors in `ExportSyncDB` and `ExportTypeDSV` for SQL mode Fixed: Runtime errors in `ExportTypeDSV` for DB mode Fixed: Runtime errors in `ProcessDSV` using old folder path Fixed: Runtime missing bracket in `ApplySuperElevation` Fixed: Some runtime errors Fixed: Some runtime errors Fixed: Some runtime errors Fixed: Some spaced in the header logs Fixed: Some table routines runtime errors `ExportContentsRun` Fixed: Some typos reading auto-run export comments Fixed: Super-elevation auto update not working on node update Fixed: Tool panel runtime errors `asmlib.*` Fixed: Tool tree panel sorts non-categorized items with priority Fixed: Translation not showing database mode Fixed: Tree export context menu calling wrong routine Fixed: Unneeded square root calculation in `GetNearest` Fixed: Use different placeholders for tool panel item rooting. Utilize `pNode` Fixed: Utilizing `tpText:Scan` using wrong field Fixed: When less values are provided in the DSV do not trigger length error on import Fixed: Where clause failing with parameter missing Fixed: Wire-mod extension tester Fixed: Wrong storage of grater-equals Fixed: `ExportSyncDB` accessing global `WorkshopID` Fixed: `ExportSyncDB` addressing the wrong log pattern Fixed: `XQM Ball Rails` category triggering a silent error due to mismatch Fixed: `isstring` global being defined two times Added: 100% grade as OP variable `FULL_SLOPEDG` tan(45) Added: All tree panels now open the context tree menu when eligible to do so Added: Attachment extraction via unique entity index and log per type Added: Automatic Z offset update when selecting curve node via active point Added: Automatic folder creation when requesting a path Added: Automatic generator for misaligned pipes new E2 style Added: Automatic super-elevation for curved tracks Added: Better logic control flow for `Categorize` Added: Cache PIECES method `ExportTypeDSV` for LUA mode Added: Category for `Scene Builder` Added: Category sort/export into separate functions Added: Centralized function to copy from list view Added: Check of the modified normal exists Added: Context menu with selection options for the track selection tree Added: Custom columns ID option to `GetColumnList` Added: Custom columns ID option to `GetConcat` Added: Customizable table row concatenation Added: DSV manger list view content move option and translations Added: DSV synchronizer not handling existent open fail Added: Dedicated prefix for generic ( whole DB containers ) Added: Description for `GetCurveTransform` Added: Description for super-elevation Added: Export DSV header configurations Added: Export tracks inventory on shift + click Added: Force EXP destination for Export/Import DSV Added: Freshly exported content database from the gmod client Added: Function to export list-view rows Added: General structure for tool panel with category Added: Generic DB file existence checker for the exports Added: Handle actions status properly for `pcall` Added: Import DSV utilizes file header Added: Import/Export category being forced from/to the EXP folder Added: Internal queries are defined in the table definition Added: LUA mode routine for `ExportTypeRun` populating pieces table Added: Load the node into tool offsets Added: Menu options size instead of a while + increment Added: Mode tree context menu translation and icons Added: More checks when importing a DSV file Added: More export options for DSV format and script format Added: More fail-safe handling for size/used cache parameter Added: More items in scene builder Added: More logging skip triggers Added: Move validation to the hook info tracker Added: Pieces record trigger to default POA values to NULL Added: Query store and format as table method Added: Return empty sort set when providing empty table. Skip processing Added: Routine pieces can also export content Added: Routine pieces context menu Added: Scene builder addon content Added: Sequential checks for all tables in SQL/LUA mode Added: Some `Scene builder` but not being validated yet Added: Some micro-optimizations Added: Some missing translations Added: Sorting when exporting data in Lua mode Added: Store index count in the SQL command table Added: Synchronization commit from the master branch Added: TODO list for `CurveUpdate` Added: Test if the file is present before opening Added: The rest of the items for `Scene Builder` Added: Timer definition as table support Added: Timer setup support for multiple types Added: Tooltips for category/model nodes label/icon/expander/validation Added: Translation for the routine pieces context menu Added: Translations for Bulgarian and Russian Added: UTF-8 BOM to the Chinese translations Added: Upload/Download node offsets and marker in `DrawHUD` Added: Upload/Download node offsets in `CurveUpdate` Added: Usage of `PATTEM_EXDSVHED` in the rest of the places Added: User preferences for amount of super-elevation Added: Varargs to custom sorting Added: `Export type` option when right-click on a tree type Changed: Export tree context menu icon Changed: Only one database per table to trigger generic population Changed: Open DSV manager will be triggered by export DB button Changed: Panels context menu localization and icon hashes Changed: Reduce wrap arguments count Changed: Some logs when Lua table routine handler fails Changed: Utilize global file value Improved: Log formatting for less concatenations (PATTEM_EXDSVHED) Improved: Make sure to catch bad table column configuration on create Improved: Reduce memory for indices (1) is the same as (1,2) unique Improved: Store only query panel row index instead of duplicating model/name Moved: Tree dedicated context menu to its function Optimized: Category sorting for nil/string Optimized: Frequent pieces. Do not loop if no need to Optimized: Read phys-properties column name in a local variable Optimized: `ChecheQueryPanel` and its data structure Optimized: `SettingsLog` bail early when conditions are not met Optimized: `asmlib.GetWrap` being 50% faster. Removed loop Remove: table definition local variable `PHYSPROPERTIES` not used Removed: Category hash table and current category reference Removed: Export database as a file will not be present on the server Removed: Export inventory form panel tree buildup Removed: Frequent pieces count parameter is not needed anymore Removed: Function `GetWrap` not needed anymore Removed: Library pointer usage inside itself Removed: Localized reference for root pointer. Use hash instead Removed: Nasty button FS handler from DSV configuration Removed: Needless table/columns indexing in `AddLineListView` Removed: Numbers from comments Removed: One-liner export error trigger in `ExportCategory` Removed: Reading default class and creating POA for every addition Removed: Reverse-hash indexing for tree nodes Removed: Some data exports that are old and nor relevant anymore Removed: Some unused variables from `AttachAdditions` Removed: Translation `pn_externdb_lb` not needed anymore Removed: Usage of `OPSYM_ENTPOSANG` register/locate is unneeded Removed: Use the text fields metadata instead of `excgRow` Removed: `GetDirectory` using revers indexing. Utilize reference hash-jumps instead Removed: `MISS_NOTR` as translations work differently now Removed: `PushSortValues` integrated in `GetFrequentModels` Removed: `TYPEMT_VECTOR` and `TYPEMT_ANGLE` that are not used Removed: `iInd` from `GetFrequentPieces` as it is not used Rename: FORM_PREFIXDSV > FORM_PREFIXFDB Rename: `ExportAR` to `ExportContentsRun` Rename: `ext_dsv` localization to `extdsv` Renamed the auto-run related functions to the new convention Renamed: Bodygroup apply to actual apply Renamed: Generic prefix local variable Renamed: PrioritySort > Arrange Renamed: Some local variables Renamed: `CacheQueryInventory` to `CacheQueryTree` using inventory cached version Renamed: `CacheQueryPanel` to `CacheQueryInventory` Renamed: `Element` to `Content` Renamed: `SetSomethingNode` to `SetNodeSomething` Reverted: Expand panel location Updated: Russian translation by phrase hash Updated: DSV button mangers to prefix context menu Updated: Import/Export category Updated: Add translation to be removed after a sync Updated: Additions data insertion trigger in LUA mode Updated: Auto-run export function headers Updated: Better sorting algorithm Updated: Category export header general format Updated: Category header internal pattern Updated: Category sorting and population Updated: Chose the unique index for all tables Updated: Code rearrangement and var localization Updated: DSV databases can show the internal error when present ( coding style ) Updated: DSV manager now uses hash notation as well Updated: Database synchronization script Updated: English translations for the prefix context menu Updated: Export auto-run configuration Updated: Export synchronization file independent from DEV mode Updated: Export type to DSV format in LUA mode Updated: Exported content include purpose in the file name Updated: French translations Updated: Frequent pieces is searched by internal column ID (1,2,3,4) Updated: Frequent pieces now use indices for (model,type,name,act) Updated: Frequently used data contains also request count Updated: General path format during export only used in `GetLibraryPath` Updated: General usage of one error function preserving the stack Updated: Generic database prefix from library name Updated: Import category clamps the marker. Zero is invalid Updated: Library control statements Updated: Link to the silk icons to the proper Gmod link page Updated: Log proper data when navigation is missing Updated: Matching database mode check move up Updated: Matching exit early when number is invalid Updated: Micro-optimization when calling `GetColumnName` Updated: Not exists in some cases by default Updated: Pieces DSV export multi-liner Updated: Pipe E2 Export generator Updated: Query parameters at the top Updated: Query store selection operator Updated: Quit executing the script if module load fails Updated: Rearrange auto-run export file Updated: Routine pieces search and list vie use the same column names Updated: Routine pieces translation in one place Updated: SQL build statement library Updated: Some typos and grammar updates for Shinji and autorun Updated: Sorting function `VCOMPARE_SDAT` Updated: Statement key `CacheQueryPiece` used only in SQL mode Updated: Switched to number to hash notation in the frequent pieces panel Updated: Trace root information being handled better Updated: Type as DSV table cloture concatenation in SQL mode Updated: Use library path instead of `FORM_PREFIXDSV` Updated: Use trace fraction when calling `GetCurveTransform` Updated: Utilize `debugGetinfo(1).name` instead of function name hard coding Updated: `ExportContentsRun` routine request being run trough protected call Updated: `ExportSyncDB` with better handling Updated: `ExportTypeRun` now uses proper indexed ordering Updated: `RegisterPOA` storing the input data in row mode. Decoded when locating Updated: `SetDirectory` to match the new tree creation routine Updated: convert log formatting to local for `ExportTypeDSV` Utilize: for-integer loop with Table.Size in some places Utilize: integer-for loop Utilize: Addition.Size Utilize: `tableInsert` in `ProcessDSV` --- data/expression2/TA_Pipe_Generator.txt | 136 + data/expression2/TA_Wire_Test.txt | 4 +- .../exp/cl_TRACKASSEMBLY_ADDITIONS.txt | 8 - .../exp/cl_TRACKASSEMBLY_PHYSPROPERTIES.txt | 91 - .../exp/cl_TRACKASSEMBLY_PIECES.txt | 2366 --------- .../exp/cl_trackassembly_additions.txt | 8 + .../exp/cl_trackassembly_category.txt | 203 + .../exp/cl_trackassembly_physproperties.txt | 91 + .../exp/cl_trackassembly_pieces.txt | 4228 +++++++++++++++++ .../exp/sv_TRACKASSEMBLY_ADDITIONS.txt | 8 - .../exp/sv_TRACKASSEMBLY_PHYSPROPERTIES.txt | 91 - .../exp/sv_TRACKASSEMBLY_PIECES.txt | 2366 --------- ..._autorun_[anyone_s_horrible_trackpack].txt | 373 -- data/trackassembly/set/trackasmlib_slskip.txt | 11 +- .../set/z_autorun_[trackassembly].txt | 164 +- .../set/z_autoset_[trackassembly].txt | 461 +- .../tools/peaces_manager/create_report.bat | 6 +- data/trackassembly/trackasmlib_db.txt | 2 +- lua/autorun/trackassembly_init.lua | 987 ++-- lua/autorun/z_autorun_[shinji85_s_rails].lua | 149 +- .../core/custom/trackasmlib_wire.lua | 10 +- lua/trackassembly/trackasmlib.lua | 2351 +++++---- .../gmod_tool/stools/trackassembly.lua | 297 +- readme.md | 1 + .../localization/bg/trackassembly.properties | 454 +- .../localization/en/trackassembly.properties | 454 +- .../localization/fr/trackassembly.properties | 416 +- .../localization/ja/trackassembly.properties | 164 +- .../localization/ru/trackassembly.properties | 346 +- .../zh-cn/trackassembly.properties | 433 +- 30 files changed, 8547 insertions(+), 8132 deletions(-) create mode 100644 data/expression2/TA_Pipe_Generator.txt delete mode 100644 data/trackassembly/exp/cl_TRACKASSEMBLY_ADDITIONS.txt delete mode 100644 data/trackassembly/exp/cl_TRACKASSEMBLY_PHYSPROPERTIES.txt delete mode 100644 data/trackassembly/exp/cl_TRACKASSEMBLY_PIECES.txt create mode 100644 data/trackassembly/exp/cl_trackassembly_additions.txt create mode 100644 data/trackassembly/exp/cl_trackassembly_category.txt create mode 100644 data/trackassembly/exp/cl_trackassembly_physproperties.txt create mode 100644 data/trackassembly/exp/cl_trackassembly_pieces.txt delete mode 100644 data/trackassembly/exp/sv_TRACKASSEMBLY_ADDITIONS.txt delete mode 100644 data/trackassembly/exp/sv_TRACKASSEMBLY_PHYSPROPERTIES.txt delete mode 100644 data/trackassembly/exp/sv_TRACKASSEMBLY_PIECES.txt delete mode 100644 data/trackassembly/exp/z_autorun_[anyone_s_horrible_trackpack].txt diff --git a/data/expression2/TA_Pipe_Generator.txt b/data/expression2/TA_Pipe_Generator.txt new file mode 100644 index 00000000..9e383ca4 --- /dev/null +++ b/data/expression2/TA_Pipe_Generator.txt @@ -0,0 +1,136 @@ +@name TA Pipe Generator +@model models/props_lab/huladoll.mdl +@persist [Scanner Pipe]:entity [F U R,C MP]:vector [TU TD TL TR]:ftrace +@persist [Delta Iter Raun]:number [ScanCenter SizeCenter]:vector2 MA:angle +@outputs + +if(first() || dupefinished()) +{ + # Scan size. Most rails are more wider than higher + # For PHX two bean rails W > H + ScanR = 500 # Scan radius must be bigger then pipe radius + + # Amount of iterations to lower delta + Iter = 10 + + # Rouding + Raun = 4 + + # Align center to prop center + ScanCenter = vec2(0, 3) + SizeCenter = vec2(3, 3) + + # How fast it will scan the piece edge + Delta = 1 + + # Local oriantation vectors + F = vec(1,0,0) + U = vec(0,0,1) + + # Automatic stuff + Scanner = entity() + Pipe = noentity() + U = U:normalized() + R = F:cross(U) + MP = Scanner:pos() + MA = Scanner:angles() + C = U * ScanCenter:y() + R * ScanCenter:x() + + holoCreate(1), holoColor(1,vec(255,0,0)), holoScale(1,0.1*vec(1,1,1)) holoModel(1,"cone") + holoCreate(2), holoColor(2,vec(0,0,255)), holoScale(2,0.1*vec(1,1,1)) holoModel(2,"cone") + holoCreate(3), holoColor(3,vec(255,255,0)), holoScale(3,0.1*vec(1,1,1)) holoModel(3,"cone") + holoCreate(4), holoColor(4,vec(0,255,255)), holoScale(4,0.1*vec(1,1,1)) holoModel(4,"cone") + holoCreate(5), holoColor(5,vec(0,255,0)), holoScale(5,0.1*vec(1,1,1)) holoModel(5,"cube") + holoCreate(6), holoColor(6,vec(255,0,255)), holoScale(6,0.1*vec(1,1,1)) holoModel(6,"cube") + + TU = Scanner:setFTrace(C + SizeCenter:x() * U, U, ScanR):useArray():putArray(Scanner) + TD = Scanner:setFTrace(C - SizeCenter:x() * U, U, -ScanR):useArray():putArray(Scanner) + TR = Scanner:setFTrace(C + SizeCenter:y() * R, R, ScanR):useArray():putArray(Scanner) + TL = Scanner:setFTrace(C - SizeCenter:y() * R, R, -ScanR):useArray():putArray(Scanner) +} + +function drawFTrace(T:ftrace, N:number) +{ + P = T:getPosWorld() + D = T:getDirWorld() + A = D:toAngle() + A = A:rotateAroundAxis(A:right(), -90) + holoPos(N, P) + holoAng(N, A) +} + +event tick() +{ + holoPos(5, Scanner:toWorld(C)) + drawFTrace(TU:smpLocal(), 1) + drawFTrace(TD:smpLocal(), 2) + drawFTrace(TR:smpLocal(), 3) + drawFTrace(TL:smpLocal(), 4) + + if(Scanner != noentity()) + { + if(TU:isHit() && TD:isHit() && TR:isHit() && TL:isHit()) + { + VU = (TU:getFractionLen() - TD:getFractionLen()) + VR = (TR:getFractionLen() - TL:getFractionLen()) + DL = U * VU + R * VR + + MP = (TU:getPosWorld() + TD:getPosWorld() + + TR:getPosWorld() + TL:getPosWorld()) / 4 + + #print("Move:", DL) + + holoPos(6, MP) + + if(Pipe == noentity()) + { + Pipe = TU:getEntity() + print("Pipe:", Pipe) + } + + C = C + F * Delta + TU:rayMove(F + DL, Delta) + TD:rayMove(F + DL, Delta) + TR:rayMove(F + DL, Delta) + TL:rayMove(F + DL, Delta) + } + else + { + # print("Iteration:", Iter) + if(Iter <= 0) + { + Scanner = noentity() + } + C = C - F * Delta + TU:rayMove(F, -Delta) + TD:rayMove(F, -Delta) + TR:rayMove(F, -Delta) + TL:rayMove(F, -Delta) + Delta = Delta / 2 + Iter = Iter - 1 + } + } + else + { + if(Pipe != noentity()) + { + Mo = Pipe:model() + Or = Pipe:toLocal(MP) + OrX = toString(round(Or:x(), Raun)) + OrY = toString(round(Or:y(), Raun)) + OrZ = toString(round(Or:z(), Raun)) + OrS = OrX+","+OrY+","+OrZ + An = Pipe:toLocal(MA) + AnP = toString(round(An:pitch(), Raun)) + AnY = toString(round(An:yaw(), Raun)) + AnR = toString(round(An:roll(), Raun)) + AnS = AnP+","+AnY+","+AnR + + if(OrS == "0,0,0") { OrS = "" } + if(AnS == "0,0,0") { AnS = "" } else { AnS = ", \""+AnS+"\"" } + + print("PIECES:Record({\""+Mo+"\", \"#\", \"#\", 0, \"\", \""+OrS+"\""+AnS+"})") + Pipe = noentity() + } + } +} diff --git a/data/expression2/TA_Wire_Test.txt b/data/expression2/TA_Wire_Test.txt index 2752946a..4f1e0d7c 100644 --- a/data/expression2/TA_Wire_Test.txt +++ b/data/expression2/TA_Wire_Test.txt @@ -57,10 +57,10 @@ if(first() || dupefinished()) }else{ error("Additions line fail "+M) } P1 = trackasmlibGetProperty() - if(P1[3,string] == "Metal") + if(P1[3,string] == "Liquid") { P2 = trackasmlibGetProperty(P1[3,string]) - if(P2[5, string] == "crowbar") + if(P2[1, string] == "slime") { print("Property type OK <"+P2[5, string]+">") }else{ error("Property type fail <"+P2[5, string]+">")} diff --git a/data/trackassembly/exp/cl_TRACKASSEMBLY_ADDITIONS.txt b/data/trackassembly/exp/cl_TRACKASSEMBLY_ADDITIONS.txt deleted file mode 100644 index 0b6817f7..00000000 --- a/data/trackassembly/exp/cl_TRACKASSEMBLY_ADDITIONS.txt +++ /dev/null @@ -1,8 +0,0 @@ -# StoreExternalDatabase( INS ): 01/22/17 17:15:05 [ LUA ] -# Data settings: MODELBASE,MODELADD,ENTCLASS,LINEID,POSOFF,ANGOFF,MOVETYPE,PHYSINIT,DRSHADOW,PHMOTION,PHYSLEEP,SETSOLID - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/sw_lever.mdl","buttonswitch",1,"-100,125,0","NULL",-1,-1,-1,0,-1,-1}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_r_switcher1.mdl","prop_dynamic",2,"NULL","NULL",6,6,-1,-1,1,6}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_r_switcher2.mdl","prop_dynamic",3,"NULL","NULL",6,6,-1,0,-1,0}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/sw_lever.mdl","buttonswitch",1,"-100,-125,0","0,180,0",-1,-1,-1,0,-1,-1}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_l_switcher1.mdl","prop_dynamic",2,"NULL","NULL",6,6,-1,-1,1,6}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_l_switcher2.mdl","prop_dynamic",3,"NULL","NULL",6,6,-1,0,-1,0}) diff --git a/data/trackassembly/exp/cl_TRACKASSEMBLY_PHYSPROPERTIES.txt b/data/trackassembly/exp/cl_TRACKASSEMBLY_PHYSPROPERTIES.txt deleted file mode 100644 index 8d5d202e..00000000 --- a/data/trackassembly/exp/cl_TRACKASSEMBLY_PHYSPROPERTIES.txt +++ /dev/null @@ -1,91 +0,0 @@ -# StoreExternalDatabase( INS ): 01/22/17 17:15:05 [ LUA ] -# Data settings: TYPE,LINEID,NAME - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",1,"default"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",2,"default_silent"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",3,"floatingstandable"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",4,"item"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",5,"ladder"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",6,"no_decal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",7,"player"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",8,"player_control_clip"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",1,"brick"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",2,"concrete"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",3,"concrete_block"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",4,"gravel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",5,"rock"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",1,"canister"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",2,"chain"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",3,"chainlink"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",4,"combine_metal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",5,"crowbar"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",6,"floating_metal_barrel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",7,"grenade"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",8,"gunship"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",9,"metal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",10,"metal_barrel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",11,"metal_bouncy"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",12,"Metal_Box"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",13,"metal_seafloorcar"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",14,"metalgrate"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",15,"metalpanel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",16,"metalvent"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",17,"metalvehicle"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",18,"paintcan"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",19,"popcan"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",20,"roller"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",21,"slipperymetal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",22,"solidmetal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",23,"strider"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",24,"weapon"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",1,"wood"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",2,"Wood_Box"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",3,"Wood_Furniture"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",4,"Wood_Plank"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",5,"Wood_Panel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",6,"Wood_Solid"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",1,"dirt"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",2,"grass"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",3,"gravel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",4,"mud"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",5,"quicksand"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",6,"sand"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",7,"slipperyslime"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",8,"antlionsand"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Liquid",1,"slime"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Liquid",2,"water"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Liquid",3,"wade"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Frozen",1,"snow"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Frozen",2,"ice"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Frozen",3,"gmod_ice"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",1,"carpet"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",2,"ceiling_tile"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",3,"computer"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",4,"pottery"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",1,"alienflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",2,"antlion"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",3,"armorflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",4,"bloodyflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",5,"flesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",6,"foliage"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",7,"watermelon"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",8,"zombieflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",1,"jeeptire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",2,"jalopytire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",3,"rubber"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",4,"rubbertire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",5,"slidingrubbertire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",6,"slidingrubbertire_front"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",7,"slidingrubbertire_rear"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",8,"brakingrubbertire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",9,"tile"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",10,"paper"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",11,"papercup"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",12,"cardboard"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",13,"plaster"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",14,"plastic_barrel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",15,"plastic_barrel_buoyant"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",16,"Plastic_Box"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",17,"plastic"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",18,"glass"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",19,"glassbottle"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",20,"combine_glass"}) diff --git a/data/trackassembly/exp/cl_TRACKASSEMBLY_PIECES.txt b/data/trackassembly/exp/cl_TRACKASSEMBLY_PIECES.txt deleted file mode 100644 index 9224dceb..00000000 --- a/data/trackassembly/exp/cl_TRACKASSEMBLY_PIECES.txt +++ /dev/null @@ -1,2366 +0,0 @@ -# StoreExternalDatabase( INS ): 01/22/17 17:15:05 [ LUA ] -# Data settings: MODEL,TYPE,NAME,LINEID,POINT,ORIGIN,ANGLE,CLASS - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_damaged.mdl","Battleship's abandoned rails","#",2,"","-966.40771,127.97242,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_nodamage.mdl","Battleship's abandoned rails","#",2,"","-966.40771,127.97242,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_damaged.mdl","Battleship's abandoned rails","#",2,"","-1060.13232,139.53517,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_nodamage.mdl","Battleship's abandoned rails","#",2,"","-1060.13232,139.53517,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_damaged.mdl","Battleship's abandoned rails","#",2,"","-1086.07532,450.1528,-16.110403","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_nodamage.mdl","Battleship's abandoned rails","#",2,"","-1086.07532,450.1528,-16.110403","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_damaged.mdl","Battleship's abandoned rails","#",2,"","-993.86975,130.8159,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_nodamage.mdl","Battleship's abandoned rails","#",2,"","-993.86975,130.8159,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_damaged.mdl","Battleship's abandoned rails","#",2,"","-927.61951,122.07793,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_nodamage.mdl","Battleship's abandoned rails","#",2,"","-927.61951,122.07793,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_damaged.mdl","Battleship's abandoned rails","#",1,"","64,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_damaged.mdl","Battleship's abandoned rails","#",2,"","-64,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_nodamage.mdl","Battleship's abandoned rails","#",1,"","64,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-64,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_damaged.mdl","Battleship's abandoned rails","#",1,"","128,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_damaged.mdl","Battleship's abandoned rails","#",2,"","-128,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_nodamage.mdl","Battleship's abandoned rails","#",1,"","128,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-128,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_damaged.mdl","Battleship's abandoned rails","#",1,"","192,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_damaged.mdl","Battleship's abandoned rails","#",2,"","-192,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_nodamage.mdl","Battleship's abandoned rails","#",1,"","192,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-192,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_damaged.mdl","Battleship's abandoned rails","#",1,"","256,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_damaged.mdl","Battleship's abandoned rails","#",2,"","-256,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_nodamage.mdl","Battleship's abandoned rails","#",1,"","256,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-256,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_damaged.mdl","Battleship's abandoned rails","#",1,"","512,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_damaged.mdl","Battleship's abandoned rails","#",2,"","-512,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_nodamage.mdl","Battleship's abandoned rails","#",1,"","512,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-512,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_damaged.mdl","Battleship's abandoned rails","#",1,"","454.40574,0.01251,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_damaged.mdl","Battleship's abandoned rails","#",2,"","-454.40574,0.01248,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_nodamage.mdl","Battleship's abandoned rails","#",1,"","454.40574,0.01251,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_nodamage.mdl","Battleship's abandoned rails","#",2,"","-454.40574,0.01248,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_left_std/switch_left_base_std.mdl","Battleship's abandoned rails","#",1,"","512,-0.000545,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_left_std/switch_left_base_std.mdl","Battleship's abandoned rails","#",2,"","-512,-0.000545,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_left_std/switch_left_base_std.mdl","Battleship's abandoned rails","#",3,"","-454.49805,-128.04355,-16.110403","0,-165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_right_std/switch_right_base_std.mdl","Battleship's abandoned rails","#",1,"","512,3e-005,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_right_std/switch_right_base_std.mdl","Battleship's abandoned rails","#",2,"","-512,-3e-005,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_right_std/switch_right_base_std.mdl","Battleship's abandoned rails","#",3,"","-454.48437,128.0936,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",1,"","83,0,3.015","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",2,"","0.003,83,3.015","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",3,"","-83,0.003,3.015","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",4,"","0,-83,3.015","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_1024.mdl","Bobster's two feet rails","#",2,"","249.471,49.621,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_2048.mdl","Bobster's two feet rails","#",2,"","498.941,99.246,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_512.mdl","Bobster's two feet rails","#",2,"","124.735,24.812,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_1024.mdl","Bobster's two feet rails","#",2,"","249.471,-49.623,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_2048.mdl","Bobster's two feet rails","#",2,"","498.945,-99.237,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_512.mdl","Bobster's two feet rails","#",2,"","124.736,-24.811,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_1024.mdl","Bobster's two feet rails","#",2,"","460.962,190.936,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_2048.mdl","Bobster's two feet rails","#",2,"","921.925,381.872,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_512.mdl","Bobster's two feet rails","#",2,"","230.481,95.468,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_1024.mdl","Bobster's two feet rails","#",2,"","460.963,-190.936,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_2048.mdl","Bobster's two feet rails","#",2,"","921.925,-381.872,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_512.mdl","Bobster's two feet rails","#",2,"","230.481,-95.469,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_1024.mdl","Bobster's two feet rails","#",2,"","651.898,651.898,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_2048.mdl","Bobster's two feet rails","#",2,"","1303.797,1303.797,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_512.mdl","Bobster's two feet rails","#",2,"","325.949,325.95,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_1024.mdl","Bobster's two feet rails","#",2,"","651.898,-651.899,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_2048.mdl","Bobster's two feet rails","#",2,"","1303.797,-1303.797,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_512.mdl","Bobster's two feet rails","#",2,"","325.949,-325.949,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_1024.mdl","Bobster's two feet rails","#",2,"","651.899,651.898,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_2048.mdl","Bobster's two feet rails","#",2,"","1303.797,1303.797,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_512.mdl","Bobster's two feet rails","#",2,"","325.949,325.949,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_1024.mdl","Bobster's two feet rails","#",2,"","651.926,-651.874,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_2048.mdl","Bobster's two feet rails","#",2,"","1303.798,-1303.797,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_512.mdl","Bobster's two feet rails","#",2,"","325.949,-325.949,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_1024.mdl","Bobster's two feet rails","#",2,"","249.471,49.621,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_512.mdl","Bobster's two feet rails","#",2,"","124.735,24.812,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_1024.mdl","Bobster's two feet rails","#",2,"","249.471,-49.623,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_512.mdl","Bobster's two feet rails","#",2,"","124.736,-24.811,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_1024.mdl","Bobster's two feet rails","#",2,"","460.962,190.936,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_512.mdl","Bobster's two feet rails","#",2,"","230.481,95.468,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_1024.mdl","Bobster's two feet rails","#",2,"","460.963,-190.936,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_512.mdl","Bobster's two feet rails","#",2,"","230.481,-95.469,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_1024.mdl","Bobster's two feet rails","#",2,"","651.898,651.898,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_512.mdl","Bobster's two feet rails","#",2,"","325.949,325.95,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_1024.mdl","Bobster's two feet rails","#",2,"","651.898,-651.899,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_512.mdl","Bobster's two feet rails","#",2,"","325.949,-325.949,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_1024.mdl","Bobster's two feet rails","#",1,"","512,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_1024.mdl","Bobster's two feet rails","#",2,"","-512,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_128.mdl","Bobster's two feet rails","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_128.mdl","Bobster's two feet rails","#",2,"","-64,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_16.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","8,0,3.017","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_16.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-8,0,3.017","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_2048.mdl","Bobster's two feet rails","#",1,"","1024,0,3.017","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_2048.mdl","Bobster's two feet rails","#",2,"","-1024,0,3.017","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_256.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_256.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_32.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","16,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_32.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-16,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_4096.mdl","Bobster's two feet rails","#",1,"","2048,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_4096.mdl","Bobster's two feet rails","#",2,"","-2048,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_512.mdl","Bobster's two feet rails","#",1,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_512.mdl","Bobster's two feet rails","#",2,"","-256,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_64.mdl","Bobster's two feet rails","#",1,"","32,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_64.mdl","Bobster's two feet rails","#",2,"","-32,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_left.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_left.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_right.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_right.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_1024.mdl","Bobster's two feet rails","#",1,"","512,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_1024.mdl","Bobster's two feet rails","#",2,"","-512,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_128.mdl","Bobster's two feet rails","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_128.mdl","Bobster's two feet rails","#",2,"","-64,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_16.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","8,0,3.017","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_16.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-8,0,3.017","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_256.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_256.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_32.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","16,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_32.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-16,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_512.mdl","Bobster's two feet rails","#",1,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_512.mdl","Bobster's two feet rails","#",2,"","-256,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_64.mdl","Bobster's two feet rails","#",1,"","32,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_64.mdl","Bobster's two feet rails","#",2,"","-32,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl","Bobster's two feet rails","#",3,"","262.471,49.622,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl","Bobster's two feet rails","#",3,"","262.471,49.622,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl","Bobster's two feet rails","#",3,"","262.472,-49.622,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl","Bobster's two feet rails","#",3,"","262.472,-49.622,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube025x025x025.mdl","Develop PHX","x1",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube05x05x05.mdl","Develop PHX","x2",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube075x075x075.mdl","Develop PHX","x3",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube1x1x1.mdl","Develop PHX","x4",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height06/size_1/cube_6x6x6.mdl","Develop Sprops","x1",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height12/size_1/cube_12x12x12.mdl","Develop Sprops","x2",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/non_set/cube_18x18x18.mdl","Develop Sprops","x3",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height24/size_1/cube_24x24x24.mdl","Develop Sprops","x4",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height36/size_1/cube_36x36x36.mdl","Develop Sprops","x5",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height48/size_1/cube_48x48x48.mdl","Develop Sprops","x6",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/props_c17/furniturewashingmachine001a.mdl","Develop Test","#",1,"","-0.05,0.006,21.934","#@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_c17/furniturewashingmachine001a.mdl","Develop Test","#",2,"","-0.05,0.006,-21.922","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225l.mdl","G Scale Track Pack","#",2,"","-196.060471,-39.081982,1.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225r.mdl","G Scale Track Pack","#",2,"","-196.060471,39.081982,1.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45l.mdl","G Scale Track Pack","#",2,"","-362,-150,1.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45r.mdl","G Scale Track Pack","#",2,"","-362,150,1.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90l.mdl","G Scale Track Pack","#",2,"","-512,-512,1.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90r.mdl","G Scale Track Pack","#",2,"","-512,512,1.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_s.mdl","G Scale Track Pack","#",3,"","-196.060471,-39.081982,1.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",4,"","-136,-78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_s.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_t.mdl","G Scale Track Pack","#",3,"","-196.060471,-39.081982,1.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",4,"","-136,-78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_t.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0032.mdl","G Scale Track Pack","#",1,"","32,0,2.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0032.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0064.mdl","G Scale Track Pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0064.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0128.mdl","G Scale Track Pack","#",1,"","128,0,5.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0128.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0256.mdl","G Scale Track Pack","#",1,"","256,0,9.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0256.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0512.mdl","G Scale Track Pack","#",1,"","512,0,17.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0512.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r1024.mdl","G Scale Track Pack","#",1,"","1024,0,33.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r1024.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_s.mdl","G Scale Track Pack","#",3,"","-196.060471,39.081982,1.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",4,"","-136,78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_s.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_t.mdl","G Scale Track Pack","#",3,"","-196.060471,39.081982,1.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",4,"","-136,78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_t.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0008.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0008.mdl","G Scale Track Pack","#",2,"","-8,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0016.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0016.mdl","G Scale Track Pack","#",2,"","-16,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0032.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0032.mdl","G Scale Track Pack","#",2,"","-32,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0032.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0032.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0064.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0064.mdl","G Scale Track Pack","#",2,"","-64,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0064.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0064.mdl","G Scale Track Pack","#",2,"","-64,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0128.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0128.mdl","G Scale Track Pack","#",2,"","-128,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0128.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0128.mdl","G Scale Track Pack","#",2,"","-128,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0256.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0256.mdl","G Scale Track Pack","#",2,"","-256,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0256.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0256.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0512.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0512.mdl","G Scale Track Pack","#",2,"","-512,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0512.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0512.mdl","G Scale Track Pack","#",2,"","-512,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s1024.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s1024.mdl","G Scale Track Pack","#",2,"","-1024,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s1024.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s1024.mdl","G Scale Track Pack","#",2,"","-1024,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225l.mdl","G Scale Track Pack","#",2,"","-392,-78.125595,1.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225r.mdl","G Scale Track Pack","#",2,"","-392,78.125595,1.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_1.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_1.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_2.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_2.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_t.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_225.mdl","Magnum's Rails","#",1,"","-0.01,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_225.mdl","Magnum's Rails","#",2,"","-587.955,-117.702,3.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_45.mdl","Magnum's Rails","#",1,"","-0.012,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_45.mdl","Magnum's Rails","#",2,"","-1087.089,-451.055,3.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_90.mdl","Magnum's Rails","#",1,"","1086.58,450.079,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_90.mdl","Magnum's Rails","#",2,"","-449.475,-1085.92,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0032.mdl","Magnum's Rails","#",1,"","16,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0032.mdl","Magnum's Rails","#",2,"","-16,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0064.mdl","Magnum's Rails","#",1,"","32,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0064.mdl","Magnum's Rails","#",2,"","-32,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0128.mdl","Magnum's Rails","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0128.mdl","Magnum's Rails","#",2,"","-64,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0256.mdl","Magnum's Rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0256.mdl","Magnum's Rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0512.mdl","Magnum's Rails","#",1,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0512.mdl","Magnum's Rails","#",2,"","-256,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_1024.mdl","Magnum's Rails","#",1,"","512,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_1024.mdl","Magnum's Rails","#",2,"","-512,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_2048.mdl","Magnum's Rails","#",1,"","1024,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_2048.mdl","Magnum's Rails","#",2,"","-1024,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",1,"","64,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",2,"","0,64,1.516","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",3,"","-64,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",4,"","0,-64,1.516","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_1.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_1.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_2.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_2.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,4.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_3.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_3.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_left_22_5.mdl","Mr.Train's G-Gauge","#",1,"","256,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_left_22_5.mdl","Mr.Train's G-Gauge","#",2,"","-256,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_right_22_5.mdl","Mr.Train's G-Gauge","#",1,"","256,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_right_22_5.mdl","Mr.Train's G-Gauge","#",2,"","-256,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_1024.mdl","Mr.Train's G-Gauge","#",1,"","512,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_1024.mdl","Mr.Train's G-Gauge","#",2,"","-512,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_128.mdl","Mr.Train's G-Gauge","#",1,"","64,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_128.mdl","Mr.Train's G-Gauge","#",2,"","-64,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_2048.mdl","Mr.Train's G-Gauge","#",1,"","1024,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_2048.mdl","Mr.Train's G-Gauge","#",2,"","-1024,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_256.mdl","Mr.Train's G-Gauge","#",1,"","128,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_256.mdl","Mr.Train's G-Gauge","#",2,"","-128,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_32.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_32.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_512.mdl","Mr.Train's G-Gauge","#",1,"","256,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_512.mdl","Mr.Train's G-Gauge","#",2,"","-256,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_64.mdl","Mr.Train's G-Gauge","#",1,"","32,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_64.mdl","Mr.Train's G-Gauge","#",2,"","-32,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl","Mr.Train's G-Gauge","#",1,"","256,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl","Mr.Train's G-Gauge","#",2,"","0,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl","Mr.Train's G-Gauge","#",3,"","-256,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl","Mr.Train's G-Gauge","#",1,"","256,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl","Mr.Train's G-Gauge","#",2,"","0,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl","Mr.Train's G-Gauge","#",3,"","-256,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl","Mr.Train's G-Gauge","#",1,"","256,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl","Mr.Train's G-Gauge","#",2,"","0,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl","Mr.Train's G-Gauge","#",3,"","-256,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl","Mr.Train's G-Gauge","#",1,"","256,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl","Mr.Train's G-Gauge","#",2,"","0,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl","Mr.Train's G-Gauge","#",3,"","-256,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_22_5.mdl","Mr.Train's G-Gauge","#",1,"","263.75,248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_22_5.mdl","Mr.Train's G-Gauge","#",2,"","67.855,209.265,1.516","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_45.mdl","Mr.Train's G-Gauge","#",1,"","263.75,248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_45.mdl","Mr.Train's G-Gauge","#",2,"","-98.326,98.323,1.516","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_90.mdl","Mr.Train's G-Gauge","#",1,"","263.75,248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_90.mdl","Mr.Train's G-Gauge","#",2,"","-248.25,-263.75,1.516","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_22_5.mdl","Mr.Train's G-Gauge","#",1,"","263.75,-248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_22_5.mdl","Mr.Train's G-Gauge","#",2,"","67.872,-209.299,1.516","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_45.mdl","Mr.Train's G-Gauge","#",1,"","263.75,-248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_45.mdl","Mr.Train's G-Gauge","#",2,"","-98.302,-98.302,1.516","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_90.mdl","Mr.Train's G-Gauge","#",1,"","263.75,-248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_90.mdl","Mr.Train's G-Gauge","#",2,"","-248.25,263.75,1.516","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_1024.mdl","Mr.Train's M-Gauge","#",1,"","512,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_1024.mdl","Mr.Train's M-Gauge","#",2,"","-512,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",1,"","64,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",2,"","0,64,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",3,"","-64,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",4,"","0,-64,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128.mdl","Mr.Train's M-Gauge","#",1,"","64,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128.mdl","Mr.Train's M-Gauge","#",2,"","-64,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_2048.mdl","Mr.Train's M-Gauge","#",1,"","1024,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_2048.mdl","Mr.Train's M-Gauge","#",2,"","-1024,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_256.mdl","Mr.Train's M-Gauge","#",1,"","128,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_256.mdl","Mr.Train's M-Gauge","#",2,"","-128,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_32.mdl","Mr.Train's M-Gauge","#",1,"","16,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_32.mdl","Mr.Train's M-Gauge","#",2,"","-16,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_4096.mdl","Mr.Train's M-Gauge","#",1,"","2048,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_4096.mdl","Mr.Train's M-Gauge","#",2,"","-2048,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_512.mdl","Mr.Train's M-Gauge","#",1,"","256,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_512.mdl","Mr.Train's M-Gauge","#",2,"","-256,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_64.mdl","Mr.Train's M-Gauge","#",1,"","32,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_64.mdl","Mr.Train's M-Gauge","#",2,"","-32,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024_45.mdl","Mr.Train's M-Gauge","#",1,"","518.5,505.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024_45.mdl","Mr.Train's M-Gauge","#",2,"","-205.608,205.607,0.014","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024.mdl","Mr.Train's M-Gauge","#",1,"","518.5,505.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024.mdl","Mr.Train's M-Gauge","#",2,"","-505.5,-518.5,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_256.mdl","Mr.Train's M-Gauge","#",1,"","134.497,121.499,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_256.mdl","Mr.Train's M-Gauge","#",2,"","-121.5,-134.5,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512_45.mdl","Mr.Train's M-Gauge","#",1,"","262.5,-249.497,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512_45.mdl","Mr.Train's M-Gauge","#",2,"","-99.51,-99.507,0.015","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512.mdl","Mr.Train's M-Gauge","#",1,"","262.5,249.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512.mdl","Mr.Train's M-Gauge","#",2,"","-249.5,-262.5,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768_45.mdl","Mr.Train's M-Gauge","#",1,"","383.625,370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768_45.mdl","Mr.Train's M-Gauge","#",2,"","-149.73,149.729,0.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768.mdl","Mr.Train's M-Gauge","#",1,"","383.625,370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768.mdl","Mr.Train's M-Gauge","#",2,"","-370.625,-383.625,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024_45.mdl","Mr.Train's M-Gauge","#",1,"","518.5,-505.498,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024_45.mdl","Mr.Train's M-Gauge","#",2,"","-205.621,-205.618,0.014","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024.mdl","Mr.Train's M-Gauge","#",1,"","518.5,-505.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024.mdl","Mr.Train's M-Gauge","#",2,"","-505.5,518.5,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_256.mdl","Mr.Train's M-Gauge","#",1,"","134.5,-121.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_256.mdl","Mr.Train's M-Gauge","#",2,"","-121.5,134.5,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_512.mdl","Mr.Train's M-Gauge","#",1,"","262.5,-249.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_512.mdl","Mr.Train's M-Gauge","#",2,"","-249.5,262.5,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768_45.mdl","Mr.Train's M-Gauge","#",1,"","383.625,-370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768_45.mdl","Mr.Train's M-Gauge","#",2,"","-149.758,-149.751,0.012","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768.mdl","Mr.Train's M-Gauge","#",1,"","383.625,-370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768.mdl","Mr.Train's M-Gauge","#",2,"","-370.625,383.625,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",1,"","75,-75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",2,"","203,75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",3,"","-75,75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",4,"","-203,-75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",1,"","203,-75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",2,"","75,75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",3,"","-203,75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",4,"","-75,-75,-2.485","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",1,"","203,-75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",2,"","203,75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",3,"","-203,75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",4,"","-203,-75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_lefthand.mdl","Mr.Train's M-Gauge","#",1,"","0,-10,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_lefthand.mdl","Mr.Train's M-Gauge","#",2,"","-256,-10,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_lefthand.mdl","Mr.Train's M-Gauge","#",3,"","-384,-160,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_righthand.mdl","Mr.Train's M-Gauge","#",1,"","0,10,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_righthand.mdl","Mr.Train's M-Gauge","#",2,"","-384,160,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_righthand.mdl","Mr.Train's M-Gauge","#",3,"","-256,10,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_1024.mdl","PHX Metal","#",1,"","511.754761,-4.7e-005,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_1024.mdl","PHX Metal","#",2,"","-512.240601,-0.050828,9.215","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_128.mdl","PHX Metal","#",1,"","63.75531,0.001953,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_128.mdl","PHX Metal","#",2,"","-64.240356,-0.005125,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_2048.mdl","PHX Metal","#",1,"","1023.755066,0.000642,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_2048.mdl","PHX Metal","#",2,"","-1024.242676,-0.109433,9.215","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_256.mdl","PHX Metal","#",1,"","127.754944,0.001953,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_256.mdl","PHX Metal","#",2,"","-128.245117,-0.012207,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_32.mdl","PHX Metal","#",1,"-0.327,-61.529,8.714","15.755127,0.001953,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_32.mdl","PHX Metal","#",2,"-0.327,61.529,8.714","-16.239746,0.000244,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_4096.mdl","PHX Metal","#",1,"","2047.755249,0.001923,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_4096.mdl","PHX Metal","#",2,"","-2048.240479,-0.225247,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_512.mdl","PHX Metal","#",1,"","255.754791,0.001465,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_512.mdl","PHX Metal","#",2,"","-256.242401,-0.026855,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_64.mdl","PHX Metal","#",1,"","31.999878,0.00196,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_64.mdl","PHX Metal","#",2,"","-32.000275,-0.001469,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam1.mdl","PHX Monorail Beam","#",1,"","22.411,0.001,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam1.mdl","PHX Monorail Beam","#",2,"","-22.413,0.001,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam2.mdl","PHX Monorail Beam","#",1,"","45.298,0.001,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam2.mdl","PHX Monorail Beam","#",2,"","-46.968,0.001,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam3.mdl","PHX Monorail Beam","#",1,"","93.069,0,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam3.mdl","PHX Monorail Beam","#",2,"","-94.079,0.002,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam4.mdl","PHX Monorail Beam","#",1,"","175.507,0.001,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam4.mdl","PHX Monorail Beam","#",2,"","-201.413,0.001,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail3.mdl","PHX Monorail","Straight Long",1,"","0.239949,-934.135559,13.879116","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail3.mdl","PHX Monorail","Straight Long",2,"","0.239705,930.885315,13.87915","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail2.mdl","PHX Monorail","Straight Middle",1,"","0.239726,-462.635468,13.879296","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail2.mdl","PHX Monorail","Straight Middle",2,"","0.239914,464.885315,13.879209","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail1.mdl","PHX Monorail","Straight Short",1,"","229.885559,0.23999,13.87915","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail1.mdl","PHX Monorail","Straight Short",2,"","-228.885254,0.239726,13.87915","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail4.mdl","PHX Monorail","Straight Very Long",1,"","0.239664,-1867.13562,13.879143","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail4.mdl","PHX Monorail","Straight Very Long",2,"","0.239664,1872.885376,13.87915","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve2.mdl","PHX Monorail","Turn 45",1,"","-0.030396,-605.638428,13.881409","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve2.mdl","PHX Monorail","Turn 45",2,"","-428.018524,-428.362335,13.881714","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve.mdl","PHX Monorail","Turn 90",1,"","-0.030518,-605.638184,13.880554","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve.mdl","PHX Monorail","Turn 90",2,"","-605.380859,-0.307583,13.881714","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_16x.mdl","PHX Regular","16x",1,"","2029.797363,0.000133,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_16x.mdl","PHX Regular","16x",2,"","-370.036865,-2e-060,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_1x.mdl","PHX Regular","1x",1,"","79.929352,0,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_1x.mdl","PHX Regular","1x",2,"","-70.05806,6e-006,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_down.mdl","PHX Regular","225 Down",1,"","-75.016,-0.006,64.57","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_down.mdl","PHX Regular","225 Down",2,"","4.096,-0.007,48.791","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_up.mdl","PHX Regular","225 Up",1,"","-75.016,0.007,11.212","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_up.mdl","PHX Regular","225 Up",2,"","4.196,0,27.054","@-22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_2x.mdl","PHX Regular","2x",1,"","229.919388,0,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_2x.mdl","PHX Regular","2x",2,"","-70.05806,-6e-006,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_down.mdl","PHX Regular","45 Down",1,"-75.016,-0.002,64.568","-75.013,-0.002,64.568","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_down.mdl","PHX Regular","45 Down",2,"","71.037,-0.018,3.951","@45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_up.mdl","PHX Regular","45 Up",1,"","-75.013,0.007,11.218","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_up.mdl","PHX Regular","45 Up",2,"","71.173,0.003,71.909","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_4x.mdl","PHX Regular","4x",1,"","229.919388,3.1e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_4x.mdl","PHX Regular","4x",2,"","-370.037079,-3.2e-005,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_8x.mdl","PHX Regular","8x",1,"","829.878418,3.8e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_8x.mdl","PHX Regular","8x",2,"","-370.036865,-2.5e-005,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",1,"","250.473389,49.613159,11.214844","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",2,"","-349.483032,49.613129,11.214844","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",3,"","162.610229,-162.4935,11.214844","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",4,"","-261.623718,261.740234,11.214844","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",1,"","74.973145,1e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",2,"","-75.013794,-7e-006,12.548828","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",3,"","-0.022434,74.999878,12.548828","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",4,"","-0.022434,-74.987061,12.548828","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_pass.mdl","PHX Regular","Cross Road",1,"","229.920044,2e-005,11.214844","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_pass.mdl","PHX Regular","Cross Road",2,"","-370.036377,2e-006,11.214844","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_single.mdl","PHX Regular","Single",1,"-0.327,-61.529,8.714","15.451782,1.5e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_single.mdl","PHX Regular","Single",2,"-0.327,61.529,8.714","-16.094971,-1e-006,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch2.mdl","PHX Regular","Switch Left [X]",1,"","829.880005,-0.001465,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch2.mdl","PHX Regular","Switch Left [X]",2,"","-370.037262,-0.000456,11.218994","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch2.mdl","PHX Regular","Switch Left [X]",3,"","-158.311356,-338.111572,11.218994","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch.mdl","PHX Regular","Switch Right",1,"","829.8797,0.001587,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch.mdl","PHX Regular","Switch Right",2,"","-370.037231,0.000256,11.218994","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch.mdl","PHX Regular","Switch Right",3,"","-158.311737,338.107941,11.218994","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn45.mdl","PHX Regular","Turn45",1,"","733.000061,-265.363037,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn45.mdl","PHX Regular","Turn45",2,"","-83.26461,72.744667,11.218994","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn90.mdl","PHX Regular","Turn90",1,"","733.000061,-265.363037,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn90.mdl","PHX Regular","Turn90",2,"","-421.363312,889.005493,11.218994","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/big_ramp.mdl","PHX Road","#",1,"","-569.177,-7.199953,-3.075","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/big_ramp.mdl","PHX Road","#",2,"","625.022,-7.199953,472.427","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_curve.mdl","PHX Road","#",1,"","162.813,379.277,1.879","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_curve.mdl","PHX Road","#",2,"","-363.22,-146.757,1.879","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_long.mdl","PHX Road","#",1,"","0,1198.773,1.765","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_long.mdl","PHX Road","#",2,"","0,-1198.773,1.765","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_medium.mdl","PHX Road","#",1,"","0,599.386,1.765","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_medium.mdl","PHX Road","#",2,"","0,-599.386,1.765","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_short.mdl","PHX Road","#",1,"","0,299.693,1.765","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_short.mdl","PHX Road","#",2,"","0,-299.693,1.765","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/small_ramp.mdl","PHX Road","#",1,"","-284.589,-3.599976,-1.672","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/small_ramp.mdl","PHX Road","#",2,"","312.608,-3.599976,236.11","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.081","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve2x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve2x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.081","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1a.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1a.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x1.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x1.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x2.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole3.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole3.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4c.mdl","PHX Tubes Plastic","#",1,"","47.45,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4c.mdl","PHX Tubes Plastic","#",2,"","47.45,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4d.mdl","PHX Tubes Plastic","#",1,"","47.45,47.45,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4d.mdl","PHX Tubes Plastic","#",2,"","47.45,47.45,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2a.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2e.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2x45.mdl","PHX Tubes Plastic","#",1,"0,-47.45,0","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2x45.mdl","PHX Tubes Plastic","#",2,"-33.552,-33.552,0","0,0,0","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3b.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3c.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3d.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5b.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5c.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5d.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6b.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6c.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6d.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8b.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8c.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8d.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",2,"","0,-47.45,0","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",3,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",4,"","0,47.45,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025b.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025b.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025c.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025c.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025d.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025d.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05b.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05b.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05c.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05c.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05d.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05d.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x16d.mdl","PHX Tubes Plastic","#",1,"","0,0,711.75","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x16d.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8b.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8b.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8c.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8c.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8d.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8d.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xta.mdl","PHX Tubes Plastic","#",1,"","0,0,-23.725","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xta.mdl","PHX Tubes Plastic","#",2,"","0,47.45,23.725","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xta.mdl","PHX Tubes Plastic","#",3,"","0,-47.45,23.725","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xtb.mdl","PHX Tubes Plastic","#",1,"","0,-23.725,0","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xtb.mdl","PHX Tubes Plastic","#",2,"","0,23.725,-47.45","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xt.mdl","PHX Tubes Plastic","#",1,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xt.mdl","PHX Tubes Plastic","#",2,"","0,-47.45,0","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xt.mdl","PHX Tubes Plastic","#",3,"","0,47.45,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025b.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025c.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025d.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05b.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05b.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05c.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05c.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05d.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05d.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16b.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16b.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16c.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16c.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16d.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16d.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1to2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1to2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3b.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3b.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3c.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3c.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3d.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3d.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5b.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5b.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5c.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5c.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5d.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5d.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6b.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6b.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6c.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6c.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6d.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6d.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8b.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8b.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8c.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8c.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8d.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8d.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x1x90.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x1x90.mdl","PHX Tubes Plastic","#",2,"","0,23.725,23.725","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90a.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90a.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90b.mdl","PHX Tubes Plastic","#",1,"","-47.45,0,47.45","0,-180,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,-90,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90outer.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90outer.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90square.mdl","PHX Tubes Plastic","#",1,"","0,0,-47.451","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90square.mdl","PHX Tubes Plastic","#",2,"","0,47.417,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend4x4x90.mdl","PHX Tubes Plastic","#",1,"","0,94.9,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend4x4x90.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare2.mdl","PHX Tubes Plastic","#",1,"","0,0,23.725","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare2.mdl","PHX Tubes Plastic","#",2,"","0,-47.45,-23.724","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare.mdl","PHX Tubes Plastic","#",1,"","0,0,23.725","@-90,90,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare.mdl","PHX Tubes Plastic","#",2,"","-47.45,0,-23.724","0,-180,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare2.mdl","PHX Tubes Plastic","#",1,"0,0,47.45","0,0,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare2.mdl","PHX Tubes Plastic","#",2,"0,-47.45,0","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare.mdl","PHX Tubes Plastic","#",1,"0,0,47.45","0,0,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare.mdl","PHX Tubes Plastic","#",2,"0,-47.45,0","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_90deg.mdl","Portal Tubes","#",1,"","64.041,0.049,0.131","",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_90deg.mdl","Portal Tubes","#",2,"","0.002,0.04,-63.904","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_broken.mdl","Portal Tubes","#",1,"","0.009,0,63.896","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_broken.mdl","Portal Tubes","#",2,"","0.008,0.004,-63.897","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_straight.mdl","Portal Tubes","#",1,"","0.009,0,63.896","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_straight.mdl","Portal Tubes","#",2,"","0.008,0.004,-63.897","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_tjoint.mdl","Portal Tubes","#",1,"","-0.014,0.13,96.075","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_tjoint.mdl","Portal Tubes","#",2,"","-0.004,-95.763,0.016","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_tjoint.mdl","Portal Tubes","#",3,"","0,96,0.083","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/big_jetty.mdl","Random Bridges","#",1,"","0,116.668,57.94","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/big_jetty.mdl","Random Bridges","#",2,"","0,-11.914,57.939","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_128.mdl","Random Bridges","#",1,"","0,67.452,14.326","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_128.mdl","Random Bridges","#",2,"","0,-63.954,14.325","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_256.mdl","Random Bridges","#",1,"","0,131.491,14.199","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_256.mdl","Random Bridges","#",2,"","0,-139.388,14.198","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_384.mdl","Random Bridges","#",1,"","0,199.517,14.302","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_384.mdl","Random Bridges","#",2,"","0,-196.069,14.215","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_128.mdl","Random Bridges","#",1,"","0,67.244,14.323","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_128.mdl","Random Bridges","#",2,"","0,-63.033,14.337","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_256.mdl","Random Bridges","#",1,"","0,131.502,14.339","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_256.mdl","Random Bridges","#",2,"","0,-127.085,14.319","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_384.mdl","Random Bridges","#",1,"","0,199.517,14.332","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_384.mdl","Random Bridges","#",2,"","0,-196.012,14.318","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_wasteland/bridge_low_res.mdl","Random Bridges","#",1,"","5056,219.145,992.765","",""}) - asmlib.InsertRecord("PIECES", {"models/props_wasteland/bridge_low_res.mdl","Random Bridges","#",2,"","-576,219.145,992.765","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01b.mdl","Random Bridges","#",1,"","910.69,-13.63,403.46","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01b.mdl","Random Bridges","#",2,"","-913.31,-13.63,403.46","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01.mdl","Random Bridges","#",1,"","455.345,-6.815,201.73","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01.mdl","Random Bridges","#",2,"","-456.655,-6.815,201.73","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge02.mdl","Random Bridges","#",1,"","0,512.155,288","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge02.mdl","Random Bridges","#",2,"","0,-512.212,288","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03a.mdl","Random Bridges","#",1,"","320.89,0,187.742","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03a.mdl","Random Bridges","#",2,"","-320.059,0,187.742","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03b.mdl","Random Bridges","#",1,"","320.89,0,187.741","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03b.mdl","Random Bridges","#",2,"","-320.059,0,187.741","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03c.mdl","Random Bridges","#",1,"","1026.848,0,600.773","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03c.mdl","Random Bridges","#",2,"","-1024.189,0,600.773","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge_b.mdl","Random Bridges","#",1,"","-330.895,0.039,124.673","",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge_b.mdl","Random Bridges","#",2,"","-522.855,0.251,124.671","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge.mdl","Random Bridges","#",1,"","-8.401,0,124.685","",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge.mdl","Random Bridges","#",2,"","-320,0,124.685","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/bridge.mdl","Random Bridges","Karkar",1,"","62.07,-343.696,208.295","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/bridge.mdl","Random Bridges","Karkar",2,"","62.07,334.44,208.295","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/askari/bridge01_stlve.mdl","Random Bridges","Stlve",1,"","192,0,189.531","",""}) - asmlib.InsertRecord("PIECES", {"models/askari/bridge01_stlve.mdl","Random Bridges","Stlve",2,"","-192,0,189.531","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_2fort/bridgesupports001.mdl","Random Bridges","TF Support",1,"","448,0,-14.268","",""}) - asmlib.InsertRecord("PIECES", {"models/props_2fort/bridgesupports001.mdl","Random Bridges","TF Support",2,"","-448,0,-15.558","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/tresslebridge.mdl","Random Bridges","#",1,"","374.246,-1.2345,24.849","",""}) - asmlib.InsertRecord("PIECES", {"models/props/tresslebridge.mdl","Random Bridges","#",2,"","-345.367,-1.2345,24.85","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge01.mdl","Random Bridges","#",1,"","0,68.767,14.898","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge01.mdl","Random Bridges","#",2,"","0,-70.316,14.898","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge02.mdl","Random Bridges","#",1,"","5.236,-13.396,11.976","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge02.mdl","Random Bridges","#",2,"","5.236,479.851,11.976","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge03.mdl","Random Bridges","#",1,"","1.436,-12.169,11.136","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge03.mdl","Random Bridges","#",2,"","1.436,480.851,11.136","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge04.mdl","Random Bridges","#",1,"","-2.253,-11.847,10.696","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge04.mdl","Random Bridges","#",2,"","-2.253,480.851,10.696","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly_broken_bstk.mdl","Random Bridges","#",1,"","-318.524,0,26.757","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly_broken_bstk.mdl","Random Bridges","#",2,"","244.523,0,3.55","",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly.mdl","Random Bridges","#",1,"","0,318.601,26.783","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly.mdl","Random Bridges","#",2,"","0,-240.814,2.85","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",2,"","0,64,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",3,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",4,"","0,-64,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_end.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_end.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_end.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_end.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_pillar.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_pillar.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_2.mdl","Ron's 2ft track pack","Buffer SH2",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_2.mdl","Ron's 2ft track pack","Buffer SH2",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_3.mdl","Ron's 2ft track pack","Buffer SH3",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_3.mdl","Ron's 2ft track pack","Buffer SH3",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_1.mdl","Ron's 2ft track pack","#",2,"","-391.846,-77.978,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_2.mdl","Ron's 2ft track pack","#",2,"","-439.352,-87.36,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_3.mdl","Ron's 2ft track pack","#",2,"","-486.814,-96.707,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_4.mdl","Ron's 2ft track pack","#",2,"","-532.889,-105.687,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_1.mdl","Ron's 2ft track pack","#",2,"","-391.846,77.978,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_2.mdl","Ron's 2ft track pack","#",2,"","-439.352,87.36,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_3.mdl","Ron's 2ft track pack","#",2,"","-486.814,96.707,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_4.mdl","Ron's 2ft track pack","#",2,"","-532.866,105.763,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_1.mdl","Ron's 2ft track pack","#",2,"","-724.122,-299.876,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_2.mdl","Ron's 2ft track pack","#",2,"","-811.77,-336.23,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_3.mdl","Ron's 2ft track pack","#",2,"","-899.503,-372.497,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_4.mdl","Ron's 2ft track pack","#",2,"","-987.115,-408.885,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_1.mdl","Ron's 2ft track pack","#",2,"","-724.122,299.876,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_2.mdl","Ron's 2ft track pack","#",2,"","-811.77,336.23,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_3.mdl","Ron's 2ft track pack","#",2,"","-899.503,372.497,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_4.mdl","Ron's 2ft track pack","#",2,"","-987.115,408.885,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024_sided.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024_sided.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128_sided.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128_sided.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256_sided.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256_sided.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32_sided.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32_sided.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512_sided.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512_sided.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64_sided.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64_sided.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided_m.mdl","Ron's 2ft track pack","Embankment Bridge Sided Mirrored",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided_m.mdl","Ron's 2ft track pack","Embankment Bridge Sided Mirrored",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/left/junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/left/junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/left/junction.mdl","Ron's 2ft track pack","#",3,"","-77.994,391.842,6.016","0,112.5,0","r2ftp_junction_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/right/junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/right/junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/right/junction.mdl","Ron's 2ft track pack","#",3,"","77.994,391.842,6.016","0,67.5,0","r2ftp_junction_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_switched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_switched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_switched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,-77.994,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_unswitched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_unswitched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_unswitched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,-77.994,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_n_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_n_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl","Ron's 2ft track pack","#",3,"","-124,704,6.016","0,90,0","r2ftp_junction_n_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_n_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_n_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl","Ron's 2ft track pack","#",3,"","124,704,6.016","0,90,0","r2ftp_junction_n_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/passenger_crossing.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/passenger_crossing.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",1,"","512,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",2,"","512,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",3,"","-512,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",4,"","-512,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","512,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","512,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-512,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-512,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",1,"","256,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",2,"","256,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",3,"","-256,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",4,"","-256,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","256,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","256,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-256,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-256,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_1.mdl","Ron's 2ft track pack","#",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 1024 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 1024 Embankment Sided Mirrored 1",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_1.mdl","Ron's 2ft track pack","#",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 128 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 128 Embankment Sided Mirrored 1",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_1.mdl","Ron's 2ft track pack","#",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 256 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 256 Embankment Sided Mirrored 1",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_1.mdl","Ron's 2ft track pack","#",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 32 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 32 Embankment Sided Mirrored 1",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_1.mdl","Ron's 2ft track pack","#",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 512 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 512 Embankment Sided Mirrored 1",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 64 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 64 Embankment Sided Mirrored 1",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_1.mdl","Ron's 2ft track pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_1.mdl","Ron's 2ft track pack","#",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_1.mdl","Ron's 2ft track pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_1.mdl","Ron's 2ft track pack","#",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp End Embankment Sided Mirrored 1",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp End Embankment Sided Mirrored 1",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp Start Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp Start Embankment Sided Mirrored 1",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/rerailer.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/rerailer.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_switched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_switched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_switched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,77.994,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_unswitched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_unswitched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_unswitched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,77.994,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_middle.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_middle.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_side.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_side.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_left.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_left.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_right.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_right.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",4,"","-320,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",4,"","-320,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",4,"","-320,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",4,"","-320,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",3,"","-124,704,6.016","0,90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",4,"","-124,320,6.016","0,-90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",3,"","124,704,6.016","0,90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",4,"","124,320,6.016","0,-90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed_open_both.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed_open_left.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed_open_right.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",1,"","16,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",2,"","16,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",3,"","-16,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",4,"","-16,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_320_junction.mdl","Ron's 2ft track pack","#",1,"","160,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_320_junction.mdl","Ron's 2ft track pack","#",2,"","-160,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_closed.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_closed.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_opened.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_opened.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_damaged.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_damaged.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_grass.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_grass.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_street.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_street.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_grass.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_grass.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_street.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_street.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_grass.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_grass.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_street.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_street.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_grass.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_grass.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_grass.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_grass.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_street.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_street.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_grass.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_grass.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_street.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_street.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_grass.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_grass.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_grass.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_grass.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_street.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_street.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_grass.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_grass.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_street.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_street.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_normal.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_normal.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_normal_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_normal_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",4,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",4,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",4,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",4,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass_m.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass_m.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_big.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_big.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",1,"","96,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",2,"","0,96,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",3,"","-96,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",4,"","0,-96,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",5,"","32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",6,"","0,32,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",7,"","-32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",8,"","0,-32,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow.mdl","Ron's 2ft track pack","#",1,"","0,32,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow.mdl","Ron's 2ft track pack","#",2,"","0,-32,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",1,"","192,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",2,"","0,192,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",3,"","-192,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",4,"","0,-192,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",5,"","64,0,10.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",6,"","0,64,10.516","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",7,"","-64,0,10.516","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",8,"","0,-64,10.516","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small.mdl","Ron's 2ft track pack","#",1,"","64,0,10.516","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",1,"","62,0,6.016","0,-90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",2,"","62,704,6.016","0,90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",3,"","-62,704,6.016","0,90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",4,"","-62,0,6.016","0,-90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_switched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_switched_1.mdl","Ron's 2ft track pack","#",2,"","-391.763031,78.046341,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_switched_1.mdl","Ron's 2ft track pack","#",3,"","-391.812866,-77.926048,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_unswitched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_unswitched_1.mdl","Ron's 2ft track pack","#",2,"","-391.763031,78.046341,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_unswitched_1.mdl","Ron's 2ft track pack","#",3,"","-391.812866,-77.926048,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/y_junctions/y_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_y"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/y_junctions/y_junction.mdl","Ron's 2ft track pack","#",2,"","77.969124,391.794891,6.016","0,67.5,0","r2ftp_junction_y"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/y_junctions/y_junction.mdl","Ron's 2ft track pack","#",3,"","-77.969093,391.794952,6.016","0,112.5,0","r2ftp_junction_y"}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/1.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/1.mdl","Ron's Minitrain Props","#",2,"","-1,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/2.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/2.mdl","Ron's Minitrain Props","#",2,"","-2,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/4.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/4.mdl","Ron's Minitrain Props","#",2,"","-4,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/8.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/8.mdl","Ron's Minitrain Props","#",2,"","-8,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/bridge.mdl","Ron's Minitrain Props","#",1,"","0,64,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/bridge.mdl","Ron's Minitrain Props","#",2,"","0,-64,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1024.mdl","Ron's Minitrain Props","#",1,"","0,512,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1024.mdl","Ron's Minitrain Props","#",2,"","0,-512,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_128.mdl","Ron's Minitrain Props","#",1,"","0,64,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_128.mdl","Ron's Minitrain Props","#",2,"","0,-64,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_16.mdl","Ron's Minitrain Props","#",1,"","0,8,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_16.mdl","Ron's Minitrain Props","#",2,"","0,-8,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1.mdl","Ron's Minitrain Props","#",1,"","0,0.5,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1.mdl","Ron's Minitrain Props","#",2,"","0,-0.5,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_1.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_1.mdl","Ron's Minitrain Props","#",2,"","10.542684747187,53.001655382565,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_2.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_2.mdl","Ron's Minitrain Props","#",2,"","12.826298771848,64.482158353518,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_3.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_3.mdl","Ron's Minitrain Props","#",2,"","15.10991279651,75.96266132447,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_4.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_4.mdl","Ron's Minitrain Props","#",2,"","17.393526821171,87.443164295423,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_5.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_5.mdl","Ron's Minitrain Props","#",2,"","19.677140845832,98.923667266376,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_6.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_6.mdl","Ron's Minitrain Props","#",2,"","21.960754870494,110.40417023733,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_256.mdl","Ron's Minitrain Props","#",1,"","0,128,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_256.mdl","Ron's Minitrain Props","#",2,"","0,-128,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_2.mdl","Ron's Minitrain Props","#",1,"","0,1,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_2.mdl","Ron's Minitrain Props","#",2,"","0,-1,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_32.mdl","Ron's Minitrain Props","#",1,"","0,16,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_32.mdl","Ron's Minitrain Props","#",2,"","0,-16,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_1.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_1.mdl","Ron's Minitrain Props","#",2,"","40.565710805663,97.934289194337,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_2.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_2.mdl","Ron's Minitrain Props","#",2,"","49.352507370067,119.14749262993,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_3.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_3.mdl","Ron's Minitrain Props","#",2,"","58.13930393447,140.36069606553,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_4.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_4.mdl","Ron's Minitrain Props","#",2,"","66.926100498874,161.57389950113,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_5.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_5.mdl","Ron's Minitrain Props","#",2,"","75.712897063277,182.78710293672,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_6.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_6.mdl","Ron's Minitrain Props","#",2,"","84.499693627681,204.00030637232,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_4.mdl","Ron's Minitrain Props","#",1,"","0,2,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_4.mdl","Ron's Minitrain Props","#",2,"","0,-2,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_512.mdl","Ron's Minitrain Props","#",1,"","0,256,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_512.mdl","Ron's Minitrain Props","#",2,"","0,-256,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_64.mdl","Ron's Minitrain Props","#",1,"","0,32,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_64.mdl","Ron's Minitrain Props","#",2,"","0,-32,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_8.mdl","Ron's Minitrain Props","#",1,"","0,4,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_8.mdl","Ron's Minitrain Props","#",2,"","0,-4,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_1.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_1.mdl","Ron's Minitrain Props","#",2,"","138.5,138.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_2.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_2.mdl","Ron's Minitrain Props","#",2,"","168.5,168.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_3.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_3.mdl","Ron's Minitrain Props","#",2,"","198.5,198.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_4.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_4.mdl","Ron's Minitrain Props","#",2,"","228.5,228.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_5.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_5.mdl","Ron's Minitrain Props","#",2,"","258.5,258.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_6.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_6.mdl","Ron's Minitrain Props","#",2,"","288.5,288.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_128.mdl","Ron's Minitrain Props","#",1,"","0,0,1","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_128.mdl","Ron's Minitrain Props","#",2,"","0,144,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_256.mdl","Ron's Minitrain Props","#",1,"","0,0,1","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_256.mdl","Ron's Minitrain Props","#",2,"","0,272,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_512.mdl","Ron's Minitrain Props","#",1,"","0,0,1","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_512.mdl","Ron's Minitrain Props","#",2,"","0,528,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/scenery/tunnel_64.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/scenery/tunnel_64.mdl","Ron's Minitrain Props","#",2,"","-64,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h03.mdl","SProps","225 Down",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h03.mdl","SProps","225 Down",2,"","-1264.663,0,-247.177","@22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h02.mdl","SProps","225 Up",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h02.mdl","SProps","225 Up",2,"","-1258.828,0,261.268","@-22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h01.mdl","SProps","Ramp",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h01.mdl","SProps","Ramp",2,"","-2525.98,0,503.58","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/rerailer.mdl","SProps","#",1,"-1088.178,0,19.886","-1280.383,0,7.618","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s01.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s01.mdl","SProps","#",2,"","-162,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s02.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s02.mdl","SProps","#",2,"","-324,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s03.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s03.mdl","SProps","#",2,"","-486,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s04.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s04.mdl","SProps","#",2,"","-648,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s05.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s05.mdl","SProps","#",2,"","-1296.002,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s06.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s06.mdl","SProps","#",2,"","-2592.002,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_01.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_01.mdl","SProps","#",2,"","-825,825,7.624","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_02.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_02.mdl","SProps","#",2,"","-1650,1650.0009765625,7.624","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_bumper.mdl","Shinji85's Rails","Bumper",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_csfix.mdl","Shinji85's Rails","Counter Switch Fix",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_csfix.mdl","Shinji85's Rails","Counter Switch Fix",2,"","-115.18847,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cs.mdl","Shinji85's Rails","Counter Switch",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cs.mdl","Shinji85's Rails","Counter Switch",2,"","-908.81165,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cxfix.mdl","Shinji85's Rails","Counter X Fix",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cxfix.mdl","Shinji85's Rails","Counter X Fix",2,"","-149.48648,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cx.mdl","Shinji85's Rails","Counter X",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cx.mdl","Shinji85's Rails","Counter X",2,"","-362.51361,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",2,"","-512,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",3,"","-256,-256,7.346","0,270,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",4,"","-256,256,7.346","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_cc.mdl","Shinji85's Rails","Curve Cc",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_cc.mdl","Shinji85's Rails","Curve Cc",2,"","-966.40515,128,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r11.mdl","Shinji85's Rails","Curve R11",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r11.mdl","Shinji85's Rails","Curve R11",2,"","-1086.11584,449.88458,7.346","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r12.mdl","Shinji85's Rails","Curve R12",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r12.mdl","Shinji85's Rails","Curve R12",2,"","-905.09656,374.90414,7.346","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r13.mdl","Shinji85's Rails","Curve R13",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r13.mdl","Shinji85's Rails","Curve R13",2,"","-724.07727,299.92276,7.346","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r1.mdl","Shinji85's Rails","Curve R1",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r1.mdl","Shinji85's Rails","Curve R1",2,"","-1060.12341,139.56763,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r2.mdl","Shinji85's Rails","Curve R2",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r2.mdl","Shinji85's Rails","Curve R2",2,"","-993.86572,130.84471,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r3.mdl","Shinji85's Rails","Curve R3",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r3.mdl","Shinji85's Rails","Curve R3",2,"","-927.60797,122.1218,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",1,"","0,128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",2,"","-512,128,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",3,"","0,-128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",4,"","-512,-128,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_bumper.mdl","Shinji85's Rails","Double Bumper",1,"","0,128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_bumper.mdl","Shinji85's Rails","Double Bumper",2,"","0,-128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_l_switch.mdl","Shinji85's Rails","L Switch",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_l_switch.mdl","Shinji85's Rails","L Switch",2,"","-1024,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_l_switch.mdl","Shinji85's Rails","L Switch",3,"","-966.40515,-128,7.346","0,195,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_r_switch.mdl","Shinji85's Rails","R Switch",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_r_switch.mdl","Shinji85's Rails","R Switch",2,"","-1024,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_r_switch.mdl","Shinji85's Rails","R Switch",3,"","-966.40515,128,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_16x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_16x.mdl","Shinji85's Rails","#",2,"","-2048,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_1x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_1x.mdl","Shinji85's Rails","#",2,"","-128,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_2x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_2x.mdl","Shinji85's Rails","#",2,"","-256,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x_crossing.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x_crossing.mdl","Shinji85's Rails","#",2,"","-512,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x.mdl","Shinji85's Rails","#",2,"","-512,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_8x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_8x.mdl","Shinji85's Rails","#",2,"","-1024,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",2,"","-494.55,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",3,"","-33.129,-123.63866,7.346","0,-30,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",4,"","-461.42175,123.63649,7.346","0,150,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/sw_buffer_stop.mdl","SligWolf's Minis","Buffer Stop",1,"","9.43,-8.011,-1.001","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_22-5.mdl","SligWolf's Minis","#",2,"","-53.014,2.013,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_45.mdl","SligWolf's Minis","#",2,"","-97.956,32.044,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_90.mdl","SligWolf's Minis","#",2,"","-138.51,130,1","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_big.mdl","SligWolf's Minis","#",2,"","-277.01,268.511,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_medium.mdl","SligWolf's Minis","#",2,"","-195.966,72.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_small.mdl","SligWolf's Minis","#",2,"","-105.994,12.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_22-5.mdl","SligWolf's Minis","#",2,"","-64.492,4.307,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_45.mdl","SligWolf's Minis","#",2,"","-119.15,40.853,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_90.mdl","SligWolf's Minis","#",2,"","-168.51,160,0.996","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_big.mdl","SligWolf's Minis","#",2,"","-336.99,328.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_medium.mdl","SligWolf's Minis","#",2,"","-237.966,90.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_small.mdl","SligWolf's Minis","#",2,"","-128.994,17.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_22-5.mdl","SligWolf's Minis","#",2,"","-75.965,6.599,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_45.mdl","SligWolf's Minis","#",2,"","-140.368,49.631,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_90.mdl","SligWolf's Minis","#",2,"","-198.51,190,0.995","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_big.mdl","SligWolf's Minis","#",2,"","-397.033,388.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_medium.mdl","SligWolf's Minis","#",2,"","-280.966,107.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_small.mdl","SligWolf's Minis","#",2,"","-151.994,21.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_22-5.mdl","SligWolf's Minis","#",2,"","-87.437,8.904,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_45.mdl","SligWolf's Minis","#",2,"","-161.567,58.434,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_90.mdl","SligWolf's Minis","#",2,"","-228.51,220,0.994","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_big.mdl","SligWolf's Minis","#",2,"","-456.991,448.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_medium.mdl","SligWolf's Minis","#",2,"","-322.966,125.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_small.mdl","SligWolf's Minis","#",2,"","-174.994,26.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_22-5.mdl","SligWolf's Minis","#",2,"","-98.913,11.205,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_45.mdl","SligWolf's Minis","#",2,"","-182.769,67.232,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_90.mdl","SligWolf's Minis","#",2,"","-258.51,250,0.994","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_big.mdl","SligWolf's Minis","#",2,"","-516.985,508.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_medium.mdl","SligWolf's Minis","#",2,"","-365.991,142.507,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_small.mdl","SligWolf's Minis","#",2,"","-197.994,31.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_22-5.mdl","SligWolf's Minis","#",2,"","-110.405,13.455,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_45.mdl","SligWolf's Minis","#",2,"","-203.983,76.019,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_90.mdl","SligWolf's Minis","#",2,"","-288.51,280,0.993","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_big.mdl","SligWolf's Minis","#",2,"","-576.985,568.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_medium.mdl","SligWolf's Minis","#",2,"","-407.99,160.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_small.mdl","SligWolf's Minis","#",2,"","-220.994,35.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/rerailer.mdl","SligWolf's Minis","Rerailer Double",1,"","190,-0.005,1.02","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/rerailer.mdl","SligWolf's Minis","Rerailer Double",2,"","-190,-0.005,1.02","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_1024.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_1024.mdl","SligWolf's Minis","#",2,"","-1024,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_128.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_128.mdl","SligWolf's Minis","#",2,"","-128,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_16.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_16.mdl","SligWolf's Minis","#",2,"","-16,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_256.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_256.mdl","SligWolf's Minis","#",2,"","-256,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_32.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_32.mdl","SligWolf's Minis","#",2,"","-32,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_512.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_512.mdl","SligWolf's Minis","#",2,"","-512,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_64.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_64.mdl","SligWolf's Minis","#",2,"","-64,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_128.mdl","SligWolf's Minis","#",1,"","8,-8.508,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_128.mdl","SligWolf's Minis","#",2,"","-136,-8.506,33","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_256.mdl","SligWolf's Minis","#",1,"","8,-8.508,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_256.mdl","SligWolf's Minis","#",2,"","-264,-8.506,33","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_512.mdl","SligWolf's Minis","#",1,"","8,-8.508,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_512.mdl","SligWolf's Minis","#",2,"","-520,-8.506,33","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",1,"","16,21.512,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",2,"","-144,21.513,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",3,"","16,-8.515,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",4,"","-144,-8.514,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",1,"","16,21.512,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",2,"","-144,21.513,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",3,"","16,-8.515,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",4,"","-144,-8.514,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch.mdl","SligWolf's Minis","Switch Y",1,"","-128,-23.512,0.998","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch.mdl","SligWolf's Minis","Switch Y",2,"","0,-8.509,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch.mdl","SligWolf's Minis","Switch Y",3,"","-128,6.493,0.998","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_3.mdl","SligWolf's Rerailers","Long Double",1,"-258.249,-0.01,-0.002","219.415,0,-5.409","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_3.mdl","SligWolf's Rerailers","Long Double",2,"-3124.199,-0.01,2.997","-3601.869,-0.377,-5.416","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/sw_rerailer_3.mdl","SligWolf's Rerailers","Long Single",1,"-190.553,0,25.193","211.414,0.015,-5.395","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_2.mdl","SligWolf's Rerailers","Middle Double",1,"-265.554,0,3.031","219.412,0,-5.407","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_2.mdl","SligWolf's Rerailers","Middle Double",2,"-1882.106,0,3.031","-2367.072,0,-5.412","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/sw_rerailer_2.mdl","SligWolf's Rerailers","Middle Single",1,"-190.553,0,25.193","211.414,0.015,-5.395","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_1.mdl","SligWolf's Rerailers","Short Double",1,"-221.409,0,3.031","219.412,0,-5.411","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_1.mdl","SligWolf's Rerailers","Short Double",2,"-1103.05,0,0.009","-1543.871,0,-5.411","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/sw_rerailer_1.mdl","SligWolf's Rerailers","Short Single",1,"-190.553,0,25.193","211.414,0.015,-5.395","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrclooping.mdl","Sligwof's Railcar","Loop 180",1,"","810,-252.447,-0.005","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrclooping.mdl","Sligwof's Railcar","Loop 180",2,"","-809.999,136.997,-0.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcloopingspecial.mdl","Sligwof's Railcar","LoopSwitch 180",1,"","927.001,-194.403,-0.036","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcloopingspecial.mdl","Sligwof's Railcar","LoopSwitch 180",2,"","-809.999,137.003,350.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcloopingspecial.mdl","Sligwof's Railcar","LoopSwitch 180",3,"","-809.999,-527.972,350.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcramp.mdl","Sligwof's Railcar","Ramp 45",1,"","1000,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcramp.mdl","Sligwof's Railcar","Ramp 45",2,"","-641.92,0,269.672","@-45,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrctraffic_lights.mdl","Sligwof's Railcar","Start Lights",1,"","0,-152.532,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrctraffic_lights.mdl","Sligwof's Railcar","Start Lights",2,"","0,152.554,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrctraffic_lights.mdl","Sligwof's Railcar","Start Lights",3,"","0,0,0.042","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccross.mdl","Sligwof's Railcar","Switcher Cross",1,"","500,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccross.mdl","Sligwof's Railcar","Switcher Cross",2,"","-2673,0,0","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",1,"","890,748.009,2.994","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",2,"","890,451.998,2.994","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",3,"","890,-452.001,2.974","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",4,"","890,-748.027,2.974","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_i.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982285,-19.999878,83.837341","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.427399,-19.999756,5.118835","@52.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small_i.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982788,27.999634,83.837219","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.439621,28.012085,5.100098","@52.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982788,27.999634,83.837219","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.439621,28.012085,5.100098","@52.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982285,-19.999878,83.837341","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.427399,-19.999756,5.118835","@52.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_i.mdl","Sligwolf's Mini hover tracks","#",1,"","0.000144,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_i.mdl","Sligwolf's Mini hover tracks","#",2,"","101.823288,53.82341,5.81","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s_i.mdl","Sligwolf's Mini hover tracks","#",1,"","203.999725,12.000124,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s_i.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000274,96.000008,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s.mdl","Sligwolf's Mini hover tracks","#",1,"","203.999496,-12.000174,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000535,-95.999512,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45.mdl","Sligwolf's Mini hover tracks","#",1,"","0.000114,-95.999878,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45.mdl","Sligwolf's Mini hover tracks","#",2,"","101.823112,-53.823227,5.81","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90_i.mdl","Sligwolf's Mini hover tracks","#",1,"","144,-47.999886,5.81","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90_i.mdl","Sligwolf's Mini hover tracks","#",2,"","6.1e-005,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90.mdl","Sligwolf's Mini hover tracks","#",1,"","144,47.999947,5.81","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000122,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_i.mdl","Sligwolf's Mini hover tracks","#",1,"","237.587646,-2.412163,5.81","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_i.mdl","Sligwolf's Mini hover tracks","#",2,"","6.1e-005,95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s_i.mdl","Sligwolf's Mini hover tracks","#",1,"","475.999908,-99.999756,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s_i.mdl","Sligwolf's Mini hover tracks","#",2,"","0.0001,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s.mdl","Sligwolf's Mini hover tracks","#",1,"","475.999939,99.999634,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000108,-95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45.mdl","Sligwolf's Mini hover tracks","#",1,"","237.587524,2.412376,5.81","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000122,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90_i.mdl","Sligwolf's Mini hover tracks","#",1,"","335.999756,-239.999954,5.81","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90_i.mdl","Sligwolf's Mini hover tracks","#",2,"","6.9e-005,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90.mdl","Sligwolf's Mini hover tracks","#",1,"","335.999756,239.999954,5.81","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000122,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_i.mdl","Sligwolf's Mini hover tracks","#",1,"","373.352448,-58.647461,5.81","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_i.mdl","Sligwolf's Mini hover tracks","#",2,"","9.2e-005,96,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s_i.mdl","Sligwolf's Mini hover tracks","#",1,"","745.999939,-214,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s_i.mdl","Sligwolf's Mini hover tracks","#",2,"","9.2e-005,96,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s.mdl","Sligwolf's Mini hover tracks","#",1,"","745.999939,214.000244,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000107,-95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45.mdl","Sligwolf's Mini hover tracks","#",1,"","373.352264,58.647644,5.81","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000107,-95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90_i.mdl","Sligwolf's Mini hover tracks","#",1,"","9.2e-005,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90_i.mdl","Sligwolf's Mini hover tracks","#",2,"","527.999756,-431.999878,5.81","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90.mdl","Sligwolf's Mini hover tracks","#",1,"","0.000107,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90.mdl","Sligwolf's Mini hover tracks","#",2,"","528,431.999939,5.81","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter_i.mdl","Sligwolf's Mini hover tracks","#",1,"","-25.99988,-19.999998,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter_i.mdl","Sligwolf's Mini hover tracks","#",2,"","198.190018,-20,229.959763","@-90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter.mdl","Sligwolf's Mini hover tracks","#",1,"","-25.99988,-19.999998,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter.mdl","Sligwolf's Mini hover tracks","#",2,"","198.190018,-20,229.959763","@-90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1i.mdl","Sligwolf's Mini hover tracks","#",1,"","103.999817,-136,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1i.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999939,-32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1.mdl","Sligwolf's Mini hover tracks","#",1,"","104.00061,136.000061,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999908,32.000008,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2i.mdl","Sligwolf's Mini hover tracks","#",1,"","103.999939,-227.999084,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2i.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999878,-19.999634,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2.mdl","Sligwolf's Mini hover tracks","#",1,"","103.999878,227.998291,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999939,19.998779,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_i.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,-20,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_i.mdl","Sligwolf's Mini hover tracks","#",2,"","157.184906,-20,83.365128","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small_i.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,28,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small_i.mdl","Sligwolf's Mini hover tracks","#",2,"","157.1996,28,83.378784","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,28,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small.mdl","Sligwolf's Mini hover tracks","#",2,"","157.1996,28,83.378784","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,-20,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp.mdl","Sligwolf's Mini hover tracks","#",2,"","157.184906,-20,83.365128","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_long.mdl","Sligwolf's Mini hover tracks","#",1,"","312,32,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_long.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_mid.mdl","Sligwolf's Mini hover tracks","#",1,"","208,32,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_mid.mdl","Sligwolf's Mini hover tracks","#",2,"","-208,32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_small.mdl","Sligwolf's Mini hover tracks","#",1,"","104,32,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_small.mdl","Sligwolf's Mini hover tracks","#",2,"","-104,32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_long.mdl","Sligwolf's Mini hover tracks","#",1,"","312,-16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_long.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,-16,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_mid.mdl","Sligwolf's Mini hover tracks","#",1,"","208,-16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_mid.mdl","Sligwolf's Mini hover tracks","#",2,"","-208,-16,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_small.mdl","Sligwolf's Mini hover tracks","#",1,"","104,-16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_small.mdl","Sligwolf's Mini hover tracks","#",2,"","-104,-16,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter_i.mdl","Sligwolf's Mini hover tracks","#",1,"","104,-80,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,-30,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter_i.mdl","Sligwolf's Mini hover tracks","#",3,"","-312,-130,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter.mdl","Sligwolf's Mini hover tracks","#",1,"","-104,80,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter.mdl","Sligwolf's Mini hover tracks","#",2,"","312,30,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter.mdl","Sligwolf's Mini hover tracks","#",3,"","312,130,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4_i.mdl","Sligwolf's Mini hover tracks","#",1,"","104,16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4.mdl","Sligwolf's Mini hover tracks","#",1,"","104,16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4_i.mdl","Sligwolf's Mini hover tracks","#",1,"","52,32,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,32,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4.mdl","Sligwolf's Mini hover tracks","#",1,"","52,32,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,32,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8_i.mdl","Sligwolf's Mini hover tracks","#",1,"","52,-16,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,-16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8.mdl","Sligwolf's Mini hover tracks","#",1,"","52,-16,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,-16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_0apartments_0.mdl","StephenTechno's Buildings","Apartments 0",1,"","-268,612.001,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_0apartments_0.mdl","StephenTechno's Buildings","Apartments 0",2,"","-268,-612,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_1apartments_1.mdl","StephenTechno's Buildings","Apartments 1",1,"","-268,1248,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_1apartments_1.mdl","StephenTechno's Buildings","Apartments 1",2,"","-268,-1200,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_3apartments_3.mdl","StephenTechno's Buildings","Apartments 3",1,"","-268.008,574.913,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_3apartments_3.mdl","StephenTechno's Buildings","Apartments 3",2,"","-268,-577,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_4bank.mdl","StephenTechno's Buildings","Bank",1,"","-268,504,2.031232","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_4bank.mdl","StephenTechno's Buildings","Bank",2,"","-268,-504,2.031232","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_1club_lgbt.mdl","StephenTechno's Buildings","Club Lgbt",1,"","-268,720,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_1club_lgbt.mdl","StephenTechno's Buildings","Club Lgbt",2,"","-268,-720,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_1garage.mdl","StephenTechno's Buildings","Garage",1,"","-268,698,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_1garage.mdl","StephenTechno's Buildings","Garage",2,"","-268,-598,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_a.mdl","StephenTechno's Buildings","Gas Station A",1,"","-268,604,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_a.mdl","StephenTechno's Buildings","Gas Station A",2,"","-268,-620,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_b.mdl","StephenTechno's Buildings","Gas Station B",1,"","-268,612,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_b.mdl","StephenTechno's Buildings","Gas Station B",2,"","-268,-612,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_3gunshop.mdl","StephenTechno's Buildings","Gunshop",1,"","-268,504.001,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_3gunshop.mdl","StephenTechno's Buildings","Gunshop",2,"","-268,-504,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16fence.mdl","StephenTechno's Buildings","#",1,"","-268,575,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16fence.mdl","StephenTechno's Buildings","#",2,"","-268,-577.002,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16.mdl","StephenTechno's Buildings","#",1,"","-268,575,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16.mdl","StephenTechno's Buildings","#",2,"","-268,-577.002,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32fence.mdl","StephenTechno's Buildings","#",1,"","-268,1152.002,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32fence.mdl","StephenTechno's Buildings","#",2,"","-267.999,-1151.292,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32.mdl","StephenTechno's Buildings","#",1,"","-268,1152.002,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32.mdl","StephenTechno's Buildings","#",2,"","-267.999,-1151.292,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8fence.mdl","StephenTechno's Buildings","#",1,"","-268,288,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8fence.mdl","StephenTechno's Buildings","#",2,"","-268,-287.996,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8.mdl","StephenTechno's Buildings","#",1,"","-268,288,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8.mdl","StephenTechno's Buildings","#",2,"","-268,-287.996,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_0office.mdl","StephenTechno's Buildings","Office",1,"","-267.986,616.053,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_0office.mdl","StephenTechno's Buildings","Office",2,"","-268,-608,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_2pcshop.mdl","StephenTechno's Buildings","Pcshop",1,"","-268,432,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_2pcshop.mdl","StephenTechno's Buildings","Pcshop",2,"","-268,-432,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_1road_dl_sdw_1x1.mdl","StephenTechno's Buildings","Road Dl Sdw 1x1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_1road_dl_sdw_1x1.mdl","StephenTechno's Buildings","Road Dl Sdw 1x1",2,"","-72,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_2road_dl_sdw_1x2.mdl","StephenTechno's Buildings","Road Dl Sdw 1x2",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_2road_dl_sdw_1x2.mdl","StephenTechno's Buildings","Road Dl Sdw 1x2",2,"","-144,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_10road_dl_sdw_1x32.mdl","StephenTechno's Buildings","Road Dl Sdw 1x32",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_10road_dl_sdw_1x32.mdl","StephenTechno's Buildings","Road Dl Sdw 1x32",2,"","-2304,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_3road_dl_sdw_1x3.mdl","StephenTechno's Buildings","Road Dl Sdw 1x3",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_3road_dl_sdw_1x3.mdl","StephenTechno's Buildings","Road Dl Sdw 1x3",2,"","-216,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_4road_dl_sdw_1x4.mdl","StephenTechno's Buildings","Road Dl Sdw 1x4",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_4road_dl_sdw_1x4.mdl","StephenTechno's Buildings","Road Dl Sdw 1x4",2,"","-288,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_5road_dl_sdw_1x5.mdl","StephenTechno's Buildings","Road Dl Sdw 1x5",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_5road_dl_sdw_1x5.mdl","StephenTechno's Buildings","Road Dl Sdw 1x5",2,"","-360,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_13road_intersection_2w.mdl","StephenTechno's Buildings","Road Intersection 2w",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_13road_intersection_2w.mdl","StephenTechno's Buildings","Road Intersection 2w",2,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl","StephenTechno's Buildings","Road Intersection 3w",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl","StephenTechno's Buildings","Road Intersection 3w",2,"","-340,340,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl","StephenTechno's Buildings","Road Intersection 3w",3,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",2,"","-340,340,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",3,"","-680,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",4,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_14road_intersection_deadend.mdl","StephenTechno's Buildings","Road Intersection Deadend",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_15road_intersection_turn1.mdl","StephenTechno's Buildings","Road Intersection Turn1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_15road_intersection_turn1.mdl","StephenTechno's Buildings","Road Intersection Turn1",2,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_16road_intersection_turn2_16.mdl","StephenTechno's Buildings","Road Intersection Turn",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_16road_intersection_turn2_16.mdl","StephenTechno's Buildings","Road Intersection Turn",2,"","-1564,1564,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",2,"","-1632,1152,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",3,"","-2304,1152,315.031616","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",4,"","-2976,1152,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",5,"","-2976.007,-1151.975,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",6,"","-2304,-1152,315.031616","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",7,"","-1632,-1152,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",8,"","-4608,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",1,"","0,-671.994,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",2,"","0,0,315.031616","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",3,"","0,671.995,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",4,"","-4608,0,315.031616","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",1,"","0,-671.994,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",2,"","0,0,315.031616","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",3,"","0,671.995,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",4,"","-4160,0,15.202","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_7roadsdwhwy_turn1.mdl","StephenTechno's Buildings","Roadsdwhwy Turn1",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_7roadsdwhwy_turn1.mdl","StephenTechno's Buildings","Roadsdwhwy Turn1",2,"","-1692,1692,316.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_4roadsdwhwy1x16.mdl","StephenTechno's Buildings","Roadsdwhwy1x16",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_4roadsdwhwy1x16.mdl","StephenTechno's Buildings","Roadsdwhwy1x16",2,"","-1152,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy1x1.mdl","StephenTechno's Buildings","Roadsdwhwy1x1",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy1x1.mdl","StephenTechno's Buildings","Roadsdwhwy1x1",2,"","-72,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_5roadsdwhwy1x32.mdl","StephenTechno's Buildings","Roadsdwhwy1x32",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_5roadsdwhwy1x32.mdl","StephenTechno's Buildings","Roadsdwhwy1x32",2,"","-2304,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_2roadsdwhwy1x4.mdl","StephenTechno's Buildings","Roadsdwhwy1x4",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_2roadsdwhwy1x4.mdl","StephenTechno's Buildings","Roadsdwhwy1x4",2,"","-288,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_6roadsdwhwy1x64.mdl","StephenTechno's Buildings","Roadsdwhwy1x64",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_6roadsdwhwy1x64.mdl","StephenTechno's Buildings","Roadsdwhwy1x64",2,"","-4608,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_3roadsdwhwy1x8.mdl","StephenTechno's Buildings","Roadsdwhwy1x8",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_3roadsdwhwy1x8.mdl","StephenTechno's Buildings","Roadsdwhwy1x8",2,"","-576,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_10roadsdwhwybridge1x16.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x16",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_10roadsdwhwybridge1x16.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x16",2,"","-1152,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_11roadsdwhwybridge1x32.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x32",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_11roadsdwhwybridge1x32.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x32",2,"","-2304,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_8roadsdwhwybridge1x4.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x4",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_8roadsdwhwybridge1x4.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x4",2,"","-288,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_12roadsdwhwybridge1x64.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x64",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_12roadsdwhwybridge1x64.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x64",2,"","-4608,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_9roadsdwhwybridge1x8.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x8",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_9roadsdwhwybridge1x8.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x8",2,"","-576,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_13roadsdwsidewalk_int_2way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 2way",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_13roadsdwsidewalk_int_2way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 2way",2,"","-540,540,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 3way",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 3way",2,"","-540,540,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 3way",3,"","-540,-540,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",2,"","-540,540,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",3,"","-1080,0,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",4,"","-540,-540,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_14roadsdwsidewalk_turn_1.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 1",1,"","0,-4,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_14roadsdwsidewalk_turn_1.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 1",2,"","-540,-544,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_15roadsdwsidewalk_turn_2.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 2",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_15roadsdwsidewalk_turn_2.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 2",2,"","-1692,1692,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_9roadsdwsidewalk1x16.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x16",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_9roadsdwsidewalk1x16.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x16",2,"","-1152,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_1roadsdwsidewalk1x1.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_1roadsdwsidewalk1x1.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x1",2,"","-72,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_2roadsdwsidewalk1x2.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x2",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_2roadsdwsidewalk1x2.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x2",2,"","-144,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_10roadsdwsidewalk1x32.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x32",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_10roadsdwsidewalk1x32.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x32",2,"","-2304,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_3roadsdwsidewalk1x3.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x3",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_3roadsdwsidewalk1x3.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x3",2,"","-216,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_4roadsdwsidewalk1x4.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x4",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_4roadsdwsidewalk1x4.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x4",2,"","-288,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_5roadsdwsidewalk1x5.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x5",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_5roadsdwsidewalk1x5.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x5",2,"","-360,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_6roadsdwsidewalk1x6.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x6",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_6roadsdwsidewalk1x6.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x6",2,"","-432,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_7roadsdwsidewalk1x7.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x7",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_7roadsdwsidewalk1x7.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x7",2,"","-504,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_8roadsdwsidewalk1x8.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x8",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_8roadsdwsidewalk1x8.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x8",2,"","-576,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_0roadsdwsidewalktransfer.mdl","StephenTechno's Buildings","Roadsdwsidewalktransfer",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_0roadsdwsidewalktransfer.mdl","StephenTechno's Buildings","Roadsdwsidewalktransfer",2,"","-376,0,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",1,"","0,-916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",2,"","0,916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",3,"","-340,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",4,"","-2172,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",5,"","-2512,916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",6,"","-2512,-916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",7,"","-2172,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",8,"","-340,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",1,"","0,-916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",2,"","0,916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",3,"","-340,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",4,"","-2172,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",5,"","-2512,916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",6,"","-2512,-916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",7,"","-2172,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",8,"","-340,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",1,"","0,-1492,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",2,"","0,1492,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",3,"","-340,1832,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",4,"","-2172,1832,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",5,"","-2512,1492,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",6,"","-2512,-1492,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",7,"","-2172,-1832,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",8,"","-340,-1832,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_2stripclub.mdl","StephenTechno's Buildings","Stripclub",1,"","-268,736,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_2stripclub.mdl","StephenTechno's Buildings","Stripclub",2,"","-268,-736,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024_support.mdl","Transrapid","#",1,"","512,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024_support.mdl","Transrapid","#",2,"","-512,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024.mdl","Transrapid","#",1,"","512,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024.mdl","Transrapid","#",2,"","-512,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_128.mdl","Transrapid","#",1,"","64,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_128.mdl","Transrapid","#",2,"","-64,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048_support.mdl","Transrapid","#",1,"","1024,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048_support.mdl","Transrapid","#",2,"","-1024,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048.mdl","Transrapid","#",1,"","1024,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048.mdl","Transrapid","#",2,"","-1024,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_256.mdl","Transrapid","#",1,"","128,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_256.mdl","Transrapid","#",2,"","-128,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096_support.mdl","Transrapid","#",1,"","2048,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096_support.mdl","Transrapid","#",2,"","-2048,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096.mdl","Transrapid","#",1,"","2048,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096.mdl","Transrapid","#",2,"","-2048,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_512.mdl","Transrapid","#",1,"","256,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_512.mdl","Transrapid","#",2,"","-256,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/support/support_a.mdl","Transrapid","#",1,"","0,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/funnel.mdl","XQM Ball Rails","#",1,"","2.206,0.003,4.282","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_left.mdl","XQM Ball Rails","#",1,"","13.7315,41.726,-0.968","0,22.5,-2.2585",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_left.mdl","XQM Ball Rails","#",2,"","-13.7315,-41.726,-0.968","0,-157.5,-2.2585",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_right.mdl","XQM Ball Rails","#",1,"","13.864,-41.787,-0.953","0,-22.5,2.433",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_right.mdl","XQM Ball Rails","#",2,"","-13.562,41.789,-0.952","0,157.5,2.433",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_15.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_15.mdl","XQM Ball Rails","#",2,"","-20.245,-0.018,-4.13","@15,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_30.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_30.mdl","XQM Ball Rails","#",2,"","-32.078,0.022,-9.114","@30,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_45.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_45.mdl","XQM Ball Rails","#",2,"","-42.144,-0.011,-16.998","@45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_90.mdl","XQM Ball Rails","#",1,"","38,0.019,30.42","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_90.mdl","XQM Ball Rails","#",2,"","-30.418,-0.009,-37.98","@90,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_15.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_15.mdl","XQM Ball Rails","#",2,"","-15.521,0.014,-1.009","@-15,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_30.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_30.mdl","XQM Ball Rails","#",2,"","-22.871,-0.019,2.152","@-30,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_45.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_45.mdl","XQM Ball Rails","#",2,"","-29.149,0.006,7.109","@-45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_90.mdl","XQM Ball Rails","#",1,"","6.004,0.005,15.322","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_90.mdl","XQM Ball Rails","#",2,"","-44.066,-0.011,65.001","@-90,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_16.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_16.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_1.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_1.mdl","XQM Ball Rails","#",2,"","-6,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_2.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_2.mdl","XQM Ball Rails","#",2,"","-18,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_4.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_4.mdl","XQM Ball Rails","#",2,"","-42,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_8.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_8.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_16.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_16.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_1.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_1.mdl","XQM Ball Rails","#",2,"","-6,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_2.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_2.mdl","XQM Ball Rails","#",2,"","-18,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_4.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_4.mdl","XQM Ball Rails","#",2,"","-42,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_8.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_8.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_15.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_15.mdl","XQM Ball Rails","#",2,"","-17.591,3.105,-2.25","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_180.mdl","XQM Ball Rails","#",1,"","52.789,44.753,-2.273","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_180.mdl","XQM Ball Rails","#",2,"","-52.808,44.743,-2.238","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_30.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_30.mdl","XQM Ball Rails","#",2,"","-28.676,7.705,-2.252","0,150,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_45.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_45.mdl","XQM Ball Rails","#",2,"","-38.2,15.001,-2.261","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_90.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_90.mdl","XQM Ball Rails","#",2,"","-58.848,56.855,-2.255","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_left.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_left.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_right.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_right.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_left.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_left.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_right.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_right.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_1.mdl","XQM Coaster","#",1,"","150.199,0.032,4.885","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_1.mdl","XQM Coaster","#",2,"","-150.168,-0.014,4.881","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_2.mdl","XQM Coaster","#",1,"","300.199,-0.011,4.895","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_2.mdl","XQM Coaster","#",2,"","-300.198,0.032,4.914","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_3.mdl","XQM Coaster","#",1,"","449.378,-0.025,4.893","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_3.mdl","XQM Coaster","#",2,"","-449.801,0.018,4.896","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_4.mdl","XQM Coaster","#",1,"","599.802,-0.013,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_4.mdl","XQM Coaster","#",2,"","-600.198,-0.015,4.902","0,-180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_1.mdl","XQM Coaster","#",1,"","149.7,-0.005,4.88","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_1.mdl","XQM Coaster","#",2,"","-149.7,0.024,4.865","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_2.mdl","XQM Coaster","#",1,"","299.79,-0.021,4.885","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_2.mdl","XQM Coaster","#",2,"","-299.79,0.007,4.862","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_3.mdl","XQM Coaster","#",1,"","449.8,-0.018,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_3.mdl","XQM Coaster","#",2,"","-449.802,-0.003,4.853","0,-180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_4.mdl","XQM Coaster","#",1,"","600.194,-0.017,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_4.mdl","XQM Coaster","#",2,"","-600.199,0.025,4.872","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_1.mdl","XQM Coaster","#",1,"","73.8,14.45,4.887","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_1.mdl","XQM Coaster","#",2,"","73.46,-372.816,4.902","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_2.mdl","XQM Coaster","#",1,"","146.8,28.715,4.888","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_2.mdl","XQM Coaster","#",2,"","147.376,-737.938,4.911","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_3.mdl","XQM Coaster","#",1,"","220.191,43.001,4.907","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_3.mdl","XQM Coaster","#",2,"","220.813,-1105.46,4.883","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_4.mdl","XQM Coaster","#",1,"","293.308,-1472.996,4.916","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_4.mdl","XQM Coaster","#",2,"","292.8,57.26,4.89","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_1.mdl","XQM Coaster","#",1,"","74.199,14.457,4.888","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_1.mdl","XQM Coaster","#",2,"","-63.081,-42.297,4.912","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_2.mdl","XQM Coaster","#",1,"","147.199,28.717,4.886","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_2.mdl","XQM Coaster","#",2,"","-124.087,-83.935,4.901","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_3.mdl","XQM Coaster","#",1,"","219.8,42.98,4.887","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_3.mdl","XQM Coaster","#",2,"","-185.808,-125.258,4.908","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_4.mdl","XQM Coaster","#",1,"","292.799,57.249,4.89","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_4.mdl","XQM Coaster","#",2,"","-247.727,-166.794,4.908","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_1.mdl","XQM Coaster","#",1,"","73.8,14.448,4.895","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_1.mdl","XQM Coaster","#",2,"","-119.757,-178.862,4.909","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_2.mdl","XQM Coaster","#",1,"","147.2,28.719,4.887","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_2.mdl","XQM Coaster","#",2,"","-235.985,-355.128,4.904","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_3.mdl","XQM Coaster","#",1,"","220.199,42.985,4.89","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_3.mdl","XQM Coaster","#",2,"","-353.929,-531.719,4.91","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_4.mdl","XQM Coaster","#",1,"","292.79,57.259,4.881","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_4.mdl","XQM Coaster","#",2,"","-471.864,-707.923,4.91","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_1.mdl","XQM Coaster","#",1,"","75.79,-0.013,-2.414","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_1.mdl","XQM Coaster","#",2,"","-70.806,0,26.58","@-22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_2.mdl","XQM Coaster","#",1,"","149.8,-0.013,-9.62","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_2.mdl","XQM Coaster","#",2,"","-141.814,0.004,48.442","@-22.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_3.mdl","XQM Coaster","#",1,"","225.199,-0.016,-16.814","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_3.mdl","XQM Coaster","#",2,"","-214.187,0.006,70.463","@-22.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_4.mdl","XQM Coaster","#",1,"","298.8,-0.013,-24.02","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_4.mdl","XQM Coaster","#",2,"","-285.799,0.019,92.158","@-22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_1.mdl","XQM Coaster","#",1,"","-73.8,-0.013,11.999","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_1.mdl","XQM Coaster","#",2,"","72.814,-0.013,-16.992","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_2.mdl","XQM Coaster","#",1,"","-148.626,-0.013,19.51","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_2.mdl","XQM Coaster","#",2,"","134.806,-0.011,-36.762","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_3.mdl","XQM Coaster","#",1,"","-224.899,0.01,25.763","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_3.mdl","XQM Coaster","#",2,"","202.547,-0.014,-57.473","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_4.mdl","XQM Coaster","#",1,"","-300.319,0.017,32.11","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_4.mdl","XQM Coaster","#",2,"","268.6,0.052,-77.783","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_1.mdl","XQM Coaster","#",1,"","74.8,-0.013,-9.758","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_1.mdl","XQM Coaster","#",2,"","-59.846,0.021,45.855","@-45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_2.mdl","XQM Coaster","#",1,"","-148.199,0.021,-24.085","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_2.mdl","XQM Coaster","#",2,"","121.828,-0.004,88.131","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_3.mdl","XQM Coaster","#",1,"","-221.204,0.005,-38.364","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_3.mdl","XQM Coaster","#",2,"","183.612,-0.018,129.084","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_4.mdl","XQM Coaster","#",1,"","-293.8,-0.013,-52.661","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_4.mdl","XQM Coaster","#",2,"","245.168,-0.007,170.857","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_1.mdl","XQM Coaster","#",1,"","-71.199,-0.013,18.809","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_1.mdl","XQM Coaster","#",2,"","63.815,-0.021,-37.126","@45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_2.mdl","XQM Coaster","#",1,"","-144.8,-0.013,33.103","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_2.mdl","XQM Coaster","#",2,"","125.217,-0.014,-78.778","@45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_3.mdl","XQM Coaster","#",1,"","217.199,-0.013,47.332","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_3.mdl","XQM Coaster","#",2,"","-187.587,0.003,-120.127","@45,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_4.mdl","XQM Coaster","#",1,"","290.79,-0.013,61.604","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_4.mdl","XQM Coaster","#",2,"","-249.142,0.017,-161.855","@45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_1.mdl","XQM Coaster","#",1,"","75,-0.016,-9.757","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_1.mdl","XQM Coaster","#",2,"","-115.988,0.017,181.075","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_2.mdl","XQM Coaster","#",1,"","-148.198,-0.013,-24.085","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_2.mdl","XQM Coaster","#",2,"","233.158,0.013,358.192","@-90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_3.mdl","XQM Coaster","#",1,"","-221.1,-0.013,-38.366","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_3.mdl","XQM Coaster","#",2,"","351.2,-0.013,533.582","@-90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_4.mdl","XQM Coaster","#",1,"","-293.701,-0.013,-52.661","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_4.mdl","XQM Coaster","#",2,"","468.482,-0.013,710.225","@-90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_1.mdl","XQM Coaster","#",1,"","-70.793,-0.038,18.807","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_1.mdl","XQM Coaster","#",2,"","119.415,-0.013,-171.482","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_2.mdl","XQM Coaster","#",1,"","-144.804,-0.013,33.103","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_2.mdl","XQM Coaster","#",2,"","237.418,-0.013,-349.306","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_3.mdl","XQM Coaster","#",1,"","217.199,-0.013,47.332","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_3.mdl","XQM Coaster","#",2,"","-355.101,0.01,-524.496","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_4.mdl","XQM Coaster","#",1,"","290.8,-0.013,61.604","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_4.mdl","XQM Coaster","#",2,"","-473.228,-0.013,-701.956","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_1.mdl","XQM Coaster","#",1,"","149.695,-0.02,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_1.mdl","XQM Coaster","#",2,"","-2249.721,0.014,4.888","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_2.mdl","XQM Coaster","#",1,"","1350.218,0.029,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_2.mdl","XQM Coaster","#",2,"","-3450.199,-0.009,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_3.mdl","XQM Coaster","#",1,"","2550,-0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_3.mdl","XQM Coaster","#",2,"","-4650.203,0.023,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_4.mdl","XQM Coaster","#",1,"","3749.804,-0.001,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_4.mdl","XQM Coaster","#",2,"","-5849.8,0.036,4.888","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_1.mdl","XQM Coaster","#",1,"","150,-0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_1.mdl","XQM Coaster","#",2,"","-2250,-0.013,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_3.mdl","XQM Coaster","#",1,"","2550.2,-0.012,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_3.mdl","XQM Coaster","#",2,"","-4650.14,-0.013,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_4.mdl","XQM Coaster","#",1,"","3749.79,-0.019,4.879","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_4.mdl","XQM Coaster","#",2,"","-5849.795,0.008,4.884","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_3.mdl","XQM Coaster","#",1,"","14.2,67.584,-279.931","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_3.mdl","XQM Coaster","#",2,"","-0.172,-67.619,-279.937","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_4.mdl","XQM Coaster","#",1,"","2.16,89.53,-307.495","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_4.mdl","XQM Coaster","#",2,"","-18.191,-72.398,-307.642","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_1.mdl","XQM Coaster","#",1,"","150.079,-0.009,4.878","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_1.mdl","XQM Coaster","#",2,"","-1050.198,-0.036,4.877","0,180,-180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_2.mdl","XQM Coaster","#",1,"","299.8,-0.013,4.884","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_2.mdl","XQM Coaster","#",2,"","-2099.8,-0.013,4.883","0,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_3.mdl","XQM Coaster","#",1,"","449.801,-0.014,4.882","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_3.mdl","XQM Coaster","#",2,"","-3149.802,-0.028,4.871","0,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_4.mdl","XQM Coaster","#",1,"","599.801,-0.014,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_4.mdl","XQM Coaster","#",2,"","-4199.8,-0.013,4.881","0,-180,-180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_1.mdl","XQM Coaster","#",1,"","150.199,0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_1.mdl","XQM Coaster","#",2,"","-1050.199,-0.01,4.886","0,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_2.mdl","XQM Coaster","#",1,"","1126.907,-0.013,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_2.mdl","XQM Coaster","#",2,"","-1272.492,-0.164,4.883","0,-180,-180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_3.mdl","XQM Coaster","#",1,"","1349.823,-0.012,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_3.mdl","XQM Coaster","#",2,"","-2249.7,-0.013,4.884","0,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_4.mdl","XQM Coaster","#",1,"","1950.199,-0.017,4.889","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_4.mdl","XQM Coaster","#",2,"","-2850.199,-0.047,4.88","0,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_2.mdl","XQM Coaster","#",1,"","189.277,59.435,41.118","0,90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_2.mdl","XQM Coaster","#",2,"","-192.302,46.789,-17.492","@22.5,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_3.mdl","XQM Coaster","#",1,"","-285.755,-96.647,32.538","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_3.mdl","XQM Coaster","#",2,"","281.393,-79.204,-55.216","@22.5,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_4.mdl","XQM Coaster","#",1,"","322.424,-72.015,15.907","0,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_4.mdl","XQM Coaster","#",2,"","-419.735,-44.894,132.706","@-22.5,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_2.mdl","XQM Coaster","#",1,"","-207.841,30.414,100.219","@-22.5,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_2.mdl","XQM Coaster","#",2,"","-207.993,7.31,-17.474","@22.5,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_3.mdl","XQM Coaster","#",1,"","281.359,-6.612,120.391","@-22.5,90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_3.mdl","XQM Coaster","#",2,"","281.371,28.004,-55.354","@22.5,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_4.mdl","XQM Coaster","#",1,"","322.609,52.146,251.028","0,90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_4.mdl","XQM Coaster","#",2,"","322.431,5.79,15.895","0,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_station.mdl","XQM Coaster","#",1,"","150.194,-0.045,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_station.mdl","XQM Coaster","#",2,"","-150.184,-0.045,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_2.mdl","XQM Coaster","#",1,"","149.8,36.553,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_2.mdl","XQM Coaster","#",2,"","-149.8,-36.54,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_3.mdl","XQM Coaster","#",1,"","225.159,36.552,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_3.mdl","XQM Coaster","#",2,"","-225.2,-36.559,4.886","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_4.mdl","XQM Coaster","#",1,"","299.8,36.623,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_4.mdl","XQM Coaster","#",2,"","-299.8,-36.6,4.886","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_2.mdl","XQM Coaster","#",1,"","150.189,-36.538,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_2.mdl","XQM Coaster","#",2,"","-150.199,36.554,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_3.mdl","XQM Coaster","#",1,"","225.199,-36.549,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_3.mdl","XQM Coaster","#",2,"","-225.099,36.55,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_4.mdl","XQM Coaster","#",1,"","300.2,-36.649,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_4.mdl","XQM Coaster","#",2,"","-300.195,36.561,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_1.mdl","XQM Coaster","#",1,"","74.802,-0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_1.mdl","XQM Coaster","#",2,"","-74.803,-0.013,4.886","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_2.mdl","XQM Coaster","#",1,"","149.805,-0.013,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_2.mdl","XQM Coaster","#",2,"","-149.805,-0.013,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_3.mdl","XQM Coaster","#",1,"","225.206,-0.013,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_3.mdl","XQM Coaster","#",2,"","-225.196,-0.013,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_4.mdl","XQM Coaster","#",1,"","300.164,-0.013,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_4.mdl","XQM Coaster","#",2,"","-300.189,-0.013,4.887","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_1.mdl","XQM Coaster","#",1,"","72.8,367.527,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_1.mdl","XQM Coaster","#",2,"","72.8,-14.286,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_2.mdl","XQM Coaster","#",1,"","146.198,-28.561,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_2.mdl","XQM Coaster","#",2,"","146.041,735.053,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_3.mdl","XQM Coaster","#",1,"","218.767,-42.833,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_3.mdl","XQM Coaster","#",2,"","218.767,1100.169,4.91","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_4.mdl","XQM Coaster","#",1,"","292.283,-57.102,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_4.mdl","XQM Coaster","#",2,"","292.283,1468.9,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_2.mdl","XQM Coaster","#",1,"","93.769,96.842,4.9","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_2.mdl","XQM Coaster","#",2,"","-93.912,96.841,4.9","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_3.mdl","XQM Coaster","#",1,"","138.58,144.2,4.906","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_3.mdl","XQM Coaster","#",2,"","-142.846,144.192,4.888","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_4.mdl","XQM Coaster","#",1,"","184.588,191.8,4.905","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_4.mdl","XQM Coaster","#",2,"","-190.323,191.8,4.905","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_1.mdl","XQM Coaster","#",1,"","73.232,-14.287,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_1.mdl","XQM Coaster","#",2,"","-62.119,41.771,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_2.mdl","XQM Coaster","#",1,"","145.801,-28.557,4.893","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_2.mdl","XQM Coaster","#",2,"","-123.848,83.091,4.921","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_3.mdl","XQM Coaster","#",1,"","218.8,-42.829,4.899","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_3.mdl","XQM Coaster","#",2,"","-184.844,124.707,4.88","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_4.mdl","XQM Coaster","#",1,"","292.197,-57.102,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_4.mdl","XQM Coaster","#",2,"","-246.823,166.305,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_1.mdl","XQM Coaster","#",1,"","73.199,-14.286,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_1.mdl","XQM Coaster","#",2,"","-117.904,176.785,4.888","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_2.mdl","XQM Coaster","#",1,"","145.748,-28.566,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_2.mdl","XQM Coaster","#",2,"","-235.851,352.965,4.883","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_3.mdl","XQM Coaster","#",1,"","219.199,-42.829,4.9","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_3.mdl","XQM Coaster","#",2,"","-352.072,529.25,4.888","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_4.mdl","XQM Coaster","#",1,"","292.695,-57.102,4.897","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_4.mdl","XQM Coaster","#",2,"","-470.379,706.175,4.887","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_1.mdl","XQM Coaster","#",1,"","68.201,-27.47,4.907","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_1.mdl","XQM Coaster","#",2,"","-27.469,68.408,4.907","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_2.mdl","XQM Coaster","#",1,"","134.784,-54.932,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_2.mdl","XQM Coaster","#",2,"","-54.9,134.79,4.908","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_3.mdl","XQM Coaster","#",1,"","203.169,-82.386,4.885","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_3.mdl","XQM Coaster","#",2,"","-82.342,203.198,4.884","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_4.mdl","XQM Coaster","#",1,"","270.8,-109.856,4.889","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_4.mdl","XQM Coaster","#",2,"","-109.812,270.799,4.89","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_1.mdl","XQM Coaster","#",1,"","61.949,-171.786,-85.113","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_1.mdl","XQM Coaster","#",2,"","61.849,210.026,94.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_2.mdl","XQM Coaster","#",1,"","145.79,-377.307,-51.364","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_2.mdl","XQM Coaster","#",2,"","145.64,386.277,128.636","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_3.mdl","XQM Coaster","#",1,"","219.186,-560.329,-73.863","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_3.mdl","XQM Coaster","#",2,"","219.938,582.673,106.137","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_4.mdl","XQM Coaster","#",1,"","292.682,-57.062,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_4.mdl","XQM Coaster","#",2,"","292.882,1468.926,184.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_1.mdl","XQM Coaster","#",1,"","73.214,-14.287,4.889","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_1.mdl","XQM Coaster","#",2,"","-62.103,41.809,49.893","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_2.mdl","XQM Coaster","#",1,"","145.789,-28.557,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_2.mdl","XQM Coaster","#",2,"","-123.816,83.09,49.885","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_3.mdl","XQM Coaster","#",1,"","218.817,-42.829,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_3.mdl","XQM Coaster","#",2,"","-184.823,124.712,49.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_4.mdl","XQM Coaster","#",1,"","292.295,-57.102,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_4.mdl","XQM Coaster","#",2,"","-246.825,166.303,49.887","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_1.mdl","XQM Coaster","#",1,"","151.949,-115.536,-28.863","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_1.mdl","XQM Coaster","#",2,"","-39.186,75.539,61.137","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_2.mdl","XQM Coaster","#",1,"","247.052,-129.807,-17.611","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_2.mdl","XQM Coaster","#",2,"","-134.631,251.731,72.387","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_3.mdl","XQM Coaster","#",1,"","342.55,-166.589,-6.356","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_3.mdl","XQM Coaster","#",2,"","-228.353,405.104,83.627","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_4.mdl","XQM Coaster","#",1,"","461.445,-180.852,-6.363","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_4.mdl","XQM Coaster","#",2,"","-301.622,582.445,83.635","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_1.mdl","XQM Coaster","#",1,"","73.2,-149.286,128.637","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_1.mdl","XQM Coaster","#",2,"","73.099,232.527,-51.363","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_2.mdl","XQM Coaster","#",1,"","145.8,-287.306,117.387","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_2.mdl","XQM Coaster","#",2,"","145.6,476.307,-62.612","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_3.mdl","XQM Coaster","#",1,"","219.196,-391.579,117.387","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_3.mdl","XQM Coaster","#",2,"","219.948,751.399,-62.61","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_4.mdl","XQM Coaster","#",1,"","292.681,-630.852,117.391","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_4.mdl","XQM Coaster","#",2,"","292.833,895.14,-62.613","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_1.mdl","XQM Coaster","#",1,"","73.199,-14.286,49.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_1.mdl","XQM Coaster","#",2,"","-62.097,41.783,4.886","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_2.mdl","XQM Coaster","#",1,"","145.79,-28.558,49.879","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_2.mdl","XQM Coaster","#",2,"","-123.833,83.088,4.892","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_3.mdl","XQM Coaster","#",1,"","219.197,-42.829,49.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_3.mdl","XQM Coaster","#",2,"","-185.095,124.99,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_4.mdl","XQM Coaster","#",1,"","292.695,-57.102,49.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_4.mdl","XQM Coaster","#",2,"","-247.123,166.602,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_1.mdl","XQM Coaster","#",1,"","128.858,-14.281,72.387","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_1.mdl","XQM Coaster","#",2,"","-61.682,176.749,-17.61","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_2.mdl","XQM Coaster","#",1,"","179.55,-28.557,61.136","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_2.mdl","XQM Coaster","#",2,"","-202.131,352.976,-28.864","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_3.mdl","XQM Coaster","#",1,"","241.3,-42.829,61.136","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_3.mdl","XQM Coaster","#",2,"","-329.578,528.859,-28.864","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_4.mdl","XQM Coaster","#",1,"","292.296,-57.102,94.89","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_4.mdl","XQM Coaster","#",2,"","-470.372,705.791,4.886","0,90,0",""}) diff --git a/data/trackassembly/exp/cl_trackassembly_additions.txt b/data/trackassembly/exp/cl_trackassembly_additions.txt new file mode 100644 index 00000000..4658e82e --- /dev/null +++ b/data/trackassembly/exp/cl_trackassembly_additions.txt @@ -0,0 +1,8 @@ +#1 ExportDSV:(cl_@ADDITIONS) 24-10-30 22:25:29 [ LUA ] +#2 ADDITIONS:( MODELBASE MODELADD ENTCLASS LINEID POSOFF ANGOFF MOVETYPE PHYSINIT DRSHADOW PHMOTION PHYSLEEP SETSOLID) +TRACKASSEMBLY_ADDITIONS models/shinji85/train/rail_l_switch.mdl "models/shinji85/train/sw_lever.mdl" "buttonswitch" 1 "-100,-125,0" "0,180,0" -1 -1 -1 0 -1 -1 +TRACKASSEMBLY_ADDITIONS models/shinji85/train/rail_l_switch.mdl "models/shinji85/train/rail_l_switcher1.mdl" "prop_dynamic" 2 "NULL" "NULL" 6 6 -1 -1 1 6 +TRACKASSEMBLY_ADDITIONS models/shinji85/train/rail_l_switch.mdl "models/shinji85/train/rail_l_switcher2.mdl" "prop_dynamic" 3 "NULL" "NULL" 6 6 -1 0 -1 0 +TRACKASSEMBLY_ADDITIONS models/shinji85/train/rail_r_switch.mdl "models/shinji85/train/sw_lever.mdl" "buttonswitch" 1 "-100,125,0" "NULL" -1 -1 -1 0 -1 -1 +TRACKASSEMBLY_ADDITIONS models/shinji85/train/rail_r_switch.mdl "models/shinji85/train/rail_r_switcher1.mdl" "prop_dynamic" 2 "NULL" "NULL" 6 6 -1 -1 1 6 +TRACKASSEMBLY_ADDITIONS models/shinji85/train/rail_r_switch.mdl "models/shinji85/train/rail_r_switcher2.mdl" "prop_dynamic" 3 "NULL" "NULL" 6 6 -1 0 -1 0 diff --git a/data/trackassembly/exp/cl_trackassembly_category.txt b/data/trackassembly/exp/cl_trackassembly_category.txt new file mode 100644 index 00000000..7283c783 --- /dev/null +++ b/data/trackassembly/exp/cl_trackassembly_category.txt @@ -0,0 +1,203 @@ +# ExportCategory:(3@cl_) 24-10-30 22:25:29 [ LUA ] +[===[SligWolf's Modelpack===function(m) local s, c; s = _G.SligWolf_Addons; c = s and s.CallFunctionOnAddon("modelpack", "TrackAssamblerCategory", m); return c; end]===] +[===[Portal 2 Walkway UG===function(m) + local g = m:gsub("models/props_underground/", "") return g:match("%w+") end]===] +[===[Battleship's abandoned rails===function(m) + local g = m:gsub("models/craptrax/","") + local r = g:match(".+/"):sub(1, -2) + local n = g:match("[\\/]([^\\/]+)$"):gsub("%.mdl","") + if(r:find("straight")) then r = "straight" + elseif(r:find("curve")) then r = "curve" + elseif(r:find("switch")) then r = "switch" end + local t = n:match(r.."_") + if(t) then n = n:gsub(t,"") end; return r, n; end]===] +[===[Ron's 2ft track pack===function(m) +local function conv(x) return " "..x:sub(2,2):upper() end +local r = m:gsub("models/ron/2ft/","") +local s, o, n = r:find("/") +local g = s and r:sub(1,s-1) or "other" +if(g == "luajunctions") then +o = {g}; local e +n = m:gsub("models/ron/2ft/luajunctions/","") +n = n:gsub("/junction.mdl",""):gsub("junctions/","junction_") +e = n:find("/"); n = e and n:sub(1,e-1) or n +elseif(g == "straight") then +n, o = r:sub(s+1,-1):gsub("straight_",""):gsub("%.mdl",""), {g} +elseif(g == "embankment") then +local e = r:sub(s+1,-1):gsub("embankment_","") +local s = e:find("%A") +n, o = e:gsub("%.mdl",""), {g,((s > 1) and (e:sub(1,s-1)) or nil)} +elseif(g == "ramps") then +n, o = r:sub(s+1,-1):gsub("ramp_",""):gsub("%.mdl",""), {g} +elseif(g == "tram") then +n, o = r:sub(s+1,-1):gsub("tram_",""):gsub("%.mdl",""), {g} +elseif(g == "turntable") then +n, o = r:sub(s+1,-1):gsub("turntable_",""):gsub("%.mdl",""), {g} +elseif(g == "viaduct") then +n, o = r:sub(s+1,-1):gsub("viaduct_",""):gsub("%.mdl",""), {g} +elseif(g == "road_crossings") then +n, o = r:sub(s+1,-1):gsub("road_",""):gsub("%.mdl",""), {g} +elseif(g == "curves") then +n, o = r:sub(s+1,-1):gsub("curve_",""):gsub("%.mdl",""), {g} +else o = {g} end; n = n and ("_"..n):gsub("_%w",conv):sub(2,-1) +for i = 1, #o do o[i] = ("_"..o[i]):gsub("_%w", conv):sub(2,-1) end; return o, n end]===] +[===[SligWolf's Mini Trains===function(m) local s, c; s = _G.SligWolf_Addons; c = s and s.CallFunctionOnAddon("minitrains", "TrackAssamblerCategory", m); return c; end]===] +[===[Magnum's Rails===function(m) + local g = m:gsub("models/magtrains1ga/",""):gsub("/","_") + local r = g:match(".-_"):sub(1, -2); g = g:gsub(r.."_", "") + local t, n = g:match(".-_"), g:gsub("%.mdl","") + if(t) then t = t:sub(1, -2); g = g:gsub(r.."_", "") + if(r:find(t)) then n = n:gsub(t.."_", "") end + end; if(r:find("switchbase")) then r = "switch" end; return r, n end]===] +[===[Ron's G Scale Track pack===function(m) +local function conv(x) return " "..x:sub(2,2):upper() end +local r = m:gsub("models/ron/gscale/",""):gsub("_","/") +local s = r:find("/"); r = (s and r:sub(1,s-1):gsub("^%l", string.upper) or nil); +return r and {r} or nil end]===] +[===[AlexCookie's 2ft track pack===function(m) + local g = m:gsub("models/alexcookie/2ft/","") + local r = g:match(".+/"):sub(1, -2) + local n = g:match("[\\/]([^\\/]+)$"):gsub("%.mdl","") + local t = n:match(r.."_"); if(t) then n = n:gsub(t,"") end; return r, n; end]===] +[===[Ron's Minitrain Props===function(m) + local g = m:gsub("models/ron/minitrains/","") + local r = g:match(".-/"):sub(1, -2) + if(r == "elevations") then + local s = g:gsub(r.."/", ""):gsub("/.+$", "") + local n = g:match("[\\/]([^/\\]+)$"):gsub("%.mdl","") + local p = n:match(".-_") + if(p) then p = p:sub(1, -2) + if(r:find(p)) then n = n:gsub(p, ""):sub(2,-1) end + end; return {r, s}, n; end; return r; end]===] +[===[SligWolf's Suspension Train===function(m) local s, c; s = _G.SligWolf_Addons; c = s and s.CallFunctionOnAddon("wpsuspensiontrain", "TrackAssamblerCategory", m); return c; end]===] +[===[StevenTechno's Buildings 2.0===function(m) + local g = m:gsub("models/","") + local r = g:match(".+/"):sub(1, -2) + local n = g:match("[\\/]([^\\/]+)$"):gsub("%.mdl","") + local t = r:find("/") + if(t) then r, g = r:sub(1, t-1), r:sub(t+1, -1) + if(r:find("road")) then r = "roads" + elseif(r:find("building")) then r = "buildings" end + return {r, g}, n end; return r, n; end]===] +[===[Shinji85's Rails===function(m) local c +local r = m:gsub("models/shinji85/train/rail_", "") +if(r:find("cross")) then c = "crossing" +elseif(r:find("switch")) then c = "switch" +elseif(r:find("curve")) then c = "curve" +elseif(r:find("bumper")) then c = "bumper" +elseif(r:find("junction")) then c = "junction" +elseif(r:find("%dx")) then c = "straight" end; return c end]===] +[===[StevenTechno's Buildings 1.0===function(m) + local r = m:gsub("models/buildingspack/",""):gsub("%W.+$","") + if (r:find("emptylots")) then r = "empty_lots" + elseif(r:find("roadsdw")) then r = r:gsub("roadsdw","double_") + elseif(r:find("roadsw" )) then r = r:gsub("roadsw" ,"single_") end; return r; end]===] +[===[PHX Tubes Miscellaneous===function(m) + local g = m:gsub("models/props_phx/construct/",""):gsub("/","_") + local r = g:match(".-_"):sub(1, -2); g = g:gsub(r.."_", "") + local t, n = g:match(".-_"), g:gsub("%.mdl","") + if(t) then t = t:sub(1, -2); g = g:gsub(r.."_", "") + if(r:find(t)) then n = n:gsub(t.."_", "") end + end; return r, n; end]===] +[===[XQM Ball Rails===function(m) + local g = m:gsub("models/xqm/rails/",""):gsub("/","_") + local r = g:match(".-_"):sub(1, -2); g = g:gsub(r.."_", "") + local t, n = g:match(".-_"), g:gsub("%.mdl","") + if(t) then t = t:sub(1, -2); g = g:gsub(r.."_", "") + if(r:find(t)) then n = n:gsub(t.."_", "") + end; end; return r, n; end]===] +[===[PHX Tubes Plastic===function(m) + local g = m:gsub("models/hunter/",""):gsub("/","_") + local r = g:match(".-_"):sub(1, -2); return r end]===] +[===[SProps===function(m) + local r = m:gsub("models/sprops/trans/train/",""):gsub("track_",""):sub(1,1) + if(r == "s") then return "straight" elseif(r == "t") then return "turn" + elseif(r == "h") then return "ramp" else return nil end end]===] +[===[Modular City Street===function(m) + local o = {} + function setBranch(v, p, b, q) + if(v:find(p)) then + local e = v:gsub("%W*"..p.."%W*", "_") + if(b and o.M) then return e end + if(b and not o.M) then o.M = true end + table.insert(o, (q or p)); return e + end; return v + end +local r = m:gsub("models/propper/dingles_modular_streets/",""):gsub("%.mdl$",""); +r = setBranch(r, "highway", true, nil) +r = setBranch(r, "street", true, nil) +r = setBranch(r, "endcap", false, nil) +r = setBranch(r, "turn", false, nil) +r = setBranch(r, "ramp", false, nil) +r = setBranch(r, "connector", false, nil) +r = setBranch(r, "tjunction", false, nil) +r = setBranch(r, "intersection", false, nil) +r = setBranch(r, "elevated", false, nil) +o.M = nil; return o, r:gsub("^_+", ""):gsub("_+$", ""):gsub("_+", "_") end]===] +[===[Anyone's Horrible Trackpack===function(m) local c +local r = m:gsub("anytracks/", "") +if(r:find("straight")) then c = "straight" +elseif(r:find("curve")) then c = "curve" +elseif(r:find("%dx")) then c = "straight" +end; c = (c and c:gsub("^%l", string.upper) or nil) return c end]===] +[===[RockMan's Fortification===function(m) + local r = m:gsub(".+/", ""):gsub("_.*",""); return r end]===] +[===[XQM Coaster===function(m) + local g = m:gsub("models/xqm/coastertrack/",""):gsub("%.mdl","") + local r = g:match(".-_"):sub(1,-2) + local n = g:gsub(r.."_", ""); return r, n; end]===] +[===[Portal 2 High Walkway===function(m) + local g = m:gsub("^.*walkway",""):gsub("%.mdl$", "") + if(g:find("%d")) then return "straight" + elseif(g:find("%a+_*")) then local s = g:match("%a+_*") + if(s:len() <= 2) then return "turns" else return "special" end + else return nil end end]===] +[===[Transrapid===function(m) + local g = m:gsub("models/ron/maglev/",""):gsub("/","_") + g = g:gsub("[\\/]([^\\/]+)$",""):gsub("%.mdl","") + local r = g:match(".-_"):sub(1, -2) + if(r == "track") then g = g:gsub(r.."_", "") + r = g:match(".-_"):sub(1, -2) else return nil end + local t, n = g:match(".-_"), g:gsub(r.."_", "") + if(t) then t = t:sub(1, -2); g = g:gsub(t.."_", "") + if(r:find(t)) then n = n:gsub(t.."_", "") end + end; return r, n; end]===] +[===[Joe's track pack===function(m) + local g = m:gsub("models/joe/jtp/","") + local r = g:match(".+/"):sub(1, -2) + local n = g:match("[\\/]([^\\/]+)$"):gsub("%.mdl","") + local t = r:find("/") + if(t) then return {r:sub(1, t-1), r:sub(t+1, -1)}, n end; return r, n; end]===] +[===[Mr.Train's G-Gauge===function(m) + local r = m:gsub("models/props/g_gauge/track/g_gauge_track_","") + local n = r:gsub("%.mdl",""); r = r:gsub("%W.+$","") + n = n:gsub(r.."_", ""); if(r == "s") then r = "curves" end; return r, n end]===] +[===[Modular Canals===function(m) + local n = m:gsub("models/props_d47_canals/interior_","") + local r = n:match("%a+"); n = n:gsub("%.mdl",""); return r, n; end]===] +[===[SligWolf's Tiny Hover Racer===function(m) local s, c; s = _G.SligWolf_Addons; c = s and s.CallFunctionOnAddon("tinyhoverracer", "TrackAssamblerCategory", m); return c; end]===] +[===[Trackmania United Props===function(m) + local g = m:gsub("models/nokillnando/trackmania/ground/", "") + local r = g:match(".+/"):sub(1,-2); return r; end]===] +[===[Bobster's two feet rails===function(m) local o = {} + local n = m:gsub("models/bobsters_trains/rails/2ft/","") + local r = n:match("^%a+"); n = n:gsub("%.mdl","") + for w in n:gmatch("%a+") do + if(r:find(w)) then n = n:gsub(w.."%W+", "") end + end table.insert(o, r); local f = n:match("^%a+") + if(f) then table.insert(o, f); n = n:gsub(f.."%W+", "") end; return o, n; end]===] +[===[Mr.Train's M-Gauge===function(m) + local r = m:gsub("models/props/m_gauge/track/m_gauge_","") + local n = r:gsub("%.mdl", ""); r = r:gsub("%W.+$","") + if(tonumber(r:sub(1,1))) then r = "straight" else n = n:gsub(r.."_", "") end; return r, n; end]===] +[===[G Scale Track Pack===function(m) + local g = m:gsub("models/gscale/","") + local r = g:match(".-/"):sub(1, -2) + if (r == "j") then r = "j switcher" + elseif(r == "s") then r = "s switcher" + elseif(r == "c0512") then r = "curve 512" + elseif(r == "ibeam") then r = "iron beam" + elseif(r == "ramp313") then r = "ramp 313" end; return r; end]===] +[===[CAP Walkway===function(m) + local g = m:gsub("models/boba_fett/catwalk_build/", "") + local p = g:match("%w+_"); return (p and p:sub(1,-2) or "other") end]===] diff --git a/data/trackassembly/exp/cl_trackassembly_physproperties.txt b/data/trackassembly/exp/cl_trackassembly_physproperties.txt new file mode 100644 index 00000000..81b0601e --- /dev/null +++ b/data/trackassembly/exp/cl_trackassembly_physproperties.txt @@ -0,0 +1,91 @@ +#1 ExportDSV:(cl_@PHYSPROPERTIES) 24-10-30 22:25:29 [ LUA ] +#2 PHYSPROPERTIES:( TYPE LINEID NAME) +TRACKASSEMBLY_PHYSPROPERTIES "Special" 1 "default" +TRACKASSEMBLY_PHYSPROPERTIES "Special" 2 "default_silent" +TRACKASSEMBLY_PHYSPROPERTIES "Special" 3 "floatingstandable" +TRACKASSEMBLY_PHYSPROPERTIES "Special" 4 "item" +TRACKASSEMBLY_PHYSPROPERTIES "Special" 5 "ladder" +TRACKASSEMBLY_PHYSPROPERTIES "Special" 6 "no_decal" +TRACKASSEMBLY_PHYSPROPERTIES "Special" 7 "player" +TRACKASSEMBLY_PHYSPROPERTIES "Special" 8 "player_control_clip" +TRACKASSEMBLY_PHYSPROPERTIES "Concrete" 1 "brick" +TRACKASSEMBLY_PHYSPROPERTIES "Concrete" 2 "concrete" +TRACKASSEMBLY_PHYSPROPERTIES "Concrete" 3 "concrete_block" +TRACKASSEMBLY_PHYSPROPERTIES "Concrete" 4 "gravel" +TRACKASSEMBLY_PHYSPROPERTIES "Concrete" 5 "rock" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 1 "canister" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 2 "chain" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 3 "chainlink" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 4 "combine_metal" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 5 "crowbar" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 6 "floating_metal_barrel" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 7 "grenade" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 8 "gunship" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 9 "metal" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 10 "metal_barrel" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 11 "metal_bouncy" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 12 "Metal_Box" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 13 "metal_seafloorcar" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 14 "metalgrate" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 15 "metalpanel" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 16 "metalvent" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 17 "metalvehicle" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 18 "paintcan" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 19 "popcan" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 20 "roller" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 21 "slipperymetal" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 22 "solidmetal" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 23 "strider" +TRACKASSEMBLY_PHYSPROPERTIES "Metal" 24 "weapon" +TRACKASSEMBLY_PHYSPROPERTIES "Wood" 1 "wood" +TRACKASSEMBLY_PHYSPROPERTIES "Wood" 2 "Wood_Box" +TRACKASSEMBLY_PHYSPROPERTIES "Wood" 3 "Wood_Furniture" +TRACKASSEMBLY_PHYSPROPERTIES "Wood" 4 "Wood_Plank" +TRACKASSEMBLY_PHYSPROPERTIES "Wood" 5 "Wood_Panel" +TRACKASSEMBLY_PHYSPROPERTIES "Wood" 6 "Wood_Solid" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 1 "dirt" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 2 "grass" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 3 "gravel" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 4 "mud" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 5 "quicksand" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 6 "sand" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 7 "slipperyslime" +TRACKASSEMBLY_PHYSPROPERTIES "Terrain" 8 "antlionsand" +TRACKASSEMBLY_PHYSPROPERTIES "Liquid" 1 "slime" +TRACKASSEMBLY_PHYSPROPERTIES "Liquid" 2 "water" +TRACKASSEMBLY_PHYSPROPERTIES "Liquid" 3 "wade" +TRACKASSEMBLY_PHYSPROPERTIES "Frozen" 1 "snow" +TRACKASSEMBLY_PHYSPROPERTIES "Frozen" 2 "ice" +TRACKASSEMBLY_PHYSPROPERTIES "Frozen" 3 "gmod_ice" +TRACKASSEMBLY_PHYSPROPERTIES "Miscellaneous" 1 "carpet" +TRACKASSEMBLY_PHYSPROPERTIES "Miscellaneous" 2 "ceiling_tile" +TRACKASSEMBLY_PHYSPROPERTIES "Miscellaneous" 3 "computer" +TRACKASSEMBLY_PHYSPROPERTIES "Miscellaneous" 4 "pottery" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 1 "alienflesh" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 2 "antlion" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 3 "armorflesh" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 4 "bloodyflesh" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 5 "flesh" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 6 "foliage" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 7 "watermelon" +TRACKASSEMBLY_PHYSPROPERTIES "Organic" 8 "zombieflesh" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 1 "jeeptire" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 2 "jalopytire" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 3 "rubber" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 4 "rubbertire" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 5 "slidingrubbertire" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 6 "slidingrubbertire_front" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 7 "slidingrubbertire_rear" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 8 "brakingrubbertire" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 9 "tile" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 10 "paper" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 11 "papercup" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 12 "cardboard" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 13 "plaster" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 14 "plastic_barrel" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 15 "plastic_barrel_buoyant" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 16 "Plastic_Box" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 17 "plastic" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 18 "glass" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 19 "glassbottle" +TRACKASSEMBLY_PHYSPROPERTIES "Manufactured" 20 "combine_glass" diff --git a/data/trackassembly/exp/cl_trackassembly_pieces.txt b/data/trackassembly/exp/cl_trackassembly_pieces.txt new file mode 100644 index 00000000..660dfac4 --- /dev/null +++ b/data/trackassembly/exp/cl_trackassembly_pieces.txt @@ -0,0 +1,4228 @@ +#1 ExportDSV:(cl_@PIECES) 24-10-30 22:25:29 [ LUA ] +#2 PIECES:( MODEL TYPE NAME LINEID POINT ORIGIN ANGLE CLASS) +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/curve/curve_90_512.mdl" "AlexCookie's 2ft track pack" "Curve 90 512" 1 "NULL" "0,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/curve/curve_90_512.mdl" "AlexCookie's 2ft track pack" "Curve 90 512" 2 "NULL" "-480,-480,13.04688" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/misc/end1.mdl" "AlexCookie's 2ft track pack" "End1" 1 "NULL" "0,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_1024.mdl" "AlexCookie's 2ft track pack" "Straight 1024" 1 "NULL" "1024,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_1024.mdl" "AlexCookie's 2ft track pack" "Straight 1024" 2 "NULL" "0 ,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_128.mdl" "AlexCookie's 2ft track pack" "Straight 128" 1 "NULL" "128,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_128.mdl" "AlexCookie's 2ft track pack" "Straight 128" 2 "NULL" "0 ,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_256.mdl" "AlexCookie's 2ft track pack" "Straight 256" 1 "NULL" "256,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_256.mdl" "AlexCookie's 2ft track pack" "Straight 256" 2 "NULL" "0 ,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_32.mdl" "AlexCookie's 2ft track pack" "Straight 32" 1 "NULL" "32,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_32.mdl" "AlexCookie's 2ft track pack" "Straight 32" 2 "NULL" "0 ,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_512.mdl" "AlexCookie's 2ft track pack" "Straight 512" 1 "NULL" "512,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_512.mdl" "AlexCookie's 2ft track pack" "Straight 512" 2 "NULL" "0 ,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_64.mdl" "AlexCookie's 2ft track pack" "Straight 64" 1 "NULL" "64,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/straight/straight_64.mdl" "AlexCookie's 2ft track pack" "Straight 64" 2 "NULL" "0 ,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_left_0.mdl" "AlexCookie's 2ft track pack" "Switch 90 Left 0" 1 "NULL" "0,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_left_0.mdl" "AlexCookie's 2ft track pack" "Switch 90 Left 0" 2 "NULL" "-512,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_left_0.mdl" "AlexCookie's 2ft track pack" "Switch 90 Left 0" 3 "NULL" "-480,-480,13.04688" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_left_1.mdl" "AlexCookie's 2ft track pack" "Switch 90 Left 1" 1 "NULL" "0,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_left_1.mdl" "AlexCookie's 2ft track pack" "Switch 90 Left 1" 2 "NULL" "-512,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_left_1.mdl" "AlexCookie's 2ft track pack" "Switch 90 Left 1" 3 "NULL" "-480,-480,13.04688" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_right_0.mdl" "AlexCookie's 2ft track pack" "Switch 90 Right 0" 1 "NULL" "0,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_right_0.mdl" "AlexCookie's 2ft track pack" "Switch 90 Right 0" 2 "NULL" "-512,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_right_0.mdl" "AlexCookie's 2ft track pack" "Switch 90 Right 0" 3 "NULL" "-480,480,13.04688" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_right_1.mdl" "AlexCookie's 2ft track pack" "Switch 90 Right 1" 1 "NULL" "0,0,13.04688" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_right_1.mdl" "AlexCookie's 2ft track pack" "Switch 90 Right 1" 2 "NULL" "-512,0,13.04688" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/alexcookie/2ft/switch/switch_90_right_1.mdl" "AlexCookie's 2ft track pack" "Switch 90 Right 1" 3 "NULL" "-480,480,13.04688" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_1024.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 1024" 1 "NULL" "0,512,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_1024.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 1024" 2 "NULL" "0,-512,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_128.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 128" 1 "NULL" "0,64,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_128.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 128" 2 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_2048.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 2048" 1 "NULL" "0,1024,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_2048.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 2048" 2 "NULL" "0,-1024,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_256.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 256" 1 "NULL" "0,128,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_256.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 256" 2 "NULL" "0,-128,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_512.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 512" 1 "NULL" "0,256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_512.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 512" 2 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_64.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 64" 1 "NULL" "0,32,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/hs_64.mdl" "Anyone's Horrible Trackpack" "Horrible Straight 64" 2 "NULL" "0,-32,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_1024.mdl" "Anyone's Horrible Trackpack" "Straight 1024" 1 "NULL" "0,512,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_1024.mdl" "Anyone's Horrible Trackpack" "Straight 1024" 2 "NULL" "0,-512,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_128.mdl" "Anyone's Horrible Trackpack" "Straight 128" 1 "NULL" "0,64,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_128.mdl" "Anyone's Horrible Trackpack" "Straight 128" 2 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_2048.mdl" "Anyone's Horrible Trackpack" "Straight 2048" 1 "NULL" "0,1024,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_2048.mdl" "Anyone's Horrible Trackpack" "Straight 2048" 2 "NULL" "0,-1024,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_256.mdl" "Anyone's Horrible Trackpack" "Straight 256" 1 "NULL" "0,128,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_256.mdl" "Anyone's Horrible Trackpack" "Straight 256" 2 "NULL" "0,-128,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_32.mdl" "Anyone's Horrible Trackpack" "Straight 32" 1 "NULL" "0,16,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_32.mdl" "Anyone's Horrible Trackpack" "Straight 32" 2 "NULL" "0,-16,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_4096.mdl" "Anyone's Horrible Trackpack" "Straight 4096" 1 "NULL" "0,2048,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_4096.mdl" "Anyone's Horrible Trackpack" "Straight 4096" 2 "NULL" "0,-2048,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_512.mdl" "Anyone's Horrible Trackpack" "Straight 512" 1 "NULL" "0,256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_512.mdl" "Anyone's Horrible Trackpack" "Straight 512" 2 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_64.mdl" "Anyone's Horrible Trackpack" "Straight 64" 1 "NULL" "0,32,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/anytracks/straight/s_64.mdl" "Anyone's Horrible Trackpack" "Straight 64" 2 "NULL" "0,-32,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curve_cs_std/curve_cs_std_damaged.mdl" "Battleship's abandoned rails" "Curve Cs Std Damaged" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curve_cs_std/curve_cs_std_damaged.mdl" "Battleship's abandoned rails" "Curve Cs Std Damaged" 2 "NULL" "-966.40771,127.97242,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curve_cs_std/curve_cs_std_nodamage.mdl" "Battleship's abandoned rails" "Curve Cs Std Nodamage" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curve_cs_std/curve_cs_std_nodamage.mdl" "Battleship's abandoned rails" "Curve Cs Std Nodamage" 2 "NULL" "-966.40771,127.97242,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver1/curve_r1_damaged.mdl" "Battleship's abandoned rails" "Curve R1 Damaged" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver1/curve_r1_damaged.mdl" "Battleship's abandoned rails" "Curve R1 Damaged" 2 "NULL" "-1060.13232,139.53517,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver1/curve_r1_nodamage.mdl" "Battleship's abandoned rails" "Curve R1 Nodamage" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver1/curve_r1_nodamage.mdl" "Battleship's abandoned rails" "Curve R1 Nodamage" 2 "NULL" "-1060.13232,139.53517,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver11/curve_r11_damaged.mdl" "Battleship's abandoned rails" "Curve R11 Damaged" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver11/curve_r11_damaged.mdl" "Battleship's abandoned rails" "Curve R11 Damaged" 2 "NULL" "-1086.07532,450.1528,-16.110403" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver11/curve_r11_nodamage.mdl" "Battleship's abandoned rails" "Curve R11 Nodamage" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver11/curve_r11_nodamage.mdl" "Battleship's abandoned rails" "Curve R11 Nodamage" 2 "NULL" "-1086.07532,450.1528,-16.110403" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver2/curve_r2_damaged.mdl" "Battleship's abandoned rails" "Curve R2 Damaged" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver2/curve_r2_damaged.mdl" "Battleship's abandoned rails" "Curve R2 Damaged" 2 "NULL" "-993.86975,130.8159,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver2/curve_r2_nodamage.mdl" "Battleship's abandoned rails" "Curve R2 Nodamage" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver2/curve_r2_nodamage.mdl" "Battleship's abandoned rails" "Curve R2 Nodamage" 2 "NULL" "-993.86975,130.8159,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver3/curve_r3_damaged.mdl" "Battleship's abandoned rails" "Curve R3 Damaged" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver3/curve_r3_damaged.mdl" "Battleship's abandoned rails" "Curve R3 Damaged" 2 "NULL" "-927.61951,122.07793,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver3/curve_r3_nodamage.mdl" "Battleship's abandoned rails" "Curve R3 Nodamage" 1 "NULL" "0,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/curver3/curve_r3_nodamage.mdl" "Battleship's abandoned rails" "Curve R3 Nodamage" 2 "NULL" "-927.61951,122.07793,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight1x/straight_1x_damaged.mdl" "Battleship's abandoned rails" "Straight 1x Damaged" 1 "NULL" " 64,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight1x/straight_1x_damaged.mdl" "Battleship's abandoned rails" "Straight 1x Damaged" 2 "NULL" "-64,0,-16.110403" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight1x/straight_1x_nodamage.mdl" "Battleship's abandoned rails" "Straight 1x Nodamage" 1 "NULL" " 64,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight1x/straight_1x_nodamage.mdl" "Battleship's abandoned rails" "Straight 1x Nodamage" 2 "NULL" "-64,0,-16.110403" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight2x/straight_2x_damaged.mdl" "Battleship's abandoned rails" "Straight 2x Damaged" 1 "NULL" " 128,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight2x/straight_2x_damaged.mdl" "Battleship's abandoned rails" "Straight 2x Damaged" 2 "NULL" "-128,0,-16.110403" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight2x/straight_2x_nodamage.mdl" "Battleship's abandoned rails" "Straight 2x Nodamage" 1 "NULL" " 128,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight2x/straight_2x_nodamage.mdl" "Battleship's abandoned rails" "Straight 2x Nodamage" 2 "NULL" "-128,0,-16.110403" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight3x/straight_3x_damaged.mdl" "Battleship's abandoned rails" "Straight 3x Damaged" 1 "NULL" " 192,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight3x/straight_3x_damaged.mdl" "Battleship's abandoned rails" "Straight 3x Damaged" 2 "NULL" "-192,0,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight3x/straight_3x_nodamage.mdl" "Battleship's abandoned rails" "Straight 3x Nodamage" 1 "NULL" " 192,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight3x/straight_3x_nodamage.mdl" "Battleship's abandoned rails" "Straight 3x Nodamage" 2 "NULL" "-192,0,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight4x/straight_4x_damaged.mdl" "Battleship's abandoned rails" "Straight 4x Damaged" 1 "NULL" " 256,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight4x/straight_4x_damaged.mdl" "Battleship's abandoned rails" "Straight 4x Damaged" 2 "NULL" "-256,0,-16.110403" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight4x/straight_4x_nodamage.mdl" "Battleship's abandoned rails" "Straight 4x Nodamage" 1 "NULL" " 256,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight4x/straight_4x_nodamage.mdl" "Battleship's abandoned rails" "Straight 4x Nodamage" 2 "NULL" "-256,0,-16.110403" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight8x/straight_8x_damaged.mdl" "Battleship's abandoned rails" "Straight 8x Damaged" 1 "NULL" " 512,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight8x/straight_8x_damaged.mdl" "Battleship's abandoned rails" "Straight 8x Damaged" 2 "NULL" "-512,0,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight8x/straight_8x_nodamage.mdl" "Battleship's abandoned rails" "Straight 8x Nodamage" 1 "NULL" " 512,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight8x/straight_8x_nodamage.mdl" "Battleship's abandoned rails" "Straight 8x Nodamage" 2 "NULL" "-512,0,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight_cs_std/straight_cs_std_damaged.mdl" "Battleship's abandoned rails" "Straight Cs Std Damaged" 1 "NULL" "454.40574,0.01251,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight_cs_std/straight_cs_std_damaged.mdl" "Battleship's abandoned rails" "Straight Cs Std Damaged" 2 "NULL" "-454.40574,0.01248,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight_cs_std/straight_cs_std_nodamage.mdl" "Battleship's abandoned rails" "Straight Cs Std Nodamage" 1 "NULL" "454.40574,0.01251,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/straight_cs_std/straight_cs_std_nodamage.mdl" "Battleship's abandoned rails" "Straight Cs Std Nodamage" 2 "NULL" "-454.40574,0.01248,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/switch_left_std/switch_left_base_std.mdl" "Battleship's abandoned rails" "Switch Left Base Std" 1 "NULL" " 512,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/switch_left_std/switch_left_base_std.mdl" "Battleship's abandoned rails" "Switch Left Base Std" 2 "NULL" "-512,0,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/switch_left_std/switch_left_base_std.mdl" "Battleship's abandoned rails" "Switch Left Base Std" 3 "NULL" "-454.49805,-128.04355,-16.110403" "0,-165,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/switch_right_std/switch_right_base_std.mdl" "Battleship's abandoned rails" "Switch Right Base Std" 1 "NULL" " 512,0,-16.110403" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/switch_right_std/switch_right_base_std.mdl" "Battleship's abandoned rails" "Switch Right Base Std" 2 "NULL" "-512,0,-16.110403" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/craptrax/switch_right_std/switch_right_base_std.mdl" "Battleship's abandoned rails" "Switch Right Base Std" 3 "NULL" "-454.48437,128.0936,-16.110403" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_left_1024.mdl" "Bobster's two feet rails" "Curve 225 Left 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_left_1024.mdl" "Bobster's two feet rails" "Curve 225 Left 1024" 2 "NULL" "249.471,49.621,3.016" "0,22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_left_2048.mdl" "Bobster's two feet rails" "Curve 225 Left 2048" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_left_2048.mdl" "Bobster's two feet rails" "Curve 225 Left 2048" 2 "NULL" "498.941,99.246,3.016" "0,22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_left_512.mdl" "Bobster's two feet rails" "Curve 225 Left 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_left_512.mdl" "Bobster's two feet rails" "Curve 225 Left 512" 2 "NULL" "124.735,24.812,3.016" "0,22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_right_1024.mdl" "Bobster's two feet rails" "Curve 225 Right 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_right_1024.mdl" "Bobster's two feet rails" "Curve 225 Right 1024" 2 "NULL" "249.471,-49.623,3.016" "0,-22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_right_2048.mdl" "Bobster's two feet rails" "Curve 225 Right 2048" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_right_2048.mdl" "Bobster's two feet rails" "Curve 225 Right 2048" 2 "NULL" "498.945,-99.237,3.016" "0,-22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_right_512.mdl" "Bobster's two feet rails" "Curve 225 Right 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_225_right_512.mdl" "Bobster's two feet rails" "Curve 225 Right 512" 2 "NULL" "124.736,-24.811,3.016" "0,-22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_left_1024.mdl" "Bobster's two feet rails" "Curve 45 Left 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_left_1024.mdl" "Bobster's two feet rails" "Curve 45 Left 1024" 2 "NULL" "460.962,190.936,3.016" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_left_2048.mdl" "Bobster's two feet rails" "Curve 45 Left 2048" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_left_2048.mdl" "Bobster's two feet rails" "Curve 45 Left 2048" 2 "NULL" "921.925,381.872,3.016" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_left_512.mdl" "Bobster's two feet rails" "Curve 45 Left 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_left_512.mdl" "Bobster's two feet rails" "Curve 45 Left 512" 2 "NULL" "230.481,95.468,3.016" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_right_1024.mdl" "Bobster's two feet rails" "Curve 45 Right 1024" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_right_1024.mdl" "Bobster's two feet rails" "Curve 45 Right 1024" 2 "NULL" "460.963,-190.936,3.016" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_right_2048.mdl" "Bobster's two feet rails" "Curve 45 Right 2048" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_right_2048.mdl" "Bobster's two feet rails" "Curve 45 Right 2048" 2 "NULL" "921.925,-381.872,3.016" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_right_512.mdl" "Bobster's two feet rails" "Curve 45 Right 512" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_45_right_512.mdl" "Bobster's two feet rails" "Curve 45 Right 512" 2 "NULL" "230.481,-95.469,3.016" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_left_1024.mdl" "Bobster's two feet rails" "Curve 90 Left 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_left_1024.mdl" "Bobster's two feet rails" "Curve 90 Left 1024" 2 "NULL" "651.898,651.898,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_left_2048.mdl" "Bobster's two feet rails" "Curve 90 Left 2048" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_left_2048.mdl" "Bobster's two feet rails" "Curve 90 Left 2048" 2 "NULL" "1303.797,1303.797,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_left_512.mdl" "Bobster's two feet rails" "Curve 90 Left 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_left_512.mdl" "Bobster's two feet rails" "Curve 90 Left 512" 2 "NULL" "325.949,325.95,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_right_1024.mdl" "Bobster's two feet rails" "Curve 90 Right 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_right_1024.mdl" "Bobster's two feet rails" "Curve 90 Right 1024" 2 "NULL" "651.898,-651.899,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_right_2048.mdl" "Bobster's two feet rails" "Curve 90 Right 2048" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_right_2048.mdl" "Bobster's two feet rails" "Curve 90 Right 2048" 2 "NULL" "1303.797,-1303.797,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_right_512.mdl" "Bobster's two feet rails" "Curve 90 Right 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_90_right_512.mdl" "Bobster's two feet rails" "Curve 90 Right 512" 2 "NULL" "325.949,-325.949,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_1024.mdl" "Bobster's two feet rails" "Curve Bank 90 Left 1024" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_1024.mdl" "Bobster's two feet rails" "Curve Bank 90 Left 1024" 2 "NULL" "651.899,651.898,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_2048.mdl" "Bobster's two feet rails" "Curve Bank 90 Left 2048" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_2048.mdl" "Bobster's two feet rails" "Curve Bank 90 Left 2048" 2 "NULL" "1303.797,1303.797,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_512.mdl" "Bobster's two feet rails" "Curve Bank 90 Left 512" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_512.mdl" "Bobster's two feet rails" "Curve Bank 90 Left 512" 2 "NULL" "325.949,325.949,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_1024.mdl" "Bobster's two feet rails" "Curve Bank 90 Right 1024" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_1024.mdl" "Bobster's two feet rails" "Curve Bank 90 Right 1024" 2 "NULL" "651.926,-651.874,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_2048.mdl" "Bobster's two feet rails" "Curve Bank 90 Right 2048" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_2048.mdl" "Bobster's two feet rails" "Curve Bank 90 Right 2048" 2 "NULL" "1303.798,-1303.797,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_512.mdl" "Bobster's two feet rails" "Curve Bank 90 Right 512" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_512.mdl" "Bobster's two feet rails" "Curve Bank 90 Right 512" 2 "NULL" "325.949,-325.949,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_1024.mdl" "Bobster's two feet rails" "Curve Rack 225 Left 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_1024.mdl" "Bobster's two feet rails" "Curve Rack 225 Left 1024" 2 "NULL" "249.471,49.621,3.016" "0,22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_512.mdl" "Bobster's two feet rails" "Curve Rack 225 Left 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_512.mdl" "Bobster's two feet rails" "Curve Rack 225 Left 512" 2 "NULL" "124.735,24.812,3.016" "0,22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_1024.mdl" "Bobster's two feet rails" "Curve Rack 225 Right 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_1024.mdl" "Bobster's two feet rails" "Curve Rack 225 Right 1024" 2 "NULL" "249.471,-49.623,3.016" "0,-22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_512.mdl" "Bobster's two feet rails" "Curve Rack 225 Right 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_512.mdl" "Bobster's two feet rails" "Curve Rack 225 Right 512" 2 "NULL" "124.736,-24.811,3.016" "0,-22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_1024.mdl" "Bobster's two feet rails" "Curve Rack 45 Left 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_1024.mdl" "Bobster's two feet rails" "Curve Rack 45 Left 1024" 2 "NULL" "460.962,190.936,3.016" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_512.mdl" "Bobster's two feet rails" "Curve Rack 45 Left 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_512.mdl" "Bobster's two feet rails" "Curve Rack 45 Left 512" 2 "NULL" "230.481,95.468,3.016" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_1024.mdl" "Bobster's two feet rails" "Curve Rack 45 Right 1024" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_1024.mdl" "Bobster's two feet rails" "Curve Rack 45 Right 1024" 2 "NULL" "460.963,-190.936,3.016" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_512.mdl" "Bobster's two feet rails" "Curve Rack 45 Right 512" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_512.mdl" "Bobster's two feet rails" "Curve Rack 45 Right 512" 2 "NULL" "230.481,-95.469,3.016" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_1024.mdl" "Bobster's two feet rails" "Curve Rack 90 Left 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_1024.mdl" "Bobster's two feet rails" "Curve Rack 90 Left 1024" 2 "NULL" "651.898,651.898,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_512.mdl" "Bobster's two feet rails" "Curve Rack 90 Left 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_512.mdl" "Bobster's two feet rails" "Curve Rack 90 Left 512" 2 "NULL" "325.949,325.95,3.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_1024.mdl" "Bobster's two feet rails" "Curve Rack 90 Right 1024" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_1024.mdl" "Bobster's two feet rails" "Curve Rack 90 Right 1024" 2 "NULL" "651.898,-651.899,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_512.mdl" "Bobster's two feet rails" "Curve Rack 90 Right 512" 1 "NULL" "0,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_512.mdl" "Bobster's two feet rails" "Curve Rack 90 Right 512" 2 "NULL" "325.949,-325.949,3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/misc/cross.mdl" "Bobster's two feet rails" "Cross" 1 "NULL" "83,0,3.015" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/misc/cross.mdl" "Bobster's two feet rails" "Cross" 2 "NULL" "0.003,83,3.015" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/misc/cross.mdl" "Bobster's two feet rails" "Cross" 3 "NULL" "-83,0.003,3.015" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/misc/cross.mdl" "Bobster's two feet rails" "Cross" 4 "NULL" "0,-83,3.015" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_1024.mdl" "Bobster's two feet rails" "Straight 1024" 1 "NULL" "512,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_1024.mdl" "Bobster's two feet rails" "Straight 1024" 2 "NULL" "-512,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_128.mdl" "Bobster's two feet rails" "Straight 128" 1 "NULL" "64,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_128.mdl" "Bobster's two feet rails" "Straight 128" 2 "NULL" "-64,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_16.mdl" "Bobster's two feet rails" "Straight 16" 1 "0,-32,1.5" "8,0,3.017" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_16.mdl" "Bobster's two feet rails" "Straight 16" 2 "0,32,1.5" "-8,0,3.017" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_2048.mdl" "Bobster's two feet rails" "Straight 2048" 1 "NULL" " 1024,0,3.017" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_2048.mdl" "Bobster's two feet rails" "Straight 2048" 2 "NULL" "-1024,0,3.017" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_256.mdl" "Bobster's two feet rails" "Straight 256" 1 "NULL" "128,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_256.mdl" "Bobster's two feet rails" "Straight 256" 2 "NULL" "-128,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_32.mdl" "Bobster's two feet rails" "Straight 32" 1 "0,-32,1.5" "16,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_32.mdl" "Bobster's two feet rails" "Straight 32" 2 "0,32,1.5" "-16,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_4096.mdl" "Bobster's two feet rails" "Straight 4096" 1 "NULL" " 2048,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_4096.mdl" "Bobster's two feet rails" "Straight 4096" 2 "NULL" "-2048,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_512.mdl" "Bobster's two feet rails" "Straight 512" 1 "NULL" "256,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_512.mdl" "Bobster's two feet rails" "Straight 512" 2 "NULL" "-256,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_64.mdl" "Bobster's two feet rails" "Straight 64" 1 "NULL" "32,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_64.mdl" "Bobster's two feet rails" "Straight 64" 2 "NULL" "-32,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_bank_left.mdl" "Bobster's two feet rails" "Straight Bank Left" 1 "NULL" " 128,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_bank_left.mdl" "Bobster's two feet rails" "Straight Bank Left" 2 "NULL" "-128,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_bank_right.mdl" "Bobster's two feet rails" "Straight Bank Right" 1 "NULL" " 128,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_bank_right.mdl" "Bobster's two feet rails" "Straight Bank Right" 2 "NULL" "-128,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_1024.mdl" "Bobster's two feet rails" "Straight Rack 1024" 1 "NULL" "512,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_1024.mdl" "Bobster's two feet rails" "Straight Rack 1024" 2 "NULL" "-512,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_128.mdl" "Bobster's two feet rails" "Straight Rack 128" 1 "NULL" "64,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_128.mdl" "Bobster's two feet rails" "Straight Rack 128" 2 "NULL" "-64,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_16.mdl" "Bobster's two feet rails" "Straight Rack 16" 1 "0,-32,1.5" "8,0,3.017" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_16.mdl" "Bobster's two feet rails" "Straight Rack 16" 2 "0,32,1.5" "-8,0,3.017" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_256.mdl" "Bobster's two feet rails" "Straight Rack 256" 1 "NULL" "128,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_256.mdl" "Bobster's two feet rails" "Straight Rack 256" 2 "NULL" "-128,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_32.mdl" "Bobster's two feet rails" "Straight Rack 32" 1 "0,-32,1.5" "16,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_32.mdl" "Bobster's two feet rails" "Straight Rack 32" 2 "0,32,1.5" "-16,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_512.mdl" "Bobster's two feet rails" "Straight Rack 512" 1 "NULL" "256,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_512.mdl" "Bobster's two feet rails" "Straight Rack 512" 2 "NULL" "-256,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_64.mdl" "Bobster's two feet rails" "Straight Rack 64" 1 "NULL" "32,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/straight_rack_64.mdl" "Bobster's two feet rails" "Straight Rack 64" 2 "NULL" "-32,0,3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl" "Bobster's two feet rails" "Switch Left Switched" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl" "Bobster's two feet rails" "Switch Left Switched" 2 "NULL" "256,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl" "Bobster's two feet rails" "Switch Left Switched" 3 "NULL" "262.471,49.622,3.016" "0,22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl" "Bobster's two feet rails" "Switch Left Unswitched" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl" "Bobster's two feet rails" "Switch Left Unswitched" 2 "NULL" "256,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl" "Bobster's two feet rails" "Switch Left Unswitched" 3 "NULL" "262.471,49.622,3.016" "0,22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl" "Bobster's two feet rails" "Switch Right Switched" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl" "Bobster's two feet rails" "Switch Right Switched" 2 "NULL" "256,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl" "Bobster's two feet rails" "Switch Right Switched" 3 "NULL" "262.472,-49.622,3.016" "0,-22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl" "Bobster's two feet rails" "Switch Right Unswitched" 1 "NULL" "0,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl" "Bobster's two feet rails" "Switch Right Unswitched" 2 "NULL" "256,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl" "Bobster's two feet rails" "Switch Right Unswitched" 3 "NULL" "262.472,-49.622,3.016" "0,-22.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_corner.mdl" "CAP Walkway" "Corner" 1 "NULL" "-137.4472,37.11516,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_corner.mdl" "CAP Walkway" "Corner" 2 "NULL" "37.11516,-137.4472,-12.7" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_end.mdl" "CAP Walkway" "End" 1 "NULL" "-137.24675,0,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_long.mdl" "CAP Walkway" "Long" 1 "NULL" " 337.7742,0,-12.7" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_long.mdl" "CAP Walkway" "Long" 2 "NULL" "-337.7742,0,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_med.mdl" "CAP Walkway" "Med" 1 "NULL" " 172.23691,0,-12.7" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_med.mdl" "CAP Walkway" "Med" 2 "NULL" "-172.23691,0,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_short.mdl" "CAP Walkway" "Short" 1 "NULL" " 89.0125,0,-12.7" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_short.mdl" "CAP Walkway" "Short" 2 "NULL" "-89.0125,0,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_t.mdl" "CAP Walkway" "T" 1 "NULL" "-137.44797,0,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_t.mdl" "CAP Walkway" "T" 2 "NULL" "37.12806,-174.55254,-12.7" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_t.mdl" "CAP Walkway" "T" 3 "NULL" "37.12806,174.55254,-12.7" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x.mdl" "CAP Walkway" "X" 1 "NULL" "174.55254,0,-12.7" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x.mdl" "CAP Walkway" "X" 2 "NULL" "0,174.55254,-12.7" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x.mdl" "CAP Walkway" "X" 3 "NULL" "-174.55254,0,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x.mdl" "CAP Walkway" "X" 4 "NULL" "0,-174.55254,-12.7" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x_big.mdl" "CAP Walkway" "X Big" 1 "NULL" "234.58699,0,-12.7" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x_big.mdl" "CAP Walkway" "X Big" 2 "NULL" "0.31703,234.26997,-12.7" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x_big.mdl" "CAP Walkway" "X Big" 3 "NULL" "-233.95296,0,-12.7" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/catwalk_x_big.mdl" "CAP Walkway" "X Big" 4 "NULL" "0.31701,-234.26991,-12.7" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/gate_platform.mdl" "CAP Walkway" "Platform" 1 "NULL" "330,0,3.3" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/gate_platform.mdl" "CAP Walkway" "Platform" 2 "NULL" "0,330,3.3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/gate_platform.mdl" "CAP Walkway" "Platform" 3 "NULL" "-330,0,3.3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/gate_platform.mdl" "CAP Walkway" "Platform" 4 "NULL" "0,-330,3.3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/landing_platform.mdl" "CAP Walkway" "Platform" 1 "NULL" "-755.98682,-348.96243,42.80078" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/landing_platform.mdl" "CAP Walkway" "Platform" 2 "NULL" "-755.98682,349.68161,42.80078" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/nanog_end.mdl" "CAP Walkway" "End" 1 "NULL" "-286.09482,-0.0823,3.74512" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/nanog_mid.mdl" "CAP Walkway" "Mid" 1 "NULL" "-304.15,0,3.755" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/nanog_mid.mdl" "CAP Walkway" "Mid" 2 "NULL" "236.8,-197,3.755" "0,-40,0" "NULL" +TRACKASSEMBLY_PIECES "models/boba_fett/catwalk_build/nanog_mid.mdl" "CAP Walkway" "Mid" 3 "NULL" "236.8,197,3.755" "0,40,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/225l.mdl" "G Scale Track Pack" "225l" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/225l.mdl" "G Scale Track Pack" "225l" 2 "NULL" "-196.060471,-39.081982,1.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/225r.mdl" "G Scale Track Pack" "225r" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/225r.mdl" "G Scale Track Pack" "225r" 2 "NULL" "-196.060471, 39.081982,1.016" "0, 157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/45l.mdl" "G Scale Track Pack" "45l" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/45l.mdl" "G Scale Track Pack" "45l" 2 "NULL" "-362,-150,1.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/45r.mdl" "G Scale Track Pack" "45r" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/45r.mdl" "G Scale Track Pack" "45r" 2 "NULL" "-362,150,1.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/90l.mdl" "G Scale Track Pack" "90l" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/90l.mdl" "G Scale Track Pack" "90l" 2 "NULL" "-512,-512,1.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/90r.mdl" "G Scale Track Pack" "90r" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/90r.mdl" "G Scale Track Pack" "90r" 2 "NULL" "-512, 512,1.016" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/s225l.mdl" "G Scale Track Pack" "S225l" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/s225l.mdl" "G Scale Track Pack" "S225l" 2 "NULL" "-392,-78.125595,1.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/s225r.mdl" "G Scale Track Pack" "S225r" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/c0512/s225r.mdl" "G Scale Track Pack" "S225r" 2 "NULL" "-392, 78.125595,1.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0032.mdl" "G Scale Track Pack" "S0032" 1 "NULL" " 0,0,25.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0032.mdl" "G Scale Track Pack" "S0032" 2 "NULL" " -32,0,25.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0064.mdl" "G Scale Track Pack" "S0064" 1 "NULL" " 0,0,25.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0064.mdl" "G Scale Track Pack" "S0064" 2 "NULL" " -64,0,25.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0128.mdl" "G Scale Track Pack" "S0128" 1 "NULL" " 0,0,25.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0128.mdl" "G Scale Track Pack" "S0128" 2 "NULL" " -128,0,25.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0256.mdl" "G Scale Track Pack" "S0256" 1 "NULL" " 0,0,25.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0256.mdl" "G Scale Track Pack" "S0256" 2 "NULL" " -256,0,25.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0512.mdl" "G Scale Track Pack" "S0512" 1 "NULL" " 0,0,25.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s0512.mdl" "G Scale Track Pack" "S0512" 2 "NULL" " -512,0,25.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s1024.mdl" "G Scale Track Pack" "S1024" 1 "NULL" " 0,0,25.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ibeam/s1024.mdl" "G Scale Track Pack" "S1024" 2 "NULL" "-1024,0,25.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/l225_s.mdl" "G Scale Track Pack" "L225 S" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/l225_s.mdl" "G Scale Track Pack" "L225 S" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/l225_s.mdl" "G Scale Track Pack" "L225 S" 3 "NULL" "-196.060471,-39.081982,1.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/l225_t.mdl" "G Scale Track Pack" "L225 T" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/l225_t.mdl" "G Scale Track Pack" "L225 T" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/l225_t.mdl" "G Scale Track Pack" "L225 T" 3 "NULL" "-196.060471,-39.081982,1.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/r225_s.mdl" "G Scale Track Pack" "R225 S" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/r225_s.mdl" "G Scale Track Pack" "R225 S" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/r225_s.mdl" "G Scale Track Pack" "R225 S" 3 "NULL" "-196.060471, 39.081982,1.016" "0, 157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/r225_t.mdl" "G Scale Track Pack" "R225 T" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/r225_t.mdl" "G Scale Track Pack" "R225 T" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/j/r225_t.mdl" "G Scale Track Pack" "R225 T" 3 "NULL" "-196.060471, 39.081982,1.016" "0, 157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0032.mdl" "G Scale Track Pack" "R0032" 1 "NULL" " 32,0,2.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0032.mdl" "G Scale Track Pack" "R0032" 2 "NULL" " 0,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0064.mdl" "G Scale Track Pack" "R0064" 1 "NULL" " 64,0,3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0064.mdl" "G Scale Track Pack" "R0064" 2 "NULL" " 0,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0128.mdl" "G Scale Track Pack" "R0128" 1 "NULL" " 128,0,5.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0128.mdl" "G Scale Track Pack" "R0128" 2 "NULL" " 0,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0256.mdl" "G Scale Track Pack" "R0256" 1 "NULL" " 256,0,9.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0256.mdl" "G Scale Track Pack" "R0256" 2 "NULL" " 0,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0512.mdl" "G Scale Track Pack" "R0512" 1 "NULL" " 512,0,17.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r0512.mdl" "G Scale Track Pack" "R0512" 2 "NULL" " 0,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r1024.mdl" "G Scale Track Pack" "R1024" 1 "NULL" "1024,0,33.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/ramp313/r1024.mdl" "G Scale Track Pack" "R1024" 2 "NULL" " 0,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_s.mdl" "G Scale Track Pack" "L225 S" 1 "NULL" " 0, 0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_s.mdl" "G Scale Track Pack" "L225 S" 2 "NULL" "-256, 0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_s.mdl" "G Scale Track Pack" "L225 S" 3 "NULL" "-392,-78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_s.mdl" "G Scale Track Pack" "L225 S" 4 "NULL" "-136,-78,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_t.mdl" "G Scale Track Pack" "L225 T" 1 "NULL" " 0, 0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_t.mdl" "G Scale Track Pack" "L225 T" 2 "NULL" "-256, 0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_t.mdl" "G Scale Track Pack" "L225 T" 3 "NULL" "-392,-78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/l225_t.mdl" "G Scale Track Pack" "L225 T" 4 "NULL" "-136,-78,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_s.mdl" "G Scale Track Pack" "R225 S" 1 "NULL" " 0, 0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_s.mdl" "G Scale Track Pack" "R225 S" 2 "NULL" "-256, 0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_s.mdl" "G Scale Track Pack" "R225 S" 3 "NULL" "-392, 78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_s.mdl" "G Scale Track Pack" "R225 S" 4 "NULL" "-136, 78,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_t.mdl" "G Scale Track Pack" "R225 T" 1 "NULL" " 0, 0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_t.mdl" "G Scale Track Pack" "R225 T" 2 "NULL" "-256, 0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_t.mdl" "G Scale Track Pack" "R225 T" 3 "NULL" "-392, 78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/s/r225_t.mdl" "G Scale Track Pack" "R225 T" 4 "NULL" "-136, 78,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/l225_s.mdl" "G Scale Track Pack" "L225 S" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/l225_s.mdl" "G Scale Track Pack" "L225 S" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/l225_s.mdl" "G Scale Track Pack" "L225 S" 3 "NULL" "-392,-78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/l225_t.mdl" "G Scale Track Pack" "L225 T" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/l225_t.mdl" "G Scale Track Pack" "L225 T" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/l225_t.mdl" "G Scale Track Pack" "L225 T" 3 "NULL" "-392,-78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/r225_s.mdl" "G Scale Track Pack" "R225 S" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/r225_s.mdl" "G Scale Track Pack" "R225 S" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/r225_s.mdl" "G Scale Track Pack" "R225 S" 3 "NULL" "-392,78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/r225_t.mdl" "G Scale Track Pack" "R225 T" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/r225_t.mdl" "G Scale Track Pack" "R225 T" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/siding/r225_t.mdl" "G Scale Track Pack" "R225 T" 3 "NULL" "-392,78,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0008.mdl" "G Scale Track Pack" "S0008" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0008.mdl" "G Scale Track Pack" "S0008" 2 "NULL" " -8,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0016.mdl" "G Scale Track Pack" "S0016" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0016.mdl" "G Scale Track Pack" "S0016" 2 "NULL" " -16,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0032.mdl" "G Scale Track Pack" "S0032" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0032.mdl" "G Scale Track Pack" "S0032" 2 "NULL" " -32,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0064.mdl" "G Scale Track Pack" "S0064" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0064.mdl" "G Scale Track Pack" "S0064" 2 "NULL" " -64,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0128.mdl" "G Scale Track Pack" "S0128" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0128.mdl" "G Scale Track Pack" "S0128" 2 "NULL" "-128,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0256.mdl" "G Scale Track Pack" "S0256" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0256.mdl" "G Scale Track Pack" "S0256" 2 "NULL" "-256,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0512.mdl" "G Scale Track Pack" "S0512" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s0512.mdl" "G Scale Track Pack" "S0512" 2 "NULL" "-512,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s1024.mdl" "G Scale Track Pack" "S1024" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/straight/s1024.mdl" "G Scale Track Pack" "S1024" 2 "NULL" "-1024,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/transition/t0032_q_s_1.mdl" "G Scale Track Pack" "T0032 Q S 1" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/transition/t0032_q_s_1.mdl" "G Scale Track Pack" "T0032 Q S 1" 2 "NULL" " -32,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/transition/t0032_q_s_2.mdl" "G Scale Track Pack" "T0032 Q S 2" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/transition/t0032_q_s_2.mdl" "G Scale Track Pack" "T0032 Q S 2" 2 "NULL" " -32,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/transition/t0032_q_t.mdl" "G Scale Track Pack" "T0032 Q T" 1 "NULL" " 0,0,1.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/gscale/transition/t0032_q_t.mdl" "G Scale Track Pack" "T0032 Q T" 2 "NULL" " -32,0,1.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/1536.mdl" "Joe's track pack" "1536" 1 "NULL" "0,0,6.56348" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/1536.mdl" "Joe's track pack" "1536" 2 "NULL" "-1536,1536,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/2048_90.mdl" "Joe's track pack" "2048 90" 1 "NULL" "0,0,6.5625" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/2048_90.mdl" "Joe's track pack" "2048 90" 2 "NULL" "1769,-1769,6.5625" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/2304_90.mdl" "Joe's track pack" "2304 90" 1 "NULL" "0,0,6.5625" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/2304_90.mdl" "Joe's track pack" "2304 90" 2 "NULL" "-2005,2005,6.5625" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/3072_90.mdl" "Joe's track pack" "3072 90" 1 "NULL" "0,0,6.5625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/3072_90.mdl" "Joe's track pack" "3072 90" 2 "NULL" "-3072,3072,6.5625" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/4096_90.mdl" "Joe's track pack" "4096 90" 1 "NULL" "0,0,6.5625" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/curve/4096_90.mdl" "Joe's track pack" "4096 90" 2 "NULL" "-4096,4096,6.5625" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/1024_16.mdl" "Joe's track pack" "1024 16" 1 "NULL" "0,0,6.5625" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/1024_16.mdl" "Joe's track pack" "1024 16" 2 "NULL" "0,-1024,22.5625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/1024_32.mdl" "Joe's track pack" "1024 32" 1 "NULL" "0,512,-9.43457" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/1024_32.mdl" "Joe's track pack" "1024 32" 2 "NULL" "0,-512,22.56836" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/2048_32.mdl" "Joe's track pack" "2048 32" 1 "NULL" "0,0,6.56152" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/2048_32.mdl" "Joe's track pack" "2048 32" 2 "NULL" "0,2048,38.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/2048_64.mdl" "Joe's track pack" "2048 64" 1 "NULL" "0,0,6.56152" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/2048_64.mdl" "Joe's track pack" "2048 64" 2 "NULL" "0,2048,70.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/3072_48.mdl" "Joe's track pack" "3072 48" 1 "NULL" "0,0,6.56152" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/3072_48.mdl" "Joe's track pack" "3072 48" 2 "NULL" "0,3072,54.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/3072_96.mdl" "Joe's track pack" "3072 96" 1 "NULL" "0,0,6.56152" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/3072_96.mdl" "Joe's track pack" "3072 96" 2 "NULL" "0,3072,102.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/4096_128.mdl" "Joe's track pack" "4096 128" 1 "NULL" "0,0,6.56152" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/4096_128.mdl" "Joe's track pack" "4096 128" 2 "NULL" "0,4096,134.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/4096_64.mdl" "Joe's track pack" "4096 64" 1 "NULL" "0,0,6.56152" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/4096_64.mdl" "Joe's track pack" "4096 64" 2 "NULL" "0,4096,70.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/512_16.mdl" "Joe's track pack" "512 16" 1 "NULL" "0,-256,-1.43457" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/512_16.mdl" "Joe's track pack" "512 16" 2 "NULL" "0, 256,14.56738" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/512_32.mdl" "Joe's track pack" "512 32" 1 "NULL" "0,0,6.56152" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/512_32.mdl" "Joe's track pack" "512 32" 2 "NULL" "0,512,38.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/3072_48_left.mdl" "Joe's track pack" "3072 48 Left" 1 "NULL" "0,0,6.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/3072_48_left.mdl" "Joe's track pack" "3072 48 Left" 2 "NULL" "3072,-3072,54.56152" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_48.mdl" "Joe's track pack" "4096 48" 1 "NULL" "0,0,6.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_48.mdl" "Joe's track pack" "4096 48" 2 "NULL" "-4096,-4096,54.56152" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_48_left.mdl" "Joe's track pack" "4096 48 Left" 1 "NULL" "0,0,6.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_48_left.mdl" "Joe's track pack" "4096 48 Left" 2 "NULL" "3072,-3072,54.56152" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_64_right.mdl" "Joe's track pack" "4096 64 Right" 1 "NULL" "0,0,6.56152" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_64_right.mdl" "Joe's track pack" "4096 64 Right" 2 "NULL" "-4096,-4096,70.56152" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_96_left.mdl" "Joe's track pack" "4096 96 Left" 1 "NULL" "0,0,6.5625" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/grades/curve/4096_96_left.mdl" "Joe's track pack" "4096 96 Left" 2 "NULL" "4096,-4096,102.5625" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/damaged_track_1.mdl" "Joe's track pack" "Damaged Track 1" 1 "NULL" "0,106,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/damaged_track_1.mdl" "Joe's track pack" "Damaged Track 1" 2 "NULL" "0,-107,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/diamond_90.mdl" "Joe's track pack" "Diamond 90" 1 "NULL" "105,0,6.56348" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/diamond_90.mdl" "Joe's track pack" "Diamond 90" 2 "NULL" "0,-105,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/diamond_90.mdl" "Joe's track pack" "Diamond 90" 3 "NULL" "-105,0,6.56348" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/diamond_90.mdl" "Joe's track pack" "Diamond 90" 4 "NULL" "0,105,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/end_track_1.mdl" "Joe's track pack" "End Track 1" 1 "NULL" "0, 32,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/misc/end_track_1.mdl" "Joe's track pack" "End Track 1" 2 "NULL" "0,-32,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/1024.mdl" "Joe's track pack" "1024" 1 "NULL" "0, 512,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/1024.mdl" "Joe's track pack" "1024" 2 "NULL" "0,-512,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/128.mdl" "Joe's track pack" "128" 1 "NULL" "0, 64 ,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/128.mdl" "Joe's track pack" "128" 2 "NULL" "0,-64 ,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/2048.mdl" "Joe's track pack" "2048" 1 "NULL" "0, 1024,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/2048.mdl" "Joe's track pack" "2048" 2 "NULL" "0,-1024,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/256.mdl" "Joe's track pack" "256" 1 "NULL" "0, 128,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/256.mdl" "Joe's track pack" "256" 2 "NULL" "0,-128,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/3072.mdl" "Joe's track pack" "3072" 1 "NULL" "0, 1536,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/3072.mdl" "Joe's track pack" "3072" 2 "NULL" "0,-1536,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/32.mdl" "Joe's track pack" "32" 1 "NULL" "0, 16 ,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/32.mdl" "Joe's track pack" "32" 2 "NULL" "0,-16 ,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/4096.mdl" "Joe's track pack" "4096" 1 "NULL" "0, 2048,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/4096.mdl" "Joe's track pack" "4096" 2 "NULL" "0,-2048,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/512.mdl" "Joe's track pack" "512" 1 "NULL" "0, 256,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/512.mdl" "Joe's track pack" "512" 2 "NULL" "0,-256,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/64.mdl" "Joe's track pack" "64" 1 "NULL" "0, 32 ,6.56348" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/64.mdl" "Joe's track pack" "64" 2 "NULL" "0,-32 ,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/custom_1.mdl" "Joe's track pack" "Custom 1" 1 "NULL" "301,-7.00836,6.56348" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/custom_1.mdl" "Joe's track pack" "Custom 1" 2 "NULL" "-301,7.00464,6.56348" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/siding_straight.mdl" "Joe's track pack" "Siding Straight" 1 "NULL" "0,332,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/straight/siding_straight.mdl" "Joe's track pack" "Siding Straight" 2 "NULL" "0,-331,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_left_switch.mdl" "Joe's track pack" "225 Left Switch" 1 "NULL" "0,0,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_left_switch.mdl" "Joe's track pack" "225 Left Switch" 2 "NULL" "0,-512,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_left_switch.mdl" "Joe's track pack" "225 Left Switch" 3 "NULL" "117,-588,6.56348" "0,-67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_left_unswitched.mdl" "Joe's track pack" "225 Left Unswitched" 1 "NULL" "0,0,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_left_unswitched.mdl" "Joe's track pack" "225 Left Unswitched" 2 "NULL" "0,-512,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_left_unswitched.mdl" "Joe's track pack" "225 Left Unswitched" 3 "NULL" "117,-588,6.56348" "0,-67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_right_switch.mdl" "Joe's track pack" "225 Right Switch" 1 "NULL" "0,0,6.56348" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_right_switch.mdl" "Joe's track pack" "225 Right Switch" 2 "NULL" "-512,0,6.56348" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_right_switch.mdl" "Joe's track pack" "225 Right Switch" 3 "NULL" "-588,117,6.56348" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_right_unswitched.mdl" "Joe's track pack" "225 Right Unswitched" 1 "NULL" "0,0,6.56348" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_right_unswitched.mdl" "Joe's track pack" "225 Right Unswitched" 2 "NULL" "-512,0,6.56348" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_right_unswitched.mdl" "Joe's track pack" "225 Right Unswitched" 3 "NULL" "-588,117,6.56348" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_left_switched.mdl" "Joe's track pack" "225 Yard Left Switched" 1 "NULL" "117,588.00024,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_left_switched.mdl" "Joe's track pack" "225 Yard Left Switched" 2 "NULL" "195.92734,473.3591,6.56348" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_left_switched.mdl" "Joe's track pack" "225 Yard Left Switched" 3 "NULL" "-0.10242,0.34741,6.56348" "0,-112.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_left_unswitched.mdl" "Joe's track pack" "225 Yard Left Unswitched" 1 "NULL" "117,588.00024,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_left_unswitched.mdl" "Joe's track pack" "225 Yard Left Unswitched" 2 "NULL" "195.92734,473.3591,6.56348" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_left_unswitched.mdl" "Joe's track pack" "225 Yard Left Unswitched" 3 "NULL" "-0.10242,0.34741,6.56348" "0,-112.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_right_switched.mdl" "Joe's track pack" "225 Yard Right Switched" 1 "NULL" "-117,588,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_right_switched.mdl" "Joe's track pack" "225 Yard Right Switched" 2 "NULL" "-195.92795,473.35934,6.56348" "0,112.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_right_switched.mdl" "Joe's track pack" "225 Yard Right Switched" 3 "NULL" "0.09927,0.34661,6.56348" "0,-67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_right_unswitched.mdl" "Joe's track pack" "225 Yard Right Unswitched" 1 "NULL" "-117,588,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_right_unswitched.mdl" "Joe's track pack" "225 Yard Right Unswitched" 2 "NULL" "-195.92795,473.35934,6.56348" "0,112.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/225_yard_right_unswitched.mdl" "Joe's track pack" "225 Yard Right Unswitched" 3 "NULL" "0.09927,0.34661,6.56348" "0,-67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_left_switch.mdl" "Joe's track pack" "45 Left Switch" 1 "NULL" "0,0,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_left_switch.mdl" "Joe's track pack" "45 Left Switch" 2 "NULL" "0,-512,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_left_switch.mdl" "Joe's track pack" "45 Left Switch" 3 "NULL" "450,-1086.01062,6.56348" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_left_unswitched.mdl" "Joe's track pack" "45 Left Unswitched" 1 "NULL" "0,0,6.56348" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_left_unswitched.mdl" "Joe's track pack" "45 Left Unswitched" 2 "NULL" "0,-512,6.56348" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_left_unswitched.mdl" "Joe's track pack" "45 Left Unswitched" 3 "NULL" "450,-1086.01062,6.56348" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_right_switched.mdl" "Joe's track pack" "45 Right Switched" 1 "NULL" "0,0,6.56248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_right_switched.mdl" "Joe's track pack" "45 Right Switched" 2 "NULL" "-512,0,6.5625" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_right_switched.mdl" "Joe's track pack" "45 Right Switched" 3 "NULL" "-1086.0105,450,6.60476" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_right_unswitched.mdl" "Joe's track pack" "45 Right Unswitched" 1 "NULL" "0,0,6.56248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_right_unswitched.mdl" "Joe's track pack" "45 Right Unswitched" 2 "NULL" "-512,0,6.5625" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/switch/1536/45_right_unswitched.mdl" "Joe's track pack" "45 Right Unswitched" 3 "NULL" "-1086.0105,450,6.60476" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/throw/harpstand_2_pos.mdl" "Joe's track pack" "Harpstand 2 Pos" 1 "NULL" "0, -86.5, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/trestle/trestle_1.mdl" "Joe's track pack" "Trestle 1" 1 "NULL" "0,0,249" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/trestle/trestle_2.mdl" "Joe's track pack" "Trestle 2" 1 "NULL" "0,0,249" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/trestle/trestle_3.mdl" "Joe's track pack" "Trestle 3" 1 "NULL" "0,0,249" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/trestle/trestle_4.mdl" "Joe's track pack" "Trestle 4" 1 "NULL" "0,0,249" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/turntable/base_1.mdl" "Joe's track pack" "Base 1" 1 "NULL" " 450,0,2.59372" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/turntable/base_1.mdl" "Joe's track pack" "Base 1" 2 "NULL" "-450,0,2.59372" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/turntable/turntable.mdl" "Joe's track pack" "Turntable" 1 "NULL" "0, 450,14.59378" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/turntable/turntable.mdl" "Joe's track pack" "Turntable" 2 "NULL" "0,-450,14.59378" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/turntable/turntable2.mdl" "Joe's track pack" "Turntable2" 1 "NULL" "0, 450,14.59378" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/joe/jtp/turntable/turntable2.mdl" "Joe's track pack" "Turntable2" 2 "NULL" "0,-450,14.59378" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/curve_225.mdl" "Magnum's Rails" "Curve 225" 1 "NULL" "-0.01, 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/curve_225.mdl" "Magnum's Rails" "Curve 225" 2 "NULL" "-587.955, -117.702, 3.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/curve_45.mdl" "Magnum's Rails" "Curve 45" 1 "NULL" "-0.012, 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/curve_45.mdl" "Magnum's Rails" "Curve 45" 2 "NULL" "-1087.089, -451.055, 3.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/curve_90.mdl" "Magnum's Rails" "Curve 90" 1 "NULL" " 1086.58, 450.079, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/curve_90.mdl" "Magnum's Rails" "Curve 90" 2 "NULL" "-449.475,-1085.92, 3.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0032.mdl" "Magnum's Rails" "Straight 0032" 1 "NULL" " 16 , 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0032.mdl" "Magnum's Rails" "Straight 0032" 2 "NULL" "-16 , 0, 3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0064.mdl" "Magnum's Rails" "Straight 0064" 1 "NULL" " 32 , 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0064.mdl" "Magnum's Rails" "Straight 0064" 2 "NULL" "-32 , 0, 3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0128.mdl" "Magnum's Rails" "Straight 0128" 1 "NULL" " 64 , 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0128.mdl" "Magnum's Rails" "Straight 0128" 2 "NULL" "-64 , 0, 3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0256.mdl" "Magnum's Rails" "Straight 0256" 1 "NULL" " 128 , 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0256.mdl" "Magnum's Rails" "Straight 0256" 2 "NULL" "-128 , 0, 3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0512.mdl" "Magnum's Rails" "Straight 0512" 1 "NULL" " 256 , 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_0512.mdl" "Magnum's Rails" "Straight 0512" 2 "NULL" "-256 , 0, 3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_1024.mdl" "Magnum's Rails" "Straight 1024" 1 "NULL" " 512 , 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_1024.mdl" "Magnum's Rails" "Straight 1024" 2 "NULL" "-512 , 0, 3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_2048.mdl" "Magnum's Rails" "Straight 2048" 1 "NULL" " 1024, 0, 3.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/straight_2048.mdl" "Magnum's Rails" "Straight 2048" 2 "NULL" "-1024, 0, 3.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switch_curve.mdl" "Magnum's Rails" "Switch Curve" 1 "NULL" "0,0,0.01563" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switch_curve.mdl" "Magnum's Rails" "Switch Curve" 2 "NULL" "-373.42453,-45.55976,0.01562" "0,-166.08,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switch_straight.mdl" "Magnum's Rails" "Switch Straight" 1 "NULL" "0,0,0.01599" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switch_straight.mdl" "Magnum's Rails" "Switch Straight" 2 "NULL" "-384,0,0.01599" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switchbase_left.mdl" "Magnum's Rails" "Switchbase Left" 1 "NULL" "0,0,0.01599" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switchbase_left.mdl" "Magnum's Rails" "Switchbase Left" 2 "NULL" "-512,0,0.01599" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switchbase_left.mdl" "Magnum's Rails" "Switchbase Left" 3 "NULL" "-587.75598,-117.69751,0.01599" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switchbase_right.mdl" "Magnum's Rails" "Switchbase Right" 1 "NULL" "0,0,0.01599" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switchbase_right.mdl" "Magnum's Rails" "Switchbase Right" 2 "NULL" "-512,0,0.01599" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/magtrains1ga/switchbase_right.mdl" "Magnum's Rails" "Switchbase Right" 3 "NULL" "-587.75598,117.69751,0.01599" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_connector1.mdl" "Modular Canals" "Interior Connector1" 1 "NULL" "128,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_connector1.mdl" "Modular Canals" "Interior Connector1" 2 "NULL" "-128,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_connector2.mdl" "Modular Canals" "Interior Connector2" 1 "NULL" "128,64,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_connector2.mdl" "Modular Canals" "Interior Connector2" 2 "NULL" "-128,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_connector3.mdl" "Modular Canals" "Interior Connector3" 1 "NULL" "128,-64,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_connector3.mdl" "Modular Canals" "Interior Connector3" 2 "NULL" "-128,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_128.mdl" "Modular Canals" "Interior Narrow 128" 1 "NULL" "64,64,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_128.mdl" "Modular Canals" "Interior Narrow 128" 2 "NULL" "-64,64,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_256.mdl" "Modular Canals" "Interior Narrow 256" 1 "NULL" "128,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_256.mdl" "Modular Canals" "Interior Narrow 256" 2 "NULL" "-128,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_corner.mdl" "Modular Canals" "Interior Narrow Corner" 1 "NULL" "56,-136,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_corner.mdl" "Modular Canals" "Interior Narrow Corner" 2 "NULL" "-136,56,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_corner2.mdl" "Modular Canals" "Interior Narrow Corner2" 1 "NULL" "136,56,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_corner2.mdl" "Modular Canals" "Interior Narrow Corner2" 2 "NULL" "-56,-136,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_stairs.mdl" "Modular Canals" "Interior Narrow Stairs" 1 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_stairs.mdl" "Modular Canals" "Interior Narrow Stairs" 2 "NULL" "-256,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_stairs_mirrored.mdl" "Modular Canals" "Interior Narrow Stairs Mirrored" 1 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_stairs_mirrored.mdl" "Modular Canals" "Interior Narrow Stairs Mirrored" 2 "NULL" "-256,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_tjunc.mdl" "Modular Canals" "Interior Narrow Tjunc" 1 "NULL" "56,248,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_tjunc.mdl" "Modular Canals" "Interior Narrow Tjunc" 2 "NULL" "-136,56,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_tjunc.mdl" "Modular Canals" "Interior Narrow Tjunc" 3 "NULL" "56,-136,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_xjunc.mdl" "Modular Canals" "Interior Narrow Xjunc" 1 "NULL" "192,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_xjunc.mdl" "Modular Canals" "Interior Narrow Xjunc" 2 "NULL" "0,192,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_xjunc.mdl" "Modular Canals" "Interior Narrow Xjunc" 3 "NULL" "-192,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_narrow_xjunc.mdl" "Modular Canals" "Interior Narrow Xjunc" 4 "NULL" "0,-192,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_128.mdl" "Modular Canals" "Interior Wide 128" 1 "NULL" "64,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_128.mdl" "Modular Canals" "Interior Wide 128" 2 "NULL" "-64,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_256.mdl" "Modular Canals" "Interior Wide 256" 1 "NULL" "128,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_256.mdl" "Modular Canals" "Interior Wide 256" 2 "NULL" "-128,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_corner.mdl" "Modular Canals" "Interior Wide Corner" 1 "NULL" "-200,56,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_corner.mdl" "Modular Canals" "Interior Wide Corner" 2 "NULL" "56,-200,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_corner2.mdl" "Modular Canals" "Interior Wide Corner2" 1 "NULL" "56,200,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_corner2.mdl" "Modular Canals" "Interior Wide Corner2" 2 "NULL" "-200,-56,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_stairs.mdl" "Modular Canals" "Interior Wide Stairs" 1 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_stairs.mdl" "Modular Canals" "Interior Wide Stairs" 2 "NULL" "-256,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_stairs_mirrored.mdl" "Modular Canals" "Interior Wide Stairs Mirrored" 1 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_stairs_mirrored.mdl" "Modular Canals" "Interior Wide Stairs Mirrored" 2 "NULL" "-256,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_tjunc_narrow.mdl" "Modular Canals" "Interior Wide Tjunc Narrow" 1 "NULL" "0,-144,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_tjunc_narrow.mdl" "Modular Canals" "Interior Wide Tjunc Narrow" 2 "NULL" "128,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_tjunc_narrow.mdl" "Modular Canals" "Interior Wide Tjunc Narrow" 3 "NULL" "-128,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc.mdl" "Modular Canals" "Interior Wide Xjunc" 1 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc.mdl" "Modular Canals" "Interior Wide Xjunc" 2 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc.mdl" "Modular Canals" "Interior Wide Xjunc" 3 "NULL" "-256,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc.mdl" "Modular Canals" "Interior Wide Xjunc" 4 "NULL" "0,256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc_narrow.mdl" "Modular Canals" "Interior Wide Xjunc Narrow" 1 "NULL" "128,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc_narrow.mdl" "Modular Canals" "Interior Wide Xjunc Narrow" 2 "NULL" "0,-144,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc_narrow.mdl" "Modular Canals" "Interior Wide Xjunc Narrow" 3 "NULL" "-128,0,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_d47_canals/interior_wide_xjunc_narrow.mdl" "Modular Canals" "Interior Wide Xjunc Narrow" 4 "NULL" "0,144,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_ramp_street1024x768.mdl" "Modular City Street" "Highway Ramp Street1024x768" 1 "NULL" "0, 512, 120" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_ramp_street1024x768.mdl" "Modular City Street" "Highway Ramp Street1024x768" 2 "NULL" "0,-512,-120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_ramp_street2048x768_tall.mdl" "Modular City Street" "Highway Ramp Street2048x768 Tall" 1 "NULL" "0, 1024, 248" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_ramp_street2048x768_tall.mdl" "Modular City Street" "Highway Ramp Street2048x768 Tall" 2 "NULL" "0,-1024,-248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_ramp_street768_short_tall_connector.mdl" "Modular City Street" "Highway Ramp Street768 Short Tall Connector" 1 "NULL" " 512,0,-8" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_ramp_street768_short_tall_connector.mdl" "Modular City Street" "Highway Ramp Street768 Short Tall Connector" 2 "NULL" "-512,0,248" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street1024x768.mdl" "Modular City Street" "Highway Street1024x768" 1 "NULL" "0,512,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street1024x768.mdl" "Modular City Street" "Highway Street1024x768" 2 "NULL" "0,-512,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street1024x768_overpass.mdl" "Modular City Street" "Highway Street1024x768 Overpass" 1 "NULL" "0,512,40" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street1024x768_overpass.mdl" "Modular City Street" "Highway Street1024x768 Overpass" 2 "NULL" "0,-512,40" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street1024x768_tall.mdl" "Modular City Street" "Highway Street1024x768 Tall" 1 "NULL" "0,512,248" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street1024x768_tall.mdl" "Modular City Street" "Highway Street1024x768 Tall" 2 "NULL" "0,-512,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street2048x768.mdl" "Modular City Street" "Highway Street2048x768" 1 "NULL" "0,1024,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street2048x768.mdl" "Modular City Street" "Highway Street2048x768" 2 "NULL" "0,-1024,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street2048x768_overpass.mdl" "Modular City Street" "Highway Street2048x768 Overpass" 1 "NULL" "0,1024,40" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street2048x768_overpass.mdl" "Modular City Street" "Highway Street2048x768 Overpass" 2 "NULL" "0,-1024,40" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street2048x768_tall.mdl" "Modular City Street" "Highway Street2048x768 Tall" 1 "NULL" "0,1024,248" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street2048x768_tall.mdl" "Modular City Street" "Highway Street2048x768 Tall" 2 "NULL" "0,-1024,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street256x768.mdl" "Modular City Street" "Highway Street256x768" 1 "NULL" "0,64,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street256x768.mdl" "Modular City Street" "Highway Street256x768" 2 "NULL" "0,-64,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street256x768_overpass.mdl" "Modular City Street" "Highway Street256x768 Overpass" 1 "NULL" "0,64,40" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street256x768_overpass.mdl" "Modular City Street" "Highway Street256x768 Overpass" 2 "NULL" "0,-64,40" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street256x768_tall.mdl" "Modular City Street" "Highway Street256x768 Tall" 1 "NULL" "0,64,248" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street256x768_tall.mdl" "Modular City Street" "Highway Street256x768 Tall" 2 "NULL" "0,-64,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street512x768.mdl" "Modular City Street" "Highway Street512x768" 1 "NULL" "0,256,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street512x768.mdl" "Modular City Street" "Highway Street512x768" 2 "NULL" "0,-256,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street512x768_overpass.mdl" "Modular City Street" "Highway Street512x768 Overpass" 1 "NULL" "0,256,40" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street512x768_overpass.mdl" "Modular City Street" "Highway Street512x768 Overpass" 2 "NULL" "0,-256,40" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street512x768_tall.mdl" "Modular City Street" "Highway Street512x768 Tall" 1 "NULL" "0,256,248" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street512x768_tall.mdl" "Modular City Street" "Highway Street512x768 Tall" 2 "NULL" "0,-256,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street768x768.mdl" "Modular City Street" "Highway Street768x768" 1 "NULL" "0,384,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street768x768.mdl" "Modular City Street" "Highway Street768x768" 2 "NULL" "0,-384,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street768x768_overpass.mdl" "Modular City Street" "Highway Street768x768 Overpass" 1 "NULL" "0,384,40" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street768x768_overpass.mdl" "Modular City Street" "Highway Street768x768 Overpass" 2 "NULL" "0,-384,40" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street768x768_tall.mdl" "Modular City Street" "Highway Street768x768 Tall" 1 "NULL" "0,384,248" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street768x768_tall.mdl" "Modular City Street" "Highway Street768x768 Tall" 2 "NULL" "0,-384,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_1024turn.mdl" "Modular City Street" "Highway Street 1024turn" 1 "NULL" "1024,512,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_1024turn.mdl" "Modular City Street" "Highway Street 1024turn" 2 "NULL" "-512,-1024,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_1024turn_tall.mdl" "Modular City Street" "Highway Street 1024turn Tall" 1 "NULL" "1024,512,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_1024turn_tall.mdl" "Modular City Street" "Highway Street 1024turn Tall" 2 "NULL" "-512,-1024,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_256turn.mdl" "Modular City Street" "Highway Street 256turn" 1 "NULL" "256,128,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_256turn.mdl" "Modular City Street" "Highway Street 256turn" 2 "NULL" "-128,-256,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_256turn_tall.mdl" "Modular City Street" "Highway Street 256turn Tall" 1 "NULL" "256,128,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_256turn_tall.mdl" "Modular City Street" "Highway Street 256turn Tall" 2 "NULL" "-128,-256,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_512turn.mdl" "Modular City Street" "Highway Street 512turn" 1 "NULL" "512,256,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_512turn.mdl" "Modular City Street" "Highway Street 512turn" 2 "NULL" "-256,-512,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_512turn_tall.mdl" "Modular City Street" "Highway Street 512turn Tall" 1 "NULL" "512,256,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_512turn_tall.mdl" "Modular City Street" "Highway Street 512turn Tall" 2 "NULL" "-256,-512,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector.mdl" "Modular City Street" "Highway Street 768rampconnector" 1 "NULL" " 384,-384,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector.mdl" "Modular City Street" "Highway Street 768rampconnector" 2 "NULL" "-384, 384,120" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector.mdl" "Modular City Street" "Highway Street 768rampconnector" 3 "NULL" "-384,-384,120" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double.mdl" "Modular City Street" "Highway Street 768rampconnector Double" 1 "NULL" " 384,-384,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double.mdl" "Modular City Street" "Highway Street 768rampconnector Double" 2 "NULL" " 384, 384,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double.mdl" "Modular City Street" "Highway Street 768rampconnector Double" 3 "NULL" "-384, 384,120" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double.mdl" "Modular City Street" "Highway Street 768rampconnector Double" 4 "NULL" "-384,-384,120" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Double Tall" 1 "NULL" " 384,-384,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Double Tall" 2 "NULL" " 384, 384,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Double Tall" 3 "NULL" "-384, 384,248" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_double_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Double Tall" 4 "NULL" "-384,-384,248" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_mirrored.mdl" "Modular City Street" "Highway Street 768rampconnector Mirrored" 1 "NULL" " 384,-384,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_mirrored.mdl" "Modular City Street" "Highway Street 768rampconnector Mirrored" 2 "NULL" " 384, 384,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_mirrored.mdl" "Modular City Street" "Highway Street 768rampconnector Mirrored" 3 "NULL" "-384,-384,120" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_mirrored_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Mirrored Tall" 1 "NULL" " 384,-384,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_mirrored_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Mirrored Tall" 2 "NULL" " 384, 384,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_mirrored_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Mirrored Tall" 3 "NULL" "-384,-384,248" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Tall" 1 "NULL" " 384,-384,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Tall" 2 "NULL" "-384, 384,248" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768rampconnector_tall.mdl" "Modular City Street" "Highway Street 768rampconnector Tall" 3 "NULL" "-384,-384,248" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768turn.mdl" "Modular City Street" "Highway Street 768turn" 1 "NULL" "768,384,120" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768turn.mdl" "Modular City Street" "Highway Street 768turn" 2 "NULL" "-384,-768,120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768turn_tall.mdl" "Modular City Street" "Highway Street 768turn Tall" 1 "NULL" "768,384,248" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/highway_street_768turn_tall.mdl" "Modular City Street" "Highway Street 768turn Tall" 2 "NULL" "-384,-768,248" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512.mdl" "Modular City Street" "Street1024x512" 1 "NULL" "0,-512,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512.mdl" "Modular City Street" "Street1024x512" 2 "NULL" "0, 512,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated128high.mdl" "Modular City Street" "Street1024x512 Elevated128high" 1 "NULL" "0,512,56" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated128high.mdl" "Modular City Street" "Street1024x512 Elevated128high" 2 "NULL" "0,-512,-56" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated192high.mdl" "Modular City Street" "Street1024x512 Elevated192high" 1 "NULL" "0,512,88" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated192high.mdl" "Modular City Street" "Street1024x512 Elevated192high" 2 "NULL" "0,-512,-88" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated256high.mdl" "Modular City Street" "Street1024x512 Elevated256high" 1 "NULL" "0,512,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated256high.mdl" "Modular City Street" "Street1024x512 Elevated256high" 2 "NULL" "0,-512,-120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated64high.mdl" "Modular City Street" "Street1024x512 Elevated64high" 1 "NULL" "0,512,24" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x512_elevated64high.mdl" "Modular City Street" "Street1024x512 Elevated64high" 2 "NULL" "0,-512,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768.mdl" "Modular City Street" "Street1024x768" 1 "NULL" "0,-512,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768.mdl" "Modular City Street" "Street1024x768" 2 "NULL" "0, 512,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated128high.mdl" "Modular City Street" "Street1024x768 Elevated128high" 1 "NULL" "0,512,56" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated128high.mdl" "Modular City Street" "Street1024x768 Elevated128high" 2 "NULL" "0,-512,-56" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated192high.mdl" "Modular City Street" "Street1024x768 Elevated192high" 1 "NULL" "0,512,88" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated192high.mdl" "Modular City Street" "Street1024x768 Elevated192high" 2 "NULL" "0,-512,-88" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated256high.mdl" "Modular City Street" "Street1024x768 Elevated256high" 1 "NULL" "0,512,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated256high.mdl" "Modular City Street" "Street1024x768 Elevated256high" 2 "NULL" "0,-512,-120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated64high.mdl" "Modular City Street" "Street1024x768 Elevated64high" 1 "NULL" "0,512,24" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street1024x768_elevated64high.mdl" "Modular City Street" "Street1024x768 Elevated64high" 2 "NULL" "0,-512,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x512.mdl" "Modular City Street" "Street128x512" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x512.mdl" "Modular City Street" "Street128x512" 2 "NULL" "0, 64,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x512_crosswalk.mdl" "Modular City Street" "Street128x512 Crosswalk" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x512_crosswalk.mdl" "Modular City Street" "Street128x512 Crosswalk" 2 "NULL" "0, 64,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x768.mdl" "Modular City Street" "Street128x768" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x768.mdl" "Modular City Street" "Street128x768" 2 "NULL" "0, 64,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x768_crosswalk.mdl" "Modular City Street" "Street128x768 Crosswalk" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street128x768_crosswalk.mdl" "Modular City Street" "Street128x768 Crosswalk" 2 "NULL" "0, 64,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street2048x512.mdl" "Modular City Street" "Street2048x512" 1 "NULL" "0,-1024,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street2048x512.mdl" "Modular City Street" "Street2048x512" 2 "NULL" "0, 1024,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street2048x768.mdl" "Modular City Street" "Street2048x768" 1 "NULL" "0,-1024,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street2048x768.mdl" "Modular City Street" "Street2048x768" 2 "NULL" "0, 1024,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street256x512.mdl" "Modular City Street" "Street256x512" 1 "NULL" "0,-128,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street256x512.mdl" "Modular City Street" "Street256x512" 2 "NULL" "0, 128,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street256x768.mdl" "Modular City Street" "Street256x768" 1 "NULL" "0,-128,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street256x768.mdl" "Modular City Street" "Street256x768" 2 "NULL" "0, 128,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512_endcap_fancy1.mdl" "Modular City Street" "Street512 Endcap Fancy1" 1 "NULL" "0,-128,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512_endcap_fancy2.mdl" "Modular City Street" "Street512 Endcap Fancy2" 1 "NULL" "0,-128,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512_endcap_simple1.mdl" "Modular City Street" "Street512 Endcap Simple1" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512_endcap_simple2.mdl" "Modular City Street" "Street512 Endcap Simple2" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512.mdl" "Modular City Street" "Street512x512" 1 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512.mdl" "Modular City Street" "Street512x512" 2 "NULL" "0, 256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_concrete_to_stone_connector1.mdl" "Modular City Street" "Street512x512 Concrete To Stone Connector1" 1 "NULL" "0, 256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_concrete_to_stone_connector1.mdl" "Modular City Street" "Street512x512 Concrete To Stone Connector1" 2 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_concrete_to_stone_connector1.mdl" "Modular City Street" "Street512x512 Concrete To Stone Connector1" 3 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_concrete_to_stone_connector2.mdl" "Modular City Street" "Street512x512 Concrete To Stone Connector2" 1 "NULL" "0, 256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_concrete_to_stone_connector2.mdl" "Modular City Street" "Street512x512 Concrete To Stone Connector2" 2 "NULL" "-256,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_concrete_to_stone_connector2.mdl" "Modular City Street" "Street512x512 Concrete To Stone Connector2" 3 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_concrete_to_stone_connector2.mdl" "Modular City Street" "Street512x512 Concrete To Stone Connector2" 4 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated128high.mdl" "Modular City Street" "Street512x512 Elevated128high" 1 "NULL" "0,256,56" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated128high.mdl" "Modular City Street" "Street512x512 Elevated128high" 2 "NULL" "0,-256,-56" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated192high.mdl" "Modular City Street" "Street512x512 Elevated192high" 1 "NULL" "0,256,88" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated192high.mdl" "Modular City Street" "Street512x512 Elevated192high" 2 "NULL" "0,-256,-88" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated256high.mdl" "Modular City Street" "Street512x512 Elevated256high" 1 "NULL" "0,256,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated256high.mdl" "Modular City Street" "Street512x512 Elevated256high" 2 "NULL" "0,-256,-120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated64high.mdl" "Modular City Street" "Street512x512 Elevated64high" 1 "NULL" "0,256,24" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x512_elevated64high.mdl" "Modular City Street" "Street512x512 Elevated64high" 2 "NULL" "0,-256,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768.mdl" "Modular City Street" "Street512x768" 1 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768.mdl" "Modular City Street" "Street512x768" 2 "NULL" "0, 256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated128high.mdl" "Modular City Street" "Street512x768 Elevated128high" 1 "NULL" "0,256,56" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated128high.mdl" "Modular City Street" "Street512x768 Elevated128high" 2 "NULL" "0,-256,-56" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated192high.mdl" "Modular City Street" "Street512x768 Elevated192high" 1 "NULL" "0,256,88" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated192high.mdl" "Modular City Street" "Street512x768 Elevated192high" 2 "NULL" "0,-256,-88" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated256high.mdl" "Modular City Street" "Street512x768 Elevated256high" 1 "NULL" "0,256,120" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated256high.mdl" "Modular City Street" "Street512x768 Elevated256high" 2 "NULL" "0,-256,-120" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated64high.mdl" "Modular City Street" "Street512x768 Elevated64high" 1 "NULL" "0,256,24" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street512x768_elevated64high.mdl" "Modular City Street" "Street512x768 Elevated64high" 2 "NULL" "0,-256,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street64x512.mdl" "Modular City Street" "Street64x512" 1 "NULL" "0,-32,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street64x512.mdl" "Modular City Street" "Street64x512" 2 "NULL" "0, 32,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street64x768.mdl" "Modular City Street" "Street64x768" 1 "NULL" "0,-32,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street64x768.mdl" "Modular City Street" "Street64x768" 2 "NULL" "0, 32,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768_endcap_fancy1.mdl" "Modular City Street" "Street768 Endcap Fancy1" 1 "NULL" "0,-192,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768_endcap_fancy2.mdl" "Modular City Street" "Street768 Endcap Fancy2" 1 "NULL" "0,-192,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768_endcap_simple1.mdl" "Modular City Street" "Street768 Endcap Simple1" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768_endcap_simple2.mdl" "Modular City Street" "Street768 Endcap Simple2" 1 "NULL" "0,-64,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768_fork.mdl" "Modular City Street" "Street768 Fork" 1 "NULL" "0,-655,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768_fork.mdl" "Modular City Street" "Street768 Fork" 2 "NULL" " 994,655,-0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768_fork.mdl" "Modular City Street" "Street768 Fork" 3 "NULL" "-994,655,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x512.mdl" "Modular City Street" "Street768x512" 1 "NULL" "0,-384,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x512.mdl" "Modular City Street" "Street768x512" 2 "NULL" "0, 384,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768.mdl" "Modular City Street" "Street768x768" 1 "NULL" "0,-384,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768.mdl" "Modular City Street" "Street768x768" 2 "NULL" "0, 384,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768_concrete_to_stone_connector1.mdl" "Modular City Street" "Street768x768 Concrete To Stone Connector1" 1 "NULL" "0, 384,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768_concrete_to_stone_connector1.mdl" "Modular City Street" "Street768x768 Concrete To Stone Connector1" 2 "NULL" "0,-384,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768_concrete_to_stone_connector1.mdl" "Modular City Street" "Street768x768 Concrete To Stone Connector1" 3 "NULL" "384,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768_concrete_to_stone_connector2.mdl" "Modular City Street" "Street768x768 Concrete To Stone Connector2" 1 "NULL" "0, 384,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768_concrete_to_stone_connector2.mdl" "Modular City Street" "Street768x768 Concrete To Stone Connector2" 2 "NULL" "-384,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768_concrete_to_stone_connector2.mdl" "Modular City Street" "Street768x768 Concrete To Stone Connector2" 3 "NULL" "0,-384,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street768x768_concrete_to_stone_connector2.mdl" "Modular City Street" "Street768x768 Concrete To Stone Connector2" 4 "NULL" "384,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection512x512.mdl" "Modular City Street" "Street 4wayintersection512x512" 1 "NULL" "0, 256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection512x512.mdl" "Modular City Street" "Street 4wayintersection512x512" 2 "NULL" "-256,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection512x512.mdl" "Modular City Street" "Street 4wayintersection512x512" 3 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection512x512.mdl" "Modular City Street" "Street 4wayintersection512x512" 4 "NULL" "256,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection768x768.mdl" "Modular City Street" "Street 4wayintersection768x768" 1 "NULL" "0, 384,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection768x768.mdl" "Modular City Street" "Street 4wayintersection768x768" 2 "NULL" "-384,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection768x768.mdl" "Modular City Street" "Street 4wayintersection768x768" 3 "NULL" "0,-384,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_4wayintersection768x768.mdl" "Modular City Street" "Street 4wayintersection768x768" 4 "NULL" "384,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_512_to_768_connector1.mdl" "Modular City Street" "Street 512 To 768 Connector1" 1 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_512_to_768_connector1.mdl" "Modular City Street" "Street 512 To 768 Connector1" 2 "NULL" "384, 0, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_512_to_768_connector1.mdl" "Modular City Street" "Street 512 To 768 Connector1" 3 "NULL" "0, 256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_512_to_768_connector2.mdl" "Modular City Street" "Street 512 To 768 Connector2" 1 "NULL" "0, 256,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_512_to_768_connector2.mdl" "Modular City Street" "Street 512 To 768 Connector2" 2 "NULL" "-384,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_512_to_768_connector2.mdl" "Modular City Street" "Street 512 To 768 Connector2" 3 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_512_to_768_connector2.mdl" "Modular City Street" "Street 512 To 768 Connector2" 4 "NULL" "384,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_tjunction512x512.mdl" "Modular City Street" "Street Tjunction512x512" 1 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_tjunction512x512.mdl" "Modular City Street" "Street Tjunction512x512" 2 "NULL" "256, 0, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_tjunction512x512.mdl" "Modular City Street" "Street Tjunction512x512" 3 "NULL" "-256, 0, 0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_tjunction768x768.mdl" "Modular City Street" "Street Tjunction768x768" 1 "NULL" "0,-384,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_tjunction768x768.mdl" "Modular City Street" "Street Tjunction768x768" 2 "NULL" "384, 0, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_tjunction768x768.mdl" "Modular City Street" "Street Tjunction768x768" 3 "NULL" "-384,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_turn512x512.mdl" "Modular City Street" "Street Turn512x512" 1 "NULL" "0,-256,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_turn512x512.mdl" "Modular City Street" "Street Turn512x512" 2 "NULL" "256, 0, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_turn768x768.mdl" "Modular City Street" "Street Turn768x768" 1 "NULL" "0,-384,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/propper/dingles_modular_streets/street_turn768x768.mdl" "Modular City Street" "Street Turn768x768" 2 "NULL" "384, 0, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelcap.mdl" "Modular Sewer" "Cap" 1 "NULL" "113.96,0,1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelexit.mdl" "Modular Sewer" "Exit" 1 "NULL" "-2.657,0,1" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunneli.mdl" "Modular Sewer" "I" 1 "NULL" " 113.96,0,1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunneli.mdl" "Modular Sewer" "I" 2 "NULL" "-113.96,0,1" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelr.mdl" "Modular Sewer" "R" 1 "NULL" "0.08838,0.09961,1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelr.mdl" "Modular Sewer" "R" 2 "NULL" "-113.87988,114.07129,1" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelt.mdl" "Modular Sewer" "T" 1 "NULL" " 113.96,0,1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelt.mdl" "Modular Sewer" "T" 2 "NULL" "0,-113.96,1" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelt.mdl" "Modular Sewer" "T" 3 "NULL" "-113.96,0,1" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelx.mdl" "Modular Sewer" "X" 1 "NULL" "113.96,0,1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelx.mdl" "Modular Sewer" "X" 2 "NULL" "0,113.96,1" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelx.mdl" "Modular Sewer" "X" 3 "NULL" "0,-113.96,1" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/sewerpack/sewertunnelx.mdl" "Modular Sewer" "X" 4 "NULL" "-113.96,0,1" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_cross_128.mdl" "Mr.Train's G-Gauge" "Cross 128" 1 "NULL" " 64, 0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_cross_128.mdl" "Mr.Train's G-Gauge" "Cross 128" 2 "NULL" " 0 , 64,1.516" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_cross_128.mdl" "Mr.Train's G-Gauge" "Cross 128" 3 "NULL" "-64, 0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_cross_128.mdl" "Mr.Train's G-Gauge" "Cross 128" 4 "NULL" " 0 ,-64,1.516" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_ramp_1.mdl" "Mr.Train's G-Gauge" "Ramp 1" 1 "NULL" " 16,0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_ramp_1.mdl" "Mr.Train's G-Gauge" "Ramp 1" 2 "NULL" "-16,0,3.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_ramp_2.mdl" "Mr.Train's G-Gauge" "Ramp 2" 1 "NULL" " 16,0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_ramp_2.mdl" "Mr.Train's G-Gauge" "Ramp 2" 2 "NULL" "-16,0,4.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_ramp_3.mdl" "Mr.Train's G-Gauge" "Ramp 3" 1 "NULL" " 16,0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_ramp_3.mdl" "Mr.Train's G-Gauge" "Ramp 3" 2 "NULL" "-16,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_s_left_22_5.mdl" "Mr.Train's G-Gauge" "S Left 22 5" 1 "NULL" " 256, 39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_s_left_22_5.mdl" "Mr.Train's G-Gauge" "S Left 22 5" 2 "NULL" "-256,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_s_right_22_5.mdl" "Mr.Train's G-Gauge" "S Right 22 5" 1 "NULL" " 256,-39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_s_right_22_5.mdl" "Mr.Train's G-Gauge" "S Right 22 5" 2 "NULL" "-256, 39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_1024.mdl" "Mr.Train's G-Gauge" "Straight 1024" 1 "NULL" " 512, 0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_1024.mdl" "Mr.Train's G-Gauge" "Straight 1024" 2 "NULL" "-512, 0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_128.mdl" "Mr.Train's G-Gauge" "Straight 128" 1 "NULL" " 64,0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_128.mdl" "Mr.Train's G-Gauge" "Straight 128" 2 "NULL" "-64,0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_2048.mdl" "Mr.Train's G-Gauge" "Straight 2048" 1 "NULL" " 1024,0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_2048.mdl" "Mr.Train's G-Gauge" "Straight 2048" 2 "NULL" "-1024,0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_256.mdl" "Mr.Train's G-Gauge" "Straight 256" 1 "NULL" " 128, 0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_256.mdl" "Mr.Train's G-Gauge" "Straight 256" 2 "NULL" "-128, 0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_32.mdl" "Mr.Train's G-Gauge" "Straight 32" 1 "NULL" " 16,0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_32.mdl" "Mr.Train's G-Gauge" "Straight 32" 2 "NULL" "-16,0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_512.mdl" "Mr.Train's G-Gauge" "Straight 512" 1 "NULL" " 256, 0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_512.mdl" "Mr.Train's G-Gauge" "Straight 512" 2 "NULL" "-256, 0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_64.mdl" "Mr.Train's G-Gauge" "Straight 64" 1 "NULL" " 32,0,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_straight_64.mdl" "Mr.Train's G-Gauge" "Straight 64" 2 "NULL" "-32,0,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl" "Mr.Train's G-Gauge" "Switch 1 Left 1" 1 "NULL" " 256,39 ,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl" "Mr.Train's G-Gauge" "Switch 1 Left 1" 2 "NULL" " 0,39 ,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl" "Mr.Train's G-Gauge" "Switch 1 Left 1" 3 "NULL" "-256,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl" "Mr.Train's G-Gauge" "Switch 1 Left 2" 1 "NULL" " 256,39 ,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl" "Mr.Train's G-Gauge" "Switch 1 Left 2" 2 "NULL" " 0,39 ,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl" "Mr.Train's G-Gauge" "Switch 1 Left 2" 3 "NULL" "-256,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl" "Mr.Train's G-Gauge" "Switch 1 Right 1" 1 "NULL" " 256,-39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl" "Mr.Train's G-Gauge" "Switch 1 Right 1" 2 "NULL" " 0,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl" "Mr.Train's G-Gauge" "Switch 1 Right 1" 3 "NULL" "-256, 39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl" "Mr.Train's G-Gauge" "Switch 1 Right 2" 1 "NULL" " 256,-39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl" "Mr.Train's G-Gauge" "Switch 1 Right 2" 2 "NULL" " 0,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl" "Mr.Train's G-Gauge" "Switch 1 Right 2" 3 "NULL" "-256, 39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 1" 1 "NULL" "195.938,39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 1" 2 "NULL" "195.938,-39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 1" 3 "NULL" "-195.937,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 1" 4 "NULL" "-195.937,39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 2" 1 "NULL" "195.938,39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 2" 2 "NULL" "195.938,-39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 2" 3 "NULL" "-195.937,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Left 2" 4 "NULL" "-195.937,39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 1" 1 "NULL" "195.938,39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 1" 2 "NULL" "195.938,-39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 1" 3 "NULL" "-195.937,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 1" 4 "NULL" "-195.937,39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 2" 1 "NULL" "195.938,39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 2" 2 "NULL" "195.938,-39,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 2" 3 "NULL" "-195.937,-39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl" "Mr.Train's G-Gauge" "Switch 2 Right 2" 4 "NULL" "-195.937,39,1.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_left_22_5.mdl" "Mr.Train's G-Gauge" "Turn Left 22 5" 1 "NULL" "263.75, 248.25,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_left_22_5.mdl" "Mr.Train's G-Gauge" "Turn Left 22 5" 2 "NULL" "67.855,209.265,1.516" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_left_45.mdl" "Mr.Train's G-Gauge" "Turn Left 45" 1 "NULL" "263.75, 248.25,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_left_45.mdl" "Mr.Train's G-Gauge" "Turn Left 45" 2 "NULL" "-98.326,98.323,1.516" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_left_90.mdl" "Mr.Train's G-Gauge" "Turn Left 90" 1 "NULL" "263.75, 248.25,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_left_90.mdl" "Mr.Train's G-Gauge" "Turn Left 90" 2 "NULL" "-248.25,-263.75,1.516" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_right_22_5.mdl" "Mr.Train's G-Gauge" "Turn Right 22 5" 1 "NULL" "263.75,-248.25,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_right_22_5.mdl" "Mr.Train's G-Gauge" "Turn Right 22 5" 2 "NULL" "67.872,-209.299,1.516" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_right_45.mdl" "Mr.Train's G-Gauge" "Turn Right 45" 1 "NULL" "263.75,-248.25,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_right_45.mdl" "Mr.Train's G-Gauge" "Turn Right 45" 2 "NULL" "-98.302,-98.302,1.516" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_right_90.mdl" "Mr.Train's G-Gauge" "Turn Right 90" 1 "NULL" "263.75,-248.25,1.516" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/g_gauge/track/g_gauge_track_turn_right_90.mdl" "Mr.Train's G-Gauge" "Turn Right 90" 2 "NULL" "-248.25,263.75,1.516" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_1024.mdl" "Mr.Train's M-Gauge" "Straight 1024" 1 "NULL" "512,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_1024.mdl" "Mr.Train's M-Gauge" "Straight 1024" 2 "NULL" "-512,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_128.mdl" "Mr.Train's M-Gauge" "Straight 128" 1 "NULL" "64,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_128.mdl" "Mr.Train's M-Gauge" "Straight 128" 2 "NULL" "-64,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_128_cross.mdl" "Mr.Train's M-Gauge" "Cross 128" 1 "NULL" "64,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_128_cross.mdl" "Mr.Train's M-Gauge" "Cross 128" 2 "NULL" "0,64,0.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_128_cross.mdl" "Mr.Train's M-Gauge" "Cross 128" 3 "NULL" "-64,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_128_cross.mdl" "Mr.Train's M-Gauge" "Cross 128" 4 "NULL" "0,-64,0.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_2048.mdl" "Mr.Train's M-Gauge" "Straight 2048" 1 "NULL" "1024,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_2048.mdl" "Mr.Train's M-Gauge" "Straight 2048" 2 "NULL" "-1024,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_256.mdl" "Mr.Train's M-Gauge" "Straight 256" 1 "NULL" "128,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_256.mdl" "Mr.Train's M-Gauge" "Straight 256" 2 "NULL" "-128,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_32.mdl" "Mr.Train's M-Gauge" "Straight 32" 1 "NULL" "16,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_32.mdl" "Mr.Train's M-Gauge" "Straight 32" 2 "NULL" "-16,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_4096.mdl" "Mr.Train's M-Gauge" "Straight 4096" 1 "NULL" "2048,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_4096.mdl" "Mr.Train's M-Gauge" "Straight 4096" 2 "NULL" "-2048,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_512.mdl" "Mr.Train's M-Gauge" "Straight 512" 1 "NULL" "256,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_512.mdl" "Mr.Train's M-Gauge" "Straight 512" 2 "NULL" "-256,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_64.mdl" "Mr.Train's M-Gauge" "Straight 64" 1 "NULL" "32,0,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_64.mdl" "Mr.Train's M-Gauge" "Straight 64" 2 "NULL" "-32,0,0.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_1024.mdl" "Mr.Train's M-Gauge" "Left 1024" 1 "NULL" "518.5,505.5,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_1024.mdl" "Mr.Train's M-Gauge" "Left 1024" 2 "NULL" "-505.5,-518.5,0.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_1024_45.mdl" "Mr.Train's M-Gauge" "Left 1024 45" 1 "NULL" "518.5,505.5,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_1024_45.mdl" "Mr.Train's M-Gauge" "Left 1024 45" 2 "NULL" "-205.608,205.607,0.014" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_256.mdl" "Mr.Train's M-Gauge" "Left 256" 1 "NULL" "134.497,121.499,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_256.mdl" "Mr.Train's M-Gauge" "Left 256" 2 "NULL" "-121.5,-134.5,0.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_512.mdl" "Mr.Train's M-Gauge" "Left 512" 1 "NULL" "262.5,249.5,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_512.mdl" "Mr.Train's M-Gauge" "Left 512" 2 "NULL" "-249.5,-262.5,0.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_512_45.mdl" "Mr.Train's M-Gauge" "Left 512 45" 1 "NULL" "262.5,-249.497,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_512_45.mdl" "Mr.Train's M-Gauge" "Left 512 45" 2 "NULL" "-99.51,-99.507,0.015" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_768.mdl" "Mr.Train's M-Gauge" "Left 768" 1 "NULL" "383.625,370.625,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_768.mdl" "Mr.Train's M-Gauge" "Left 768" 2 "NULL" "-370.625,-383.625,0.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_768_45.mdl" "Mr.Train's M-Gauge" "Left 768 45" 1 "NULL" "383.625,370.625,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_left_768_45.mdl" "Mr.Train's M-Gauge" "Left 768 45" 2 "NULL" "-149.73,149.729,0.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_1024.mdl" "Mr.Train's M-Gauge" "Right 1024" 1 "NULL" "518.5,-505.5,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_1024.mdl" "Mr.Train's M-Gauge" "Right 1024" 2 "NULL" "-505.5,518.5,0.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_1024_45.mdl" "Mr.Train's M-Gauge" "Right 1024 45" 1 "NULL" "518.5,-505.498,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_1024_45.mdl" "Mr.Train's M-Gauge" "Right 1024 45" 2 "NULL" "-205.621,-205.618,0.014" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_256.mdl" "Mr.Train's M-Gauge" "Right 256" 1 "NULL" "134.5,-121.5,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_256.mdl" "Mr.Train's M-Gauge" "Right 256" 2 "NULL" "-121.5,134.5,0.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_512.mdl" "Mr.Train's M-Gauge" "Right 512" 1 "NULL" "262.5,-249.5,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_512.mdl" "Mr.Train's M-Gauge" "Right 512" 2 "NULL" "-249.5,262.5,0.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_768.mdl" "Mr.Train's M-Gauge" "Right 768" 1 "NULL" "383.625,-370.625,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_768.mdl" "Mr.Train's M-Gauge" "Right 768" 2 "NULL" "-370.625,383.625,0.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_768_45.mdl" "Mr.Train's M-Gauge" "Right 768 45" 1 "NULL" "383.625,-370.625,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_right_768_45.mdl" "Mr.Train's M-Gauge" "Right 768 45" 2 "NULL" "-149.758,-149.751,0.012" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover.mdl" "Mr.Train's M-Gauge" "Switch Cross" 1 "NULL" "203,-75,-2.484" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover.mdl" "Mr.Train's M-Gauge" "Switch Cross" 2 "NULL" "203,75,-2.484" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover.mdl" "Mr.Train's M-Gauge" "Switch Cross" 3 "NULL" "-203,75,-2.484" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover.mdl" "Mr.Train's M-Gauge" "Switch Cross" 4 "NULL" "-203,-75,-2.484" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl" "Mr.Train's M-Gauge" "Switch Cross Sl" 1 "NULL" "75,-75,-2.484" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl" "Mr.Train's M-Gauge" "Switch Cross Sl" 2 "NULL" "203,75,-2.484" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl" "Mr.Train's M-Gauge" "Switch Cross Sl" 3 "NULL" "-75,75,-2.484" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl" "Mr.Train's M-Gauge" "Switch Cross Sl" 4 "NULL" "-203,-75,-2.484" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl" "Mr.Train's M-Gauge" "Switch Cross Sr" 1 "NULL" "203,-75,-2.484" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl" "Mr.Train's M-Gauge" "Switch Cross Sr" 2 "NULL" "75,75,-2.484" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl" "Mr.Train's M-Gauge" "Switch Cross Sr" 3 "NULL" "-203,75,-2.484" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl" "Mr.Train's M-Gauge" "Switch Cross Sr" 4 "NULL" "-75,-75,-2.485" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_lefthand.mdl" "Mr.Train's M-Gauge" "Switch Left" 1 "NULL" "0,-10,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_lefthand.mdl" "Mr.Train's M-Gauge" "Switch Left" 2 "NULL" "-256,-10,0.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_lefthand.mdl" "Mr.Train's M-Gauge" "Switch Left" 3 "NULL" "-384,-160,0.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_righthand.mdl" "Mr.Train's M-Gauge" "Switch Right" 1 "NULL" "0,10,0.016" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_righthand.mdl" "Mr.Train's M-Gauge" "Switch Right" 2 "NULL" "-384,160,0.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props/m_gauge/track/m_gauge_switch_righthand.mdl" "Mr.Train's M-Gauge" "Switch Right" 3 "NULL" "-256,10,0.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_1024.mdl" "PHX Metal" "Straight 1024" 1 "NULL" " 511.754761,-4.7e-005,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_1024.mdl" "PHX Metal" "Straight 1024" 2 "NULL" "-512.240601,-0.050828,9.215" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_128.mdl" "PHX Metal" "Straight 128" 1 "NULL" " 63.75531, 0.001953,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_128.mdl" "PHX Metal" "Straight 128" 2 "NULL" "-64.240356,-0.005125,9.215" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_2048.mdl" "PHX Metal" "Straight 2048" 1 "NULL" " 1023.755066,0.000642,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_2048.mdl" "PHX Metal" "Straight 2048" 2 "NULL" "-1024.242676,-0.109433,9.215" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_256.mdl" "PHX Metal" "Straight 256" 1 "NULL" " 127.754944, 0.001953,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_256.mdl" "PHX Metal" "Straight 256" 2 "NULL" " -128.245117,-0.012207,9.215" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_32.mdl" "PHX Metal" "Straight 32" 1 "-0.327,-61.529,8.714" " 15.755127,0.001953,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_32.mdl" "PHX Metal" "Straight 32" 2 "-0.327, 61.529,8.714" "-16.239746,0.000244,9.215" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_4096.mdl" "PHX Metal" "Straight 4096" 1 "NULL" " 2047.755249, 0.001923,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_4096.mdl" "PHX Metal" "Straight 4096" 2 "NULL" "-2048.240479,-0.225247,9.215" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_512.mdl" "PHX Metal" "Straight 512" 1 "NULL" " 255.754791, 0.001465,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_512.mdl" "PHX Metal" "Straight 512" 2 "NULL" "-256.242401,-0.026855,9.215" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_64.mdl" "PHX Metal" "Straight 64" 1 "NULL" " 31.999878, 0.001960,9.215" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/track_64.mdl" "PHX Metal" "Straight 64" 2 "NULL" "-32.000275,-0.001469,9.215" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail1.mdl" "PHX Monorail" "Straight Short" 1 "NULL" "229.885559,0.23999,13.87915" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail1.mdl" "PHX Monorail" "Straight Short" 2 "NULL" "-228.885254,0.239726,13.87915" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail2.mdl" "PHX Monorail" "Straight Middle" 1 "NULL" "0.239726,-462.635468,13.879296" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail2.mdl" "PHX Monorail" "Straight Middle" 2 "NULL" "0.239914,464.885315,13.879209" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail3.mdl" "PHX Monorail" "Straight Long" 1 "NULL" "0.239949,-934.135559,13.879116" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail3.mdl" "PHX Monorail" "Straight Long" 2 "NULL" "0.239705, 930.885315,13.879150" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail4.mdl" "PHX Monorail" "Straight Very Long" 1 "NULL" "0.239664,-1867.13562,13.879143" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail4.mdl" "PHX Monorail" "Straight Very Long" 2 "NULL" "0.239664,1872.885376,13.879150" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail_curve.mdl" "PHX Monorail" "Turn 90" 1 "NULL" "-0.030518,-605.638184,13.880554" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail_curve.mdl" "PHX Monorail" "Turn 90" 2 "NULL" "-605.380859,-0.307583,13.881714" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail_curve2.mdl" "PHX Monorail" "Turn 45" 1 "NULL" "-0.030396,-605.638428,13.881409" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/monorail_curve2.mdl" "PHX Monorail" "Turn 45" 2 "NULL" "-428.018524,-428.362335,13.881714" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam1.mdl" "PHX Monorail Beam" "Iron Beam1" 1 "NULL" " 22.411, 0.001, 5.002" "0, 0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam1.mdl" "PHX Monorail Beam" "Iron Beam1" 2 "NULL" "-22.413, 0.001, 5.002" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam2.mdl" "PHX Monorail Beam" "Iron Beam2" 1 "NULL" " 45.298, 0.001, 5.002" "0, 0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam2.mdl" "PHX Monorail Beam" "Iron Beam2" 2 "NULL" "-46.968, 0.001, 5.002" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam3.mdl" "PHX Monorail Beam" "Iron Beam3" 1 "NULL" " 93.069, 0, 5.002" "0, 0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam3.mdl" "PHX Monorail Beam" "Iron Beam3" 2 "NULL" "-94.079, 0.002, 5.002" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam4.mdl" "PHX Monorail Beam" "Iron Beam4" 1 "NULL" " 175.507, 0.001, 5.002" "0, 0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/iron_beam4.mdl" "PHX Monorail Beam" "Iron Beam4" 2 "NULL" "-201.413, 0.001, 5.002" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_16x.mdl" "PHX Regular" "16x" 1 "NULL" "2029.79824,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_16x.mdl" "PHX Regular" "16x" 2 "NULL" "-370.03799,0,12.548828" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_1x.mdl" "PHX Regular" "1x" 1 "NULL" " 79.93032,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_1x.mdl" "PHX Regular" "1x" 2 "NULL" "-70.05904,0,12.548828" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_225_down.mdl" "PHX Regular" "225 Down" 1 "NULL" "-75.016,0,64.57" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_225_down.mdl" "PHX Regular" "225 Down" 2 "NULL" "4.096,0,48.791" "22.5,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_225_up.mdl" "PHX Regular" "225 Up" 1 "NULL" "-75.016,0,11.212" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_225_up.mdl" "PHX Regular" "225 Up" 2 "NULL" "4.16287,0,27.05461" "-22.5,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_2x.mdl" "PHX Regular" "2x" 1 "NULL" "229.92037,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_2x.mdl" "PHX Regular" "2x" 2 "NULL" "-70.05904,0,12.548828" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_45_down.mdl" "PHX Regular" "45 Down" 1 "-75.016,0,64.568" "-75.013,-0.002,64.568" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_45_down.mdl" "PHX Regular" "45 Down" 2 "NULL" "71.04594,0,3.95992" "45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_45_up.mdl" "PHX Regular" "45 Up" 1 "NULL" "-75.013,0,11.218" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_45_up.mdl" "PHX Regular" "45 Up" 2 "NULL" "71.173,0,71.909" "-45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_4x.mdl" "PHX Regular" "4x" 1 "NULL" "229.92037,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_4x.mdl" "PHX Regular" "4x" 2 "NULL" "-370.03808,0,12.548828" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_8x.mdl" "PHX Regular" "8x" 1 "NULL" "829.87936,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_8x.mdl" "PHX Regular" "8x" 2 "NULL" "-370.03805,0,12.548828" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_crossing.mdl" "PHX Regular" "Cross 90" 1 "NULL" "74.97414,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_crossing.mdl" "PHX Regular" "Cross 90" 2 "NULL" "-0.02246,74.99988,12.548828" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_crossing.mdl" "PHX Regular" "Cross 90" 3 "NULL" "-75.01485,0,12.548828" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_crossing.mdl" "PHX Regular" "Cross 90" 4 "NULL" "-0.02246,-74.987,12.548828" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_pass.mdl" "PHX Regular" "Cross Road" 1 "NULL" "229.92107,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_pass.mdl" "PHX Regular" "Cross Road" 2 "NULL" "-370.03738,0,12.548828" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_single.mdl" "PHX Regular" "Single" 1 "-0.327,-61.529,8.714" " 15.45284,0,12.548828" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_single.mdl" "PHX Regular" "Single" 2 "-0.327, 61.529,8.714" "-16.09597,0,12.548828" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_switch.mdl" "PHX Regular" "Switch Right" 1 "NULL" " 829.88009,0,11.218994" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_switch.mdl" "PHX Regular" "Switch Right" 2 "NULL" "-370.03738,0,11.218994" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_switch.mdl" "PHX Regular" "Switch Right" 3 "NULL" "-158.32591,338.09229,11.21899" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_switch2.mdl" "PHX Regular" "Switch Left [X]" 1 "NULL" " 829.88009,0,11.218994" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_switch2.mdl" "PHX Regular" "Switch Left [X]" 2 "NULL" "-370.03738,0,11.218994" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_switch2.mdl" "PHX Regular" "Switch Left [X]" 3 "NULL" "-158.32668,-338.09521,11.21899" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_turn45.mdl" "PHX Regular" "Turn 45" 1 "NULL" "733.00021,-265.36572,11.218994" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_turn45.mdl" "PHX Regular" "Turn 45" 2 "NULL" "-83.2627,72.74402,11.218994" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_turn90.mdl" "PHX Regular" "Turn 90" 1 "NULL" "733.00015,-265.36475,11.218994" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_turn90.mdl" "PHX Regular" "Turn 90" 2 "NULL" "-421.37549,889.00677,11.218994" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_x.mdl" "PHX Regular" "Cross 45" 1 "NULL" "250.47439,49.613525,11.214844" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_x.mdl" "PHX Regular" "Cross 45" 2 "NULL" "-261.62405,261.73975,11.214844" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_x.mdl" "PHX Regular" "Cross 45" 3 "NULL" "-349.48406,49.613525,11.214844" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/trains/tracks/track_x.mdl" "PHX Regular" "Cross 45" 4 "NULL" "162.61111,-162.49341,11.214844" "0,-45,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_curve.mdl" "PHX Road" "Road Curve" 1 "NULL" "162.813, 379.277, 1.879" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_curve.mdl" "PHX Road" "Road Curve" 2 "NULL" "-363.22, -146.757, 1.879" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_long.mdl" "PHX Road" "Road Long" 1 "NULL" "0, 1198.773, 1.765" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_long.mdl" "PHX Road" "Road Long" 2 "NULL" "0,-1198.773, 1.765" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_medium.mdl" "PHX Road" "Road Medium" 1 "NULL" "0, 599.386, 1.765" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_medium.mdl" "PHX Road" "Road Medium" 2 "NULL" "0,-599.386, 1.765" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_short.mdl" "PHX Road" "Road Short" 1 "NULL" "0, 299.693, 1.765" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/huge/road_short.mdl" "PHX Road" "Road Short" 2 "NULL" "0,-299.693, 1.765" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/big_ramp.mdl" "PHX Road" "Big Ramp" 1 "NULL" "-569.177, -7.199953, -3.075" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/big_ramp.mdl" "PHX Road" "Big Ramp" 2 "NULL" "625.022, -7.199953, 472.427" "-45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/small_ramp.mdl" "PHX Road" "Small Ramp" 1 "NULL" "-284.589, -3.599976, -1.672" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/misc/small_ramp.mdl" "PHX Road" "Small Ramp" 2 "NULL" " 312.608, -3.599976, 236.11" "-45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_angle180.mdl" "PHX Tubes Miscellaneous" "Glass Angle180" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_angle180.mdl" "PHX Tubes Miscellaneous" "Glass Angle180" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_angle360.mdl" "PHX Tubes Miscellaneous" "Glass Angle360" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_angle360.mdl" "PHX Tubes Miscellaneous" "Glass Angle360" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_angle90.mdl" "PHX Tubes Miscellaneous" "Glass Angle90" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_angle90.mdl" "PHX Tubes Miscellaneous" "Glass Angle90" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve180x1.mdl" "PHX Tubes Miscellaneous" "Glass Curve180x1" 1 "NULL" "31.222,33.667,47.543" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve180x1.mdl" "PHX Tubes Miscellaneous" "Glass Curve180x1" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve180x2.mdl" "PHX Tubes Miscellaneous" "Glass Curve180x2" 1 "NULL" "31.222,33.668,94.993" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve180x2.mdl" "PHX Tubes Miscellaneous" "Glass Curve180x2" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve360x1.mdl" "PHX Tubes Miscellaneous" "Glass Curve360x1" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve360x1.mdl" "PHX Tubes Miscellaneous" "Glass Curve360x1" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve360x2.mdl" "PHX Tubes Miscellaneous" "Glass Curve360x2" 1 "NULL" "0.02,0,95.076" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve360x2.mdl" "PHX Tubes Miscellaneous" "Glass Curve360x2" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve90x1.mdl" "PHX Tubes Miscellaneous" "Glass Curve90x1" 1 "NULL" "31.246,33.667,47.541" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve90x1.mdl" "PHX Tubes Miscellaneous" "Glass Curve90x1" 2 "NULL" "31.222,33.69,0.095" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve90x2.mdl" "PHX Tubes Miscellaneous" "Glass Curve90x2" 1 "NULL" "31.246,33.667,95.083" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_curve90x2.mdl" "PHX Tubes Miscellaneous" "Glass Curve90x2" 2 "NULL" "31.241,33.671,0.183" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_dome180.mdl" "PHX Tubes Miscellaneous" "Glass Dome180" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_dome360.mdl" "PHX Tubes Miscellaneous" "Glass Dome360" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/glass/glass_dome90.mdl" "PHX Tubes Miscellaneous" "Glass Dome90" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_angle180.mdl" "PHX Tubes Miscellaneous" "Metal Angle180" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_angle180.mdl" "PHX Tubes Miscellaneous" "Metal Angle180" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_angle360.mdl" "PHX Tubes Miscellaneous" "Metal Angle360" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_angle360.mdl" "PHX Tubes Miscellaneous" "Metal Angle360" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_angle90.mdl" "PHX Tubes Miscellaneous" "Metal Angle90" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_angle90.mdl" "PHX Tubes Miscellaneous" "Metal Angle90" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_dome180.mdl" "PHX Tubes Miscellaneous" "Metal Dome180" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_dome360.mdl" "PHX Tubes Miscellaneous" "Metal Dome360" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_dome90.mdl" "PHX Tubes Miscellaneous" "Metal Dome90" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve" 1 "NULL" "31.246,33.667,47.541" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve" 2 "NULL" "31.222,33.69,0.095" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve180.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve180" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve180.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve180" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve180x2.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve180x2" 1 "NULL" "0.02,0,95.081" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve180x2.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve180x2" 2 "NULL" "0.02,0,0.089" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve2x2.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve2x2" 1 "NULL" "31.246,33.667,95.083" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve2x2.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve2x2" 2 "NULL" "31.241,33.671,0.183" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve360.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve360" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve360.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve360" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve360x2.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve360x2" 1 "NULL" "0.02,0,95.076" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_plate_curve360x2.mdl" "PHX Tubes Miscellaneous" "Metal Plate Curve360x2" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle180x1.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle180x1" 1 "NULL" "31.222,33.667,47.543" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle180x1.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle180x1" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle180x2.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle180x2" 1 "NULL" "31.222,33.668,94.993" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle180x2.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle180x2" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle360x1.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle360x1" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle360x1.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle360x1" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle360x2.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle360x2" 1 "NULL" "0.02,0,95.076" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle360x2.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle360x2" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle90x1.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle90x1" 1 "NULL" "31.246,33.667,47.541" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle90x1.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle90x1" 2 "NULL" "31.222,33.69,0.095" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle90x2.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle90x2" 1 "NULL" "31.246,33.667,95.083" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/metal_wire_angle90x2.mdl" "PHX Tubes Miscellaneous" "Metal Wire Angle90x2" 2 "NULL" "31.241,33.671,0.183" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_angle180.mdl" "PHX Tubes Miscellaneous" "Window Angle180" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_angle180.mdl" "PHX Tubes Miscellaneous" "Window Angle180" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_angle360.mdl" "PHX Tubes Miscellaneous" "Window Angle360" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_angle360.mdl" "PHX Tubes Miscellaneous" "Window Angle360" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_angle90.mdl" "PHX Tubes Miscellaneous" "Window Angle90" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_angle90.mdl" "PHX Tubes Miscellaneous" "Window Angle90" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve180x1.mdl" "PHX Tubes Miscellaneous" "Window Curve180x1" 1 "NULL" "31.222,33.667,47.543" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve180x1.mdl" "PHX Tubes Miscellaneous" "Window Curve180x1" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve180x2.mdl" "PHX Tubes Miscellaneous" "Window Curve180x2" 1 "NULL" "31.222,33.668,94.993" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve180x2.mdl" "PHX Tubes Miscellaneous" "Window Curve180x2" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve360x1.mdl" "PHX Tubes Miscellaneous" "Window Curve360x1" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve360x1.mdl" "PHX Tubes Miscellaneous" "Window Curve360x1" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve360x2.mdl" "PHX Tubes Miscellaneous" "Window Curve360x2" 1 "NULL" "0.02,0,95.076" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve360x2.mdl" "PHX Tubes Miscellaneous" "Window Curve360x2" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve90x1.mdl" "PHX Tubes Miscellaneous" "Window Curve90x1" 1 "NULL" "31.246,33.667,47.541" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve90x1.mdl" "PHX Tubes Miscellaneous" "Window Curve90x1" 2 "NULL" "31.222,33.69,0.095" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve90x2.mdl" "PHX Tubes Miscellaneous" "Window Curve90x2" 1 "NULL" "31.246,33.667,95.083" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_curve90x2.mdl" "PHX Tubes Miscellaneous" "Window Curve90x2" 2 "NULL" "31.241,33.671,0.183" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_dome180.mdl" "PHX Tubes Miscellaneous" "Window Dome180" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_dome360.mdl" "PHX Tubes Miscellaneous" "Window Dome360" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/windows/window_dome90.mdl" "PHX Tubes Miscellaneous" "Window Dome90" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_angle180.mdl" "PHX Tubes Miscellaneous" "Wood Angle180" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_angle180.mdl" "PHX Tubes Miscellaneous" "Wood Angle180" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_angle360.mdl" "PHX Tubes Miscellaneous" "Wood Angle360" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_angle360.mdl" "PHX Tubes Miscellaneous" "Wood Angle360" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_angle90.mdl" "PHX Tubes Miscellaneous" "Wood Angle90" 1 "NULL" "-0.001,0,3.258" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_angle90.mdl" "PHX Tubes Miscellaneous" "Wood Angle90" 2 "NULL" "-0.001,0,0.255" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve180x1.mdl" "PHX Tubes Miscellaneous" "Wood Curve180x1" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve180x1.mdl" "PHX Tubes Miscellaneous" "Wood Curve180x1" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve180x2.mdl" "PHX Tubes Miscellaneous" "Wood Curve180x2" 1 "NULL" "0.02,0,95.081" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve180x2.mdl" "PHX Tubes Miscellaneous" "Wood Curve180x2" 2 "NULL" "0.02,0,0.089" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve360x1.mdl" "PHX Tubes Miscellaneous" "Wood Curve360x1" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve360x1.mdl" "PHX Tubes Miscellaneous" "Wood Curve360x1" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve360x2.mdl" "PHX Tubes Miscellaneous" "Wood Curve360x2" 1 "NULL" "0.02,0,95.076" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve360x2.mdl" "PHX Tubes Miscellaneous" "Wood Curve360x2" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve90x1.mdl" "PHX Tubes Miscellaneous" "Wood Curve90x1" 1 "NULL" "0.02,0,47.541" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve90x1.mdl" "PHX Tubes Miscellaneous" "Wood Curve90x1" 2 "NULL" "0.02,0, 0.095" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve90x2.mdl" "PHX Tubes Miscellaneous" "Wood Curve90x2" 1 "NULL" "0.02,0,95.083" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_curve90x2.mdl" "PHX Tubes Miscellaneous" "Wood Curve90x2" 2 "NULL" "0.02,0, 0.183" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_dome180.mdl" "PHX Tubes Miscellaneous" "Wood Dome180" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_dome360.mdl" "PHX Tubes Miscellaneous" "Wood Dome360" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_dome90.mdl" "PHX Tubes Miscellaneous" "Wood Dome90" 1 "NULL" "0,0,0.025" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle180x1.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle180x1" 1 "NULL" "31.222,33.667,47.543" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle180x1.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle180x1" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle180x2.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle180x2" 1 "NULL" "31.222,33.668,94.993" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle180x2.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle180x2" 2 "NULL" "31.222,33.667,0.093" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle360x1.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle360x1" 1 "NULL" "0.02,0,47.538" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle360x1.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle360x1" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle360x2.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle360x2" 1 "NULL" "0.02,0,95.076" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle360x2.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle360x2" 2 "NULL" "0.02,0,0.089" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle90x1.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle90x1" 1 "NULL" "31.246,33.667,47.541" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle90x1.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle90x1" 2 "NULL" "31.222,33.69,0.095" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle90x2.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle90x2" 1 "NULL" "31.246,33.667,95.083" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_phx/construct/wood/wood_wire_angle90x2.mdl" "PHX Tubes Miscellaneous" "Wood Wire Angle90x2" 2 "NULL" "31.241,33.671,0.183" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1a.mdl" "PHX Tubes Plastic" "Platehole1x1a" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1a.mdl" "PHX Tubes Plastic" "Platehole1x1a" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1b.mdl" "PHX Tubes Plastic" "Platehole1x1b" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1b.mdl" "PHX Tubes Plastic" "Platehole1x1b" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1c.mdl" "PHX Tubes Plastic" "Platehole1x1c" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1c.mdl" "PHX Tubes Plastic" "Platehole1x1c" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1d.mdl" "PHX Tubes Plastic" "Platehole1x1d" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole1x1d.mdl" "PHX Tubes Plastic" "Platehole1x1d" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4.mdl" "PHX Tubes Plastic" "Platehole4x4" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4.mdl" "PHX Tubes Plastic" "Platehole4x4" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4b.mdl" "PHX Tubes Plastic" "Platehole4x4b" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4b.mdl" "PHX Tubes Plastic" "Platehole4x4b" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4c.mdl" "PHX Tubes Plastic" "Platehole4x4c" 1 "NULL" "47.45,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4c.mdl" "PHX Tubes Plastic" "Platehole4x4c" 2 "NULL" "47.45,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4d.mdl" "PHX Tubes Plastic" "Platehole4x4d" 1 "NULL" "47.45,47.45, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/platehole4x4d.mdl" "PHX Tubes Plastic" "Platehole4x4d" 2 "NULL" "47.45,47.45,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/shell2x2a.mdl" "PHX Tubes Plastic" "Shell2x2a" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/shell2x2b.mdl" "PHX Tubes Plastic" "Shell2x2b" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/shell2x2c.mdl" "PHX Tubes Plastic" "Shell2x2c" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/shell2x2d.mdl" "PHX Tubes Plastic" "Shell2x2d" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/shell2x2e.mdl" "PHX Tubes Plastic" "Shell2x2e" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/shell2x2x45.mdl" "PHX Tubes Plastic" "Shell2x2x45" 1 "0, -47.45, 0" "NULL" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/misc/shell2x2x45.mdl" "PHX Tubes Plastic" "Shell2x2x45" 2 "-33.552, -33.552, 0" "NULL" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole1x1.mdl" "PHX Tubes Plastic" "Platehole1x1" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole1x1.mdl" "PHX Tubes Plastic" "Platehole1x1" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole1x2.mdl" "PHX Tubes Plastic" "Platehole1x2" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole1x2.mdl" "PHX Tubes Plastic" "Platehole1x2" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole2x2.mdl" "PHX Tubes Plastic" "Platehole2x2" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole2x2.mdl" "PHX Tubes Plastic" "Platehole2x2" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole3.mdl" "PHX Tubes Plastic" "Platehole3" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/plates/platehole3.mdl" "PHX Tubes Plastic" "Platehole3" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2.mdl" "PHX Tubes Plastic" "Circle2x2" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2.mdl" "PHX Tubes Plastic" "Circle2x2" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2b.mdl" "PHX Tubes Plastic" "Circle2x2b" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2b.mdl" "PHX Tubes Plastic" "Circle2x2b" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2c.mdl" "PHX Tubes Plastic" "Circle2x2c" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2c.mdl" "PHX Tubes Plastic" "Circle2x2c" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2d.mdl" "PHX Tubes Plastic" "Circle2x2d" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle2x2d.mdl" "PHX Tubes Plastic" "Circle2x2d" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4.mdl" "PHX Tubes Plastic" "Circle4x4" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4.mdl" "PHX Tubes Plastic" "Circle4x4" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4b.mdl" "PHX Tubes Plastic" "Circle4x4b" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4b.mdl" "PHX Tubes Plastic" "Circle4x4b" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4c.mdl" "PHX Tubes Plastic" "Circle4x4c" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4c.mdl" "PHX Tubes Plastic" "Circle4x4c" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4d.mdl" "PHX Tubes Plastic" "Circle4x4d" 1 "NULL" "0,0, 1.5" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/circle4x4d.mdl" "PHX Tubes Plastic" "Circle4x4d" 2 "NULL" "0,0,-1.5" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1.mdl" "PHX Tubes Plastic" "Tube1x1x1" 1 "NULL" "0,0,47.450" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1.mdl" "PHX Tubes Plastic" "Tube1x1x1" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1b.mdl" "PHX Tubes Plastic" "Tube1x1x1b" 1 "NULL" "0,0,47.450" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1b.mdl" "PHX Tubes Plastic" "Tube1x1x1b" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1c.mdl" "PHX Tubes Plastic" "Tube1x1x1c" 1 "NULL" "0,0,47.450" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1c.mdl" "PHX Tubes Plastic" "Tube1x1x1c" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1d.mdl" "PHX Tubes Plastic" "Tube1x1x1d" 1 "NULL" "0,0,47.450" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x1d.mdl" "PHX Tubes Plastic" "Tube1x1x1d" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2.mdl" "PHX Tubes Plastic" "Tube1x1x2" 1 "NULL" "0,0,94.900" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2.mdl" "PHX Tubes Plastic" "Tube1x1x2" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2b.mdl" "PHX Tubes Plastic" "Tube1x1x2b" 1 "NULL" "0,0,94.900" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2b.mdl" "PHX Tubes Plastic" "Tube1x1x2b" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2c.mdl" "PHX Tubes Plastic" "Tube1x1x2c" 1 "NULL" "0,0,94.900" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2c.mdl" "PHX Tubes Plastic" "Tube1x1x2c" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2d.mdl" "PHX Tubes Plastic" "Tube1x1x2d" 1 "NULL" "0,0,94.900" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x2d.mdl" "PHX Tubes Plastic" "Tube1x1x2d" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3.mdl" "PHX Tubes Plastic" "Tube1x1x3" 1 "NULL" "0,0,142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3.mdl" "PHX Tubes Plastic" "Tube1x1x3" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3b.mdl" "PHX Tubes Plastic" "Tube1x1x3b" 1 "NULL" "0,0,142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3b.mdl" "PHX Tubes Plastic" "Tube1x1x3b" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3c.mdl" "PHX Tubes Plastic" "Tube1x1x3c" 1 "NULL" "0,0,142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3c.mdl" "PHX Tubes Plastic" "Tube1x1x3c" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3d.mdl" "PHX Tubes Plastic" "Tube1x1x3d" 1 "NULL" "0,0,142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x3d.mdl" "PHX Tubes Plastic" "Tube1x1x3d" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4.mdl" "PHX Tubes Plastic" "Tube1x1x4" 1 "NULL" "0,0,189.80" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4.mdl" "PHX Tubes Plastic" "Tube1x1x4" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4b.mdl" "PHX Tubes Plastic" "Tube1x1x4b" 1 "NULL" "0,0,189.80" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4b.mdl" "PHX Tubes Plastic" "Tube1x1x4b" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4c.mdl" "PHX Tubes Plastic" "Tube1x1x4c" 1 "NULL" "0,0,189.80" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4c.mdl" "PHX Tubes Plastic" "Tube1x1x4c" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4d.mdl" "PHX Tubes Plastic" "Tube1x1x4d" 1 "NULL" "0,0,189.80" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x4d.mdl" "PHX Tubes Plastic" "Tube1x1x4d" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5.mdl" "PHX Tubes Plastic" "Tube1x1x5" 1 "NULL" "0,0,237.25" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5.mdl" "PHX Tubes Plastic" "Tube1x1x5" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5b.mdl" "PHX Tubes Plastic" "Tube1x1x5b" 1 "NULL" "0,0,237.25" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5b.mdl" "PHX Tubes Plastic" "Tube1x1x5b" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5c.mdl" "PHX Tubes Plastic" "Tube1x1x5c" 1 "NULL" "0,0,237.25" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5c.mdl" "PHX Tubes Plastic" "Tube1x1x5c" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5d.mdl" "PHX Tubes Plastic" "Tube1x1x5d" 1 "NULL" "0,0,237.25" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x5d.mdl" "PHX Tubes Plastic" "Tube1x1x5d" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6.mdl" "PHX Tubes Plastic" "Tube1x1x6" 1 "NULL" "0,0,284.70" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6.mdl" "PHX Tubes Plastic" "Tube1x1x6" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6b.mdl" "PHX Tubes Plastic" "Tube1x1x6b" 1 "NULL" "0,0,284.70" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6b.mdl" "PHX Tubes Plastic" "Tube1x1x6b" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6c.mdl" "PHX Tubes Plastic" "Tube1x1x6c" 1 "NULL" "0,0,284.70" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6c.mdl" "PHX Tubes Plastic" "Tube1x1x6c" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6d.mdl" "PHX Tubes Plastic" "Tube1x1x6d" 1 "NULL" "0,0,284.70" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x6d.mdl" "PHX Tubes Plastic" "Tube1x1x6d" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8.mdl" "PHX Tubes Plastic" "Tube1x1x8" 1 "NULL" "0,0,379.60" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8.mdl" "PHX Tubes Plastic" "Tube1x1x8" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8b.mdl" "PHX Tubes Plastic" "Tube1x1x8b" 1 "NULL" "0,0,379.60" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8b.mdl" "PHX Tubes Plastic" "Tube1x1x8b" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8c.mdl" "PHX Tubes Plastic" "Tube1x1x8c" 1 "NULL" "0,0,379.60" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8c.mdl" "PHX Tubes Plastic" "Tube1x1x8c" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8d.mdl" "PHX Tubes Plastic" "Tube1x1x8d" 1 "NULL" "0,0,379.60" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube1x1x8d.mdl" "PHX Tubes Plastic" "Tube1x1x8d" 2 "NULL" "NULL" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x+.mdl" "PHX Tubes Plastic" "Tube2x2x+" 1 "NULL" "0,0,47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x+.mdl" "PHX Tubes Plastic" "Tube2x2x+" 2 "NULL" "0,-47.45,0" "0,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x+.mdl" "PHX Tubes Plastic" "Tube2x2x+" 3 "NULL" "0,0,-47.45" " 90,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x+.mdl" "PHX Tubes Plastic" "Tube2x2x+" 4 "NULL" "0,47.45,0" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025.mdl" "PHX Tubes Plastic" "Tube2x2x025" 1 "NULL" "0,0, 5.93125" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025.mdl" "PHX Tubes Plastic" "Tube2x2x025" 2 "NULL" "0,0,-5.93125" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025b.mdl" "PHX Tubes Plastic" "Tube2x2x025b" 1 "NULL" "0,0, 5.93125" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025b.mdl" "PHX Tubes Plastic" "Tube2x2x025b" 2 "NULL" "0,0,-5.93125" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025c.mdl" "PHX Tubes Plastic" "Tube2x2x025c" 1 "NULL" "0,0, 5.93125" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025c.mdl" "PHX Tubes Plastic" "Tube2x2x025c" 2 "NULL" "0,0,-5.93125" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025d.mdl" "PHX Tubes Plastic" "Tube2x2x025d" 1 "NULL" "0,0, 5.93125" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x025d.mdl" "PHX Tubes Plastic" "Tube2x2x025d" 2 "NULL" "0,0,-5.93125" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05.mdl" "PHX Tubes Plastic" "Tube2x2x05" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05.mdl" "PHX Tubes Plastic" "Tube2x2x05" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05b.mdl" "PHX Tubes Plastic" "Tube2x2x05b" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05b.mdl" "PHX Tubes Plastic" "Tube2x2x05b" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05c.mdl" "PHX Tubes Plastic" "Tube2x2x05c" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05c.mdl" "PHX Tubes Plastic" "Tube2x2x05c" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05d.mdl" "PHX Tubes Plastic" "Tube2x2x05d" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x05d.mdl" "PHX Tubes Plastic" "Tube2x2x05d" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1.mdl" "PHX Tubes Plastic" "Tube2x2x1" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1.mdl" "PHX Tubes Plastic" "Tube2x2x1" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x16d.mdl" "PHX Tubes Plastic" "Tube2x2x16d" 1 "NULL" "0,0,711.75" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x16d.mdl" "PHX Tubes Plastic" "Tube2x2x16d" 2 "NULL" "0,0,-47.45" " 90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1b.mdl" "PHX Tubes Plastic" "Tube2x2x1b" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1b.mdl" "PHX Tubes Plastic" "Tube2x2x1b" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1c.mdl" "PHX Tubes Plastic" "Tube2x2x1c" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1c.mdl" "PHX Tubes Plastic" "Tube2x2x1c" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1d.mdl" "PHX Tubes Plastic" "Tube2x2x1d" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x1d.mdl" "PHX Tubes Plastic" "Tube2x2x1d" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2.mdl" "PHX Tubes Plastic" "Tube2x2x2" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2.mdl" "PHX Tubes Plastic" "Tube2x2x2" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2b.mdl" "PHX Tubes Plastic" "Tube2x2x2b" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2b.mdl" "PHX Tubes Plastic" "Tube2x2x2b" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2c.mdl" "PHX Tubes Plastic" "Tube2x2x2c" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2c.mdl" "PHX Tubes Plastic" "Tube2x2x2c" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2d.mdl" "PHX Tubes Plastic" "Tube2x2x2d" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x2d.mdl" "PHX Tubes Plastic" "Tube2x2x2d" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4.mdl" "PHX Tubes Plastic" "Tube2x2x4" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4.mdl" "PHX Tubes Plastic" "Tube2x2x4" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4b.mdl" "PHX Tubes Plastic" "Tube2x2x4b" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4b.mdl" "PHX Tubes Plastic" "Tube2x2x4b" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4c.mdl" "PHX Tubes Plastic" "Tube2x2x4c" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4c.mdl" "PHX Tubes Plastic" "Tube2x2x4c" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4d.mdl" "PHX Tubes Plastic" "Tube2x2x4d" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x4d.mdl" "PHX Tubes Plastic" "Tube2x2x4d" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8.mdl" "PHX Tubes Plastic" "Tube2x2x8" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8.mdl" "PHX Tubes Plastic" "Tube2x2x8" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8b.mdl" "PHX Tubes Plastic" "Tube2x2x8b" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8b.mdl" "PHX Tubes Plastic" "Tube2x2x8b" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8c.mdl" "PHX Tubes Plastic" "Tube2x2x8c" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8c.mdl" "PHX Tubes Plastic" "Tube2x2x8c" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8d.mdl" "PHX Tubes Plastic" "Tube2x2x8d" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2x8d.mdl" "PHX Tubes Plastic" "Tube2x2x8d" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xt.mdl" "PHX Tubes Plastic" "Tube2x2xt" 1 "NULL" "0,0,-47.45" " 90,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xt.mdl" "PHX Tubes Plastic" "Tube2x2xt" 2 "NULL" "0,-47.45,0" "0,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xt.mdl" "PHX Tubes Plastic" "Tube2x2xt" 3 "NULL" "0,47.45,0" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xta.mdl" "PHX Tubes Plastic" "Tube2x2xta" 1 "NULL" "0,0,-23.725" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xta.mdl" "PHX Tubes Plastic" "Tube2x2xta" 2 "NULL" "0,47.45,23.725" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xta.mdl" "PHX Tubes Plastic" "Tube2x2xta" 3 "NULL" "0,-47.45,23.725" "0,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xtb.mdl" "PHX Tubes Plastic" "Tube2x2xtb" 1 "NULL" "0,-23.725,0" "0,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube2x2xtb.mdl" "PHX Tubes Plastic" "Tube2x2xtb" 2 "NULL" "0,23.725,-47.45" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025.mdl" "PHX Tubes Plastic" "Tube4x4x025" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025.mdl" "PHX Tubes Plastic" "Tube4x4x025" 2 "NULL" "0,0,0" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025b.mdl" "PHX Tubes Plastic" "Tube4x4x025b" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025b.mdl" "PHX Tubes Plastic" "Tube4x4x025b" 2 "NULL" "0,0,0" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025c.mdl" "PHX Tubes Plastic" "Tube4x4x025c" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025c.mdl" "PHX Tubes Plastic" "Tube4x4x025c" 2 "NULL" "0,0,0" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025d.mdl" "PHX Tubes Plastic" "Tube4x4x025d" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x025d.mdl" "PHX Tubes Plastic" "Tube4x4x025d" 2 "NULL" "0,0,0" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05.mdl" "PHX Tubes Plastic" "Tube4x4x05" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05.mdl" "PHX Tubes Plastic" "Tube4x4x05" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05b.mdl" "PHX Tubes Plastic" "Tube4x4x05b" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05b.mdl" "PHX Tubes Plastic" "Tube4x4x05b" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05c.mdl" "PHX Tubes Plastic" "Tube4x4x05c" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05c.mdl" "PHX Tubes Plastic" "Tube4x4x05c" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05d.mdl" "PHX Tubes Plastic" "Tube4x4x05d" 1 "NULL" "0,0, 11.8625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x05d.mdl" "PHX Tubes Plastic" "Tube4x4x05d" 2 "NULL" "0,0,-11.8625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1.mdl" "PHX Tubes Plastic" "Tube4x4x1" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1.mdl" "PHX Tubes Plastic" "Tube4x4x1" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16.mdl" "PHX Tubes Plastic" "Tube4x4x16" 1 "NULL" "0,0, 379.6" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16.mdl" "PHX Tubes Plastic" "Tube4x4x16" 2 "NULL" "0,0,-379.6" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16b.mdl" "PHX Tubes Plastic" "Tube4x4x16b" 1 "NULL" "0,0, 379.6" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16b.mdl" "PHX Tubes Plastic" "Tube4x4x16b" 2 "NULL" "0,0,-379.6" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16c.mdl" "PHX Tubes Plastic" "Tube4x4x16c" 1 "NULL" "0,0, 379.6" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16c.mdl" "PHX Tubes Plastic" "Tube4x4x16c" 2 "NULL" "0,0,-379.6" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16d.mdl" "PHX Tubes Plastic" "Tube4x4x16d" 1 "NULL" "0,0, 379.6" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x16d.mdl" "PHX Tubes Plastic" "Tube4x4x16d" 2 "NULL" "0,0,-379.6" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1b.mdl" "PHX Tubes Plastic" "Tube4x4x1b" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1b.mdl" "PHX Tubes Plastic" "Tube4x4x1b" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1c.mdl" "PHX Tubes Plastic" "Tube4x4x1c" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1c.mdl" "PHX Tubes Plastic" "Tube4x4x1c" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1d.mdl" "PHX Tubes Plastic" "Tube4x4x1d" 1 "NULL" "0,0, 23.726" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1d.mdl" "PHX Tubes Plastic" "Tube4x4x1d" 2 "NULL" "0,0,-23.726" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1to2x2.mdl" "PHX Tubes Plastic" "Tube4x4x1to2x2" 1 "NULL" "NULL" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x1to2x2.mdl" "PHX Tubes Plastic" "Tube4x4x1to2x2" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2.mdl" "PHX Tubes Plastic" "Tube4x4x2" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2.mdl" "PHX Tubes Plastic" "Tube4x4x2" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2b.mdl" "PHX Tubes Plastic" "Tube4x4x2b" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2b.mdl" "PHX Tubes Plastic" "Tube4x4x2b" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2c.mdl" "PHX Tubes Plastic" "Tube4x4x2c" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2c.mdl" "PHX Tubes Plastic" "Tube4x4x2c" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2d.mdl" "PHX Tubes Plastic" "Tube4x4x2d" 1 "NULL" "0,0, 47.45" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x2d.mdl" "PHX Tubes Plastic" "Tube4x4x2d" 2 "NULL" "0,0,-47.45" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3.mdl" "PHX Tubes Plastic" "Tube4x4x3" 1 "NULL" "0,0, 71.175" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3.mdl" "PHX Tubes Plastic" "Tube4x4x3" 2 "NULL" "0,0,-71.175" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3b.mdl" "PHX Tubes Plastic" "Tube4x4x3b" 1 "NULL" "0,0, 71.175" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3b.mdl" "PHX Tubes Plastic" "Tube4x4x3b" 2 "NULL" "0,0,-71.175" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3c.mdl" "PHX Tubes Plastic" "Tube4x4x3c" 1 "NULL" "0,0, 71.175" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3c.mdl" "PHX Tubes Plastic" "Tube4x4x3c" 2 "NULL" "0,0,-71.175" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3d.mdl" "PHX Tubes Plastic" "Tube4x4x3d" 1 "NULL" "0,0, 71.175" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x3d.mdl" "PHX Tubes Plastic" "Tube4x4x3d" 2 "NULL" "0,0,-71.175" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4.mdl" "PHX Tubes Plastic" "Tube4x4x4" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4.mdl" "PHX Tubes Plastic" "Tube4x4x4" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4b.mdl" "PHX Tubes Plastic" "Tube4x4x4b" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4b.mdl" "PHX Tubes Plastic" "Tube4x4x4b" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4c.mdl" "PHX Tubes Plastic" "Tube4x4x4c" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4c.mdl" "PHX Tubes Plastic" "Tube4x4x4c" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4d.mdl" "PHX Tubes Plastic" "Tube4x4x4d" 1 "NULL" "0,0, 94.9" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x4d.mdl" "PHX Tubes Plastic" "Tube4x4x4d" 2 "NULL" "0,0,-94.9" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5.mdl" "PHX Tubes Plastic" "Tube4x4x5" 1 "NULL" "0,0, 118.625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5.mdl" "PHX Tubes Plastic" "Tube4x4x5" 2 "NULL" "0,0,-118.625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5b.mdl" "PHX Tubes Plastic" "Tube4x4x5b" 1 "NULL" "0,0, 118.625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5b.mdl" "PHX Tubes Plastic" "Tube4x4x5b" 2 "NULL" "0,0,-118.625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5c.mdl" "PHX Tubes Plastic" "Tube4x4x5c" 1 "NULL" "0,0, 118.625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5c.mdl" "PHX Tubes Plastic" "Tube4x4x5c" 2 "NULL" "0,0,-118.625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5d.mdl" "PHX Tubes Plastic" "Tube4x4x5d" 1 "NULL" "0,0, 118.625" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x5d.mdl" "PHX Tubes Plastic" "Tube4x4x5d" 2 "NULL" "0,0,-118.625" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6.mdl" "PHX Tubes Plastic" "Tube4x4x6" 1 "NULL" "0,0, 142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6.mdl" "PHX Tubes Plastic" "Tube4x4x6" 2 "NULL" "0,0,-142.35" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6b.mdl" "PHX Tubes Plastic" "Tube4x4x6b" 1 "NULL" "0,0, 142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6b.mdl" "PHX Tubes Plastic" "Tube4x4x6b" 2 "NULL" "0,0,-142.35" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6c.mdl" "PHX Tubes Plastic" "Tube4x4x6c" 1 "NULL" "0,0, 142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6c.mdl" "PHX Tubes Plastic" "Tube4x4x6c" 2 "NULL" "0,0,-142.35" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6d.mdl" "PHX Tubes Plastic" "Tube4x4x6d" 1 "NULL" "0,0, 142.35" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x6d.mdl" "PHX Tubes Plastic" "Tube4x4x6d" 2 "NULL" "0,0,-142.35" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8.mdl" "PHX Tubes Plastic" "Tube4x4x8" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8.mdl" "PHX Tubes Plastic" "Tube4x4x8" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8b.mdl" "PHX Tubes Plastic" "Tube4x4x8b" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8b.mdl" "PHX Tubes Plastic" "Tube4x4x8b" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8c.mdl" "PHX Tubes Plastic" "Tube4x4x8c" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8c.mdl" "PHX Tubes Plastic" "Tube4x4x8c" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8d.mdl" "PHX Tubes Plastic" "Tube4x4x8d" 1 "NULL" "0,0, 189.8" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tube4x4x8d.mdl" "PHX Tubes Plastic" "Tube4x4x8d" 2 "NULL" "0,0,-189.8" " 90,0, 0 " "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x1x90.mdl" "PHX Tubes Plastic" "Tubebend1x1x90" 1 "NULL" "NULL" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x1x90.mdl" "PHX Tubes Plastic" "Tubebend1x1x90" 2 "NULL" "0,23.725,23.725" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x2x90.mdl" "PHX Tubes Plastic" "Tubebend1x2x90" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x2x90.mdl" "PHX Tubes Plastic" "Tubebend1x2x90" 2 "NULL" "0,47.45,47.45" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x2x90a.mdl" "PHX Tubes Plastic" "Tubebend1x2x90a" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x2x90a.mdl" "PHX Tubes Plastic" "Tubebend1x2x90a" 2 "NULL" "0,47.45,47.45" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x2x90b.mdl" "PHX Tubes Plastic" "Tubebend1x2x90b" 1 "NULL" "-47.45,0,47.45" "0,-180,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend1x2x90b.mdl" "PHX Tubes Plastic" "Tubebend1x2x90b" 2 "NULL" "NULL" "90,-90,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend2x2x90.mdl" "PHX Tubes Plastic" "Tubebend2x2x90" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend2x2x90.mdl" "PHX Tubes Plastic" "Tubebend2x2x90" 2 "NULL" "0,47.45,47.45" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend2x2x90outer.mdl" "PHX Tubes Plastic" "Tubebend2x2x90outer" 1 "NULL" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend2x2x90outer.mdl" "PHX Tubes Plastic" "Tubebend2x2x90outer" 2 "NULL" "0,47.45,47.45" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend2x2x90square.mdl" "PHX Tubes Plastic" "Tubebend2x2x90square" 1 "NULL" "0,0,-47.451" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend2x2x90square.mdl" "PHX Tubes Plastic" "Tubebend2x2x90square" 2 "NULL" "0,47.417,0" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend4x4x90.mdl" "PHX Tubes Plastic" "Tubebend4x4x90" 1 "NULL" "0, 94.9,0" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebend4x4x90.mdl" "PHX Tubes Plastic" "Tubebend4x4x90" 2 "NULL" "0,0,-94.9" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendinsidesquare.mdl" "PHX Tubes Plastic" "Tubebendinsidesquare" 1 "NULL" "0,0,23.725" "-90,90,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendinsidesquare.mdl" "PHX Tubes Plastic" "Tubebendinsidesquare" 2 "NULL" "-47.45,0,-23.724" "0,-180,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendinsidesquare2.mdl" "PHX Tubes Plastic" "Tubebendinsidesquare2" 1 "NULL" "0,0,23.725" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendinsidesquare2.mdl" "PHX Tubes Plastic" "Tubebendinsidesquare2" 2 "NULL" "0,-47.45,-23.724" "0,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendoutsidesquare.mdl" "PHX Tubes Plastic" "Tubebendoutsidesquare" 1 "0,0,47.45" "NULL" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendoutsidesquare.mdl" "PHX Tubes Plastic" "Tubebendoutsidesquare" 2 "0,-47.45,0" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendoutsidesquare2.mdl" "PHX Tubes Plastic" "Tubebendoutsidesquare2" 1 "0,0,47.45" "NULL" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/hunter/tubes/tubebendoutsidesquare2.mdl" "PHX Tubes Plastic" "Tubebendoutsidesquare2" 2 "0,-47.45,0" "NULL" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj01.mdl" "Plarail" "AJ-01 Station" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj01.mdl" "Plarail" "AJ-01 Station" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj01_2.mdl" "Plarail" "AJ-01 2 Station" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj01_2.mdl" "Plarail" "AJ-01 2 Station" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj02.mdl" "Plarail" "AJ-02 Support" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj02.mdl" "Plarail" "AJ-02 Support" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj03.mdl" "Plarail" "AJ-03" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj03.mdl" "Plarail" "AJ-03" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj03.mdl" "Plarail" "AJ-03" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj03_bridge.mdl" "Plarail" "AJ-03 Bridge" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj03_top.mdl" "Plarail" "AJ-03 Top" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj04.mdl" "Plarail" "AJ-04 Track Bridge" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/aj04.mdl" "Plarail" "AJ-04 Track Bridge" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j14_grey.mdl" "Plarail" "J-14 Grey" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j14_grey.mdl" "Plarail" "J-14 Grey" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j14_yellow.mdl" "Plarail" "J-14 Yellow" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j14_yellow.mdl" "Plarail" "J-14 Yellow" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j15_grey.mdl" "Plarail" "J-15 Grey" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j15_grey.mdl" "Plarail" "J-15 Grey" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j15_yellow.mdl" "Plarail" "J-15 Yellow" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j15_yellow.mdl" "Plarail" "J-15 Yellow" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_grey.mdl" "Plarail" "J-22 Grey" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_grey.mdl" "Plarail" "J-22 Grey" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_grey.mdl" "Plarail" "J-22 Grey" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_grey.mdl" "Plarail" "J-22 Grey" 4 "NULL" "!4" "!4" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_yellow.mdl" "Plarail" "J-22 Yellow" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_yellow.mdl" "Plarail" "J-22 Yellow" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_yellow.mdl" "Plarail" "J-22 Yellow" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/j22_yellow.mdl" "Plarail" "J-22 Yellow" 4 "NULL" "!4" "!4" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/scenery/pa_pole.mdl" "Plarail" "PA-Pole" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r03_left.mdl" "Plarail" "R-03 Curve Left 1" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r03_left.mdl" "Plarail" "R-03 Curve Left 1" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r03_right.mdl" "Plarail" "R-03 Curve Right 1" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r03_right.mdl" "Plarail" "R-03 Curve Right 1" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_left.mdl" "Plarail" "R-05 Curve Left Double" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_left.mdl" "Plarail" "R-05 Curve Left Double" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_left.mdl" "Plarail" "R-05 Curve Left Double" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_left.mdl" "Plarail" "R-05 Curve Left Double" 4 "NULL" "!4" "!4" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_right.mdl" "Plarail" "R-05 Curve Right Double" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_right.mdl" "Plarail" "R-05 Curve Right Double" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_right.mdl" "Plarail" "R-05 Curve Right Double" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r05_right.mdl" "Plarail" "R-05 Curve Right Double" 4 "NULL" "!4" "!4" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r09_left.mdl" "Plarail" "R-09 Curve Left 2" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r09_left.mdl" "Plarail" "R-09 Curve Left 2" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r09_right.mdl" "Plarail" "R-09 Curve Right 2" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r09_right.mdl" "Plarail" "R-09 Curve Right 2" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r18_a.mdl" "Plarail" "R-18 Curve A" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r18_a.mdl" "Plarail" "R-18 Curve A" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r18_a.mdl" "Plarail" "R-18 Curve A" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r18_b.mdl" "Plarail" "R-18 Curve B" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r18_b.mdl" "Plarail" "R-18 Curve B" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r18_b.mdl" "Plarail" "R-18 Curve B" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r27_left.mdl" "Plarail" "R-27 Curve Left Bridge" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r27_left.mdl" "Plarail" "R-27 Curve Left Bridge" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r27_right.mdl" "Plarail" "R-27 Curve Right Bridge" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/curve/r27_right.mdl" "Plarail" "R-27 Curve Right Bridge" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar01.mdl" "Plarail" "AR-01 Stop Rail" 1 "NULL" "!1" "!1" "gmod_plarail_ar01" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar01.mdl" "Plarail" "AR-01 Stop Rail" 2 "NULL" "!2" "!2" "gmod_plarail_ar01" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar02.mdl" "Plarail" "AR-02 Crossover Point" 1 "NULL" "!1" "!1" "gmod_plarail_ar02" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar02.mdl" "Plarail" "AR-02 Crossover Point" 2 "NULL" "!2" "!2" "gmod_plarail_ar02" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar03.mdl" "Plarail" "AR-03 Rerailer" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar03.mdl" "Plarail" "AR-03 Rerailer" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar03.mdl" "Plarail" "AR-03 Rerailer" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_1.mdl" "Plarail" "AR-04 1 Turnout Point" 1 "NULL" "!1" "!1" "gmod_plarail_ar04_1" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_1.mdl" "Plarail" "AR-04 1 Turnout Point" 2 "NULL" "!2" "!2" "gmod_plarail_ar04_1" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_1.mdl" "Plarail" "AR-04 1 Turnout Point" 3 "NULL" "!3" "!3" "gmod_plarail_ar04_1" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_2.mdl" "Plarail" "AR-04 2 Turnout Point" 1 "NULL" "!1" "!1" "gmod_plarail_ar04_2" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_2.mdl" "Plarail" "AR-04 2 Turnout Point" 2 "NULL" "!2" "!2" "gmod_plarail_ar04_2" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_2.mdl" "Plarail" "AR-04 2 Turnout Point" 3 "NULL" "!3" "!3" "gmod_plarail_ar04_2" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_3.mdl" "Plarail" "AR-04 3 Buffer" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar04_3.mdl" "Plarail" "AR-04 3 Buffer" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar05_1.mdl" "Plarail" "AR-05 1 Double Track Point" 1 "NULL" "!1" "!1" "gmod_plarail_ar05_1" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar05_1.mdl" "Plarail" "AR-05 1 Double Track Point" 2 "NULL" "!2" "!2" "gmod_plarail_ar05_1" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar05_1.mdl" "Plarail" "AR-05 1 Double Track Point" 3 "NULL" "!3" "!3" "gmod_plarail_ar05_1" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar05_2.mdl" "Plarail" "AR-05 2 Double Track Point" 1 "NULL" "!1" "!1" "gmod_plarail_ar05_2" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar05_2.mdl" "Plarail" "AR-05 2 Double Track Point" 2 "NULL" "!2" "!2" "gmod_plarail_ar05_2" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar05_2.mdl" "Plarail" "AR-05 2 Double Track Point" 3 "NULL" "!3" "!3" "gmod_plarail_ar05_2" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar06.mdl" "Plarail" "AR-06 Slope Rail" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar06.mdl" "Plarail" "AR-06 Slope Rail" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar06_1.mdl" "Plarail" "AR-06 Support 1" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar06_1.mdl" "Plarail" "AR-06 Support 1" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar06_2.mdl" "Plarail" "AR-06 Support 2" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/ar06_2.mdl" "Plarail" "AR-06 Support 2" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/connector_female.mdl" "Plarail" "Custom Female" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/connector_female.mdl" "Plarail" "Custom Female" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/connector_male.mdl" "Plarail" "Custom Male" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/connector_male.mdl" "Plarail" "Custom Male" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/connector_male2.mdl" "Plarail" "Custom Male 2" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_1.mdl" "Plarail" "Custom 1" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_1.mdl" "Plarail" "Custom 1" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_16.mdl" "Plarail" "Custom 16" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_16.mdl" "Plarail" "Custom 16" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_2.mdl" "Plarail" "Custom 2" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_2.mdl" "Plarail" "Custom 2" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_4.mdl" "Plarail" "Custom 4" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_4.mdl" "Plarail" "Custom 4" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_8.mdl" "Plarail" "Custom 8" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/custom_8.mdl" "Plarail" "Custom 8" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/r06.mdl" "Plarail" "R-06 Slope" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/misc/r06.mdl" "Plarail" "R-06 Slope" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r01.mdl" "Plarail" "R-01 Straight Full" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r01.mdl" "Plarail" "R-01 Straight Full" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r02.mdl" "Plarail" "R-02 Straight Half" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r02.mdl" "Plarail" "R-02 Straight Half" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r04.mdl" "Plarail" "R-04 Straight Double" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r04.mdl" "Plarail" "R-04 Straight Double" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r04.mdl" "Plarail" "R-04 Straight Double" 3 "NULL" "!3" "!3" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r04.mdl" "Plarail" "R-04 Straight Double" 4 "NULL" "!4" "!4" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r07.mdl" "Plarail" "R-07 Straight Long" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r07.mdl" "Plarail" "R-07 Straight Long" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r20_01.mdl" "Plarail" "R-20 Straight Quarter" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r20_01.mdl" "Plarail" "R-20 Straight Quarter" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r20_02.mdl" "Plarail" "R-20 Straight Quarter Male/Male" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r20_02.mdl" "Plarail" "R-20 Straight Quarter Male/Male" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r20_03.mdl" "Plarail" "R-20 Straight Quarter Female/Female" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r20_03.mdl" "Plarail" "R-20 Straight Quarter Female/Female" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r26.mdl" "Plarail" "R-26 Straight Bridge" 1 "NULL" "!1" "!1" "NULL" +TRACKASSEMBLY_PIECES "models/ron/plarail/tracks/straight/r26.mdl" "Plarail" "R-26 Straight Bridge" 2 "NULL" "!2" "!2" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128a.mdl" "Portal 2 High Walkway" "128a" 1 "NULL" "0, 64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128a.mdl" "Portal 2 High Walkway" "128a" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128b.mdl" "Portal 2 High Walkway" "128b" 1 "NULL" "0, 64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128b.mdl" "Portal 2 High Walkway" "128b" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128c.mdl" "Portal 2 High Walkway" "128c" 1 "NULL" "0, 64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128c.mdl" "Portal 2 High Walkway" "128c" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128d.mdl" "Portal 2 High Walkway" "128d" 1 "NULL" "0, 64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128d.mdl" "Portal 2 High Walkway" "128d" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128e.mdl" "Portal 2 High Walkway" "128e" 1 "NULL" "0, 64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_128e.mdl" "Portal 2 High Walkway" "128e" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16a.mdl" "Portal 2 High Walkway" "16a" 1 "NULL" "0, 8,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16a.mdl" "Portal 2 High Walkway" "16a" 2 "NULL" "0,-8,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16b.mdl" "Portal 2 High Walkway" "16b" 1 "NULL" "0, 8,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16b.mdl" "Portal 2 High Walkway" "16b" 2 "NULL" "0,-8,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16c.mdl" "Portal 2 High Walkway" "16c" 1 "NULL" "0, 8,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16c.mdl" "Portal 2 High Walkway" "16c" 2 "NULL" "0,-8,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16d.mdl" "Portal 2 High Walkway" "16d" 1 "NULL" "0, 8,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16d.mdl" "Portal 2 High Walkway" "16d" 2 "NULL" "0,-8,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16e.mdl" "Portal 2 High Walkway" "16e" 1 "NULL" "0, 8,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_16e.mdl" "Portal 2 High Walkway" "16e" 2 "NULL" "0,-8,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256a.mdl" "Portal 2 High Walkway" "256a" 1 "NULL" "0, 128,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256a.mdl" "Portal 2 High Walkway" "256a" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256b.mdl" "Portal 2 High Walkway" "256b" 1 "NULL" "0, 128,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256b.mdl" "Portal 2 High Walkway" "256b" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256c.mdl" "Portal 2 High Walkway" "256c" 1 "NULL" "0, 128,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256c.mdl" "Portal 2 High Walkway" "256c" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256d.mdl" "Portal 2 High Walkway" "256d" 1 "NULL" "0, 128,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256d.mdl" "Portal 2 High Walkway" "256d" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256e.mdl" "Portal 2 High Walkway" "256e" 1 "NULL" "0, 128,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_256e.mdl" "Portal 2 High Walkway" "256e" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32a.mdl" "Portal 2 High Walkway" "32a" 1 "NULL" "0, 16,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32a.mdl" "Portal 2 High Walkway" "32a" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32b.mdl" "Portal 2 High Walkway" "32b" 1 "NULL" "0, 16,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32b.mdl" "Portal 2 High Walkway" "32b" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32c.mdl" "Portal 2 High Walkway" "32c" 1 "NULL" "0, 16,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32c.mdl" "Portal 2 High Walkway" "32c" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32d.mdl" "Portal 2 High Walkway" "32d" 1 "NULL" "0, 16,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32d.mdl" "Portal 2 High Walkway" "32d" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32e.mdl" "Portal 2 High Walkway" "32e" 1 "NULL" "0, 16,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_32e.mdl" "Portal 2 High Walkway" "32e" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64a.mdl" "Portal 2 High Walkway" "64a" 1 "NULL" "0, 32,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64a.mdl" "Portal 2 High Walkway" "64a" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64b.mdl" "Portal 2 High Walkway" "64b" 1 "NULL" "0, 32,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64b.mdl" "Portal 2 High Walkway" "64b" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64c.mdl" "Portal 2 High Walkway" "64c" 1 "NULL" "0, 32,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64c.mdl" "Portal 2 High Walkway" "64c" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64d.mdl" "Portal 2 High Walkway" "64d" 1 "NULL" "0, 32,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64d.mdl" "Portal 2 High Walkway" "64d" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64e.mdl" "Portal 2 High Walkway" "64e" 1 "NULL" "0, 32,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_64e.mdl" "Portal 2 High Walkway" "64e" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_angle_30.mdl" "Portal 2 High Walkway" "Angle 30" 1 "NULL" "0,-44.01274,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_angle_30.mdl" "Portal 2 High Walkway" "Angle 30" 2 "NULL" "40.52878,23.40695,-2.125" "0,30,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_corner.mdl" "Portal 2 High Walkway" "Corner" 1 "NULL" "64,0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_corner.mdl" "Portal 2 High Walkway" "Corner" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_end_a.mdl" "Portal 2 High Walkway" "End A" 1 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_end_b.mdl" "Portal 2 High Walkway" "End B" 1 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_end_cap.mdl" "Portal 2 High Walkway" "End Cap" 1 "NULL" "0,0,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_gate_a.mdl" "Portal 2 High Walkway" "Gate A" 1 " 36.5,0,20" "NULL" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_gate_a.mdl" "Portal 2 High Walkway" "Gate A" 2 "-36.5,0,20" "NULL" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_gate_door.mdl" "Portal 2 High Walkway" "Gate Door" 1 "NULL" "NULL" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_gate_door.mdl" "Portal 2 High Walkway" "Gate Door" 2 "NULL" "0,8,0" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_gate_frame.mdl" "Portal 2 High Walkway" "Gate Frame" 1 " 36.5,0,20" "NULL" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_gate_frame.mdl" "Portal 2 High Walkway" "Gate Frame" 2 "-36.5,0,20" "NULL" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_l.mdl" "Portal 2 High Walkway" "L" 1 "NULL" "64, 0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_l.mdl" "Portal 2 High Walkway" "L" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_l_norail.mdl" "Portal 2 High Walkway" "L Norail" 1 "NULL" "64, 0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_l_norail.mdl" "Portal 2 High Walkway" "L Norail" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_t.mdl" "Portal 2 High Walkway" "T" 1 "NULL" "64, 0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_t.mdl" "Portal 2 High Walkway" "T" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_t.mdl" "Portal 2 High Walkway" "T" 3 "NULL" "0, 64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_t_norail.mdl" "Portal 2 High Walkway" "T Norail" 1 "NULL" "64, 0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_t_norail.mdl" "Portal 2 High Walkway" "T Norail" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_t_norail.mdl" "Portal 2 High Walkway" "T Norail" 3 "NULL" "0, 64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x.mdl" "Portal 2 High Walkway" "X" 1 "NULL" "64,0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x.mdl" "Portal 2 High Walkway" "X" 2 "NULL" "0,64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x.mdl" "Portal 2 High Walkway" "X" 3 "NULL" "-64,0,-2.125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x.mdl" "Portal 2 High Walkway" "X" 4 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x_norail.mdl" "Portal 2 High Walkway" "X Norail" 1 "NULL" "64,0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x_norail.mdl" "Portal 2 High Walkway" "X Norail" 2 "NULL" "0,64,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x_norail.mdl" "Portal 2 High Walkway" "X Norail" 3 "NULL" "-64,0,-2.125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/hanging_walkway_x_norail.mdl" "Portal 2 High Walkway" "X Norail" 4 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/walkway_destroyed_128a.mdl" "Portal 2 High Walkway" "Destroyed 128a" 1 "NULL" "0,0,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/walkway_destroyed_64a.mdl" "Portal 2 High Walkway" "Destroyed 64a" 1 "NULL" "0,0,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_128a.mdl" "Portal 2 Walkway UG" "128a" 1 "NULL" "-35,64,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_128b.mdl" "Portal 2 Walkway UG" "128b" 1 "NULL" "-35,64,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_256a.mdl" "Portal 2 Walkway UG" "256a" 1 "NULL" "-35,128,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_256b.mdl" "Portal 2 Walkway UG" "256b" 1 "NULL" "-35,128,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_32a.mdl" "Portal 2 Walkway UG" "32a" 1 "NULL" "-35,16,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_32b.mdl" "Portal 2 Walkway UG" "32b" 1 "NULL" "-35,16,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_512a.mdl" "Portal 2 Walkway UG" "512a" 1 "NULL" "-35,256,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_512b.mdl" "Portal 2 Walkway UG" "512b" 1 "NULL" "-35,256,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_64a.mdl" "Portal 2 Walkway UG" "64a" 1 "NULL" "-35,32,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/railing_64b.mdl" "Portal 2 Walkway UG" "64b" 1 "NULL" "-35,32,-6.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_128.mdl" "Portal 2 Walkway UG" "128" 1 "NULL" "0,-128,-66.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_128.mdl" "Portal 2 Walkway UG" "128" 2 "NULL" "0, 128,61.875" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_256.mdl" "Portal 2 Walkway UG" "256" 1 "NULL" "0,-224,-130.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_256.mdl" "Portal 2 Walkway UG" "256" 2 "NULL" "0, 224,125.875" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_32.mdl" "Portal 2 Walkway UG" "32" 1 "NULL" "0,-56,-18.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_32.mdl" "Portal 2 Walkway UG" "32" 2 "NULL" "0, 56,13.875" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_64.mdl" "Portal 2 Walkway UG" "64" 1 "NULL" "0,-80,-34.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_64.mdl" "Portal 2 Walkway UG" "64" 2 "NULL" "0, 80,29.875" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_exit.mdl" "Portal 2 Walkway UG" "Exit" 1 "NULL" "0,-112,-66.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_exit.mdl" "Portal 2 Walkway UG" "Exit" 2 "NULL" "0, 112,61.875" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_landing_a.mdl" "Portal 2 Walkway UG" "A" 1 "NULL" "48,-42,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_landing_a.mdl" "Portal 2 Walkway UG" "A" 2 "NULL" "-48,-42,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_landing_b.mdl" "Portal 2 Walkway UG" "B" 1 "NULL" "48,-42,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_landing_b.mdl" "Portal 2 Walkway UG" "B" 2 "NULL" "-48,-42,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/stair_landing_b.mdl" "Portal 2 Walkway UG" "B" 3 "NULL" "-112,0,-2.125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_128a.mdl" "Portal 2 Walkway UG" "128a" 1 "NULL" "0, 64,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_128a.mdl" "Portal 2 Walkway UG" "128a" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_128b.mdl" "Portal 2 Walkway UG" "128b" 1 "NULL" "0, 64,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_128b.mdl" "Portal 2 Walkway UG" "128b" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_128c.mdl" "Portal 2 Walkway UG" "128c" 1 "NULL" "0, 64,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_128c.mdl" "Portal 2 Walkway UG" "128c" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_256a.mdl" "Portal 2 Walkway UG" "256a" 1 "NULL" "0, 128,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_256a.mdl" "Portal 2 Walkway UG" "256a" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_256b.mdl" "Portal 2 Walkway UG" "256b" 1 "NULL" "0, 128,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_256b.mdl" "Portal 2 Walkway UG" "256b" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_256c.mdl" "Portal 2 Walkway UG" "256c" 1 "NULL" "0, 128,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_256c.mdl" "Portal 2 Walkway UG" "256c" 2 "NULL" "0,-128,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_32a.mdl" "Portal 2 Walkway UG" "32a" 1 "NULL" "0, 16,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_32a.mdl" "Portal 2 Walkway UG" "32a" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_32b.mdl" "Portal 2 Walkway UG" "32b" 1 "NULL" "0, 16,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_32b.mdl" "Portal 2 Walkway UG" "32b" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_32c.mdl" "Portal 2 Walkway UG" "32c" 1 "NULL" "0, 16,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_32c.mdl" "Portal 2 Walkway UG" "32c" 2 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_512a.mdl" "Portal 2 Walkway UG" "512a" 1 "NULL" "0, 256,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_512a.mdl" "Portal 2 Walkway UG" "512a" 2 "NULL" "0,-256,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_512b.mdl" "Portal 2 Walkway UG" "512b" 1 "NULL" "0, 256,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_512b.mdl" "Portal 2 Walkway UG" "512b" 2 "NULL" "0,-256,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_512c.mdl" "Portal 2 Walkway UG" "512c" 1 "NULL" "0, 256,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_512c.mdl" "Portal 2 Walkway UG" "512c" 2 "NULL" "0,-256,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_64a.mdl" "Portal 2 Walkway UG" "64a" 1 "NULL" "0, 32,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_64a.mdl" "Portal 2 Walkway UG" "64a" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_64b.mdl" "Portal 2 Walkway UG" "64b" 1 "NULL" "0, 32,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_64b.mdl" "Portal 2 Walkway UG" "64b" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_64c.mdl" "Portal 2 Walkway UG" "64c" 1 "NULL" "0, 32,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_64c.mdl" "Portal 2 Walkway UG" "64c" 2 "NULL" "0,-32,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_corner.mdl" "Portal 2 Walkway UG" "Corner" 1 "NULL" "64,0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_corner.mdl" "Portal 2 Walkway UG" "Corner" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_destroyed_128a.mdl" "Portal 2 Walkway UG" "128a" 1 "NULL" "0,0,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_destroyed_64a.mdl" "Portal 2 Walkway UG" "64a" 1 "NULL" "0,0,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_end_a.mdl" "Portal 2 Walkway UG" "A" 1 "NULL" "0,-16,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_end_b.mdl" "Portal 2 Walkway UG" "B" 1 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_end_c.mdl" "Portal 2 Walkway UG" "C" 1 "36,0,-2.125" "0, 4,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_end_c.mdl" "Portal 2 Walkway UG" "C" 2 "-36,0,-2.125" "0,-4,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_end_cap.mdl" "Portal 2 Walkway UG" "Cap" 1 "36,0,-2.125" "0, 4,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_end_cap.mdl" "Portal 2 Walkway UG" "Cap" 2 "-36,0,-2.125" "0,-4,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_a.mdl" "Portal 2 Walkway UG" "A" 1 "NULL" "0, 4,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_a.mdl" "Portal 2 Walkway UG" "A" 2 "NULL" "0,-4,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_b.mdl" "Portal 2 Walkway UG" "B" 1 "NULL" "0, 4,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_b.mdl" "Portal 2 Walkway UG" "B" 2 "NULL" "0,-4,-2.125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_frame.mdl" "Portal 2 Walkway UG" "Frame" 1 "36,0,-2.125" "0, 4,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_frame.mdl" "Portal 2 Walkway UG" "Frame" 2 "-36,0,-2.125" "0,-4,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_frame_alt.mdl" "Portal 2 Walkway UG" "Alt" 1 "36,0,-2.125" "0, 4,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_gate_frame_alt.mdl" "Portal 2 Walkway UG" "Alt" 2 "-36,0,-2.125" "0,-4,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_l.mdl" "Portal 2 Walkway UG" "L" 1 "NULL" "64,0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_l.mdl" "Portal 2 Walkway UG" "L" 2 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_t.mdl" "Portal 2 Walkway UG" "T" 1 "NULL" "64,0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_t.mdl" "Portal 2 Walkway UG" "T" 2 "NULL" "0,64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_t.mdl" "Portal 2 Walkway UG" "T" 3 "NULL" "0,-64,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_x.mdl" "Portal 2 Walkway UG" "X" 1 "NULL" "64,0,-2.125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_x.mdl" "Portal 2 Walkway UG" "X" 2 "NULL" "0,64,-2.125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_x.mdl" "Portal 2 Walkway UG" "X" 3 "NULL" "-64,0,-2.125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_underground/walkway_x.mdl" "Portal 2 Walkway UG" "X" 4 "NULL" "0,-64,-2.125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_90deg.mdl" "Portal Tubes" "Clear Tube 90deg" 1 "NULL" "64.041,0.049, 0.131" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_90deg.mdl" "Portal Tubes" "Clear Tube 90deg" 2 "NULL" " 0.002,0.040,-63.904" "90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_broken.mdl" "Portal Tubes" "Clear Tube Broken" 1 "NULL" "0.009,0 , 63.896" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_broken.mdl" "Portal Tubes" "Clear Tube Broken" 2 "NULL" "0.008,0.004,-63.897" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_straight.mdl" "Portal Tubes" "Clear Tube Straight" 1 "NULL" "0.009,0 , 63.896" "-90, 0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_straight.mdl" "Portal Tubes" "Clear Tube Straight" 2 "NULL" "0.008,0.004,-63.897" " 90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_tjoint.mdl" "Portal Tubes" "Clear Tube Tjoint" 1 "NULL" "-0.014,0.13,96.075" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_tjoint.mdl" "Portal Tubes" "Clear Tube Tjoint" 2 "NULL" "-0.004,-95.763,0.016" "0,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/props_bts/clear_tube_tjoint.mdl" "Portal Tubes" "Clear Tube Tjoint" 3 "NULL" "0,96,0.083" "0,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/askari/bridge01_stlve.mdl" "Random Bridges" "Stlve" 1 "NULL" "192, 0, 189.531" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/askari/bridge01_stlve.mdl" "Random Bridges" "Stlve" 2 "NULL" "-192, 0, 189.531" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/karkar/bridge.mdl" "Random Bridges" "Karkar" 1 "NULL" "62.07, -343.696, 208.295" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/karkar/bridge.mdl" "Random Bridges" "Karkar" 2 "NULL" "62.07, 334.44, 208.295" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/karkar/wooden_bridge_helly.mdl" "Random Bridges" "Wooden Bridge Helly" 1 "NULL" "0, 318.601, 26.783" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/karkar/wooden_bridge_helly.mdl" "Random Bridges" "Wooden Bridge Helly" 2 "NULL" "0, -240.814, 2.85" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/karkar/wooden_bridge_helly_broken_bstk.mdl" "Random Bridges" "Wooden Bridge Helly Broken Bstk" 1 "NULL" "-318.524, 0, 26.757" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/karkar/wooden_bridge_helly_broken_bstk.mdl" "Random Bridges" "Wooden Bridge Helly Broken Bstk" 2 "NULL" "244.523, 0, 3.55" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/tresslebridge.mdl" "Random Bridges" "Tresslebridge" 1 "NULL" "374.246, -1.2345, 24.849" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props/tresslebridge.mdl" "Random Bridges" "Tresslebridge" 2 "NULL" "-345.367, -1.2345, 24.85" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_2fort/bridgesupports001.mdl" "Random Bridges" "TF Support" 1 "NULL" "448, 0, -14.268" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_2fort/bridgesupports001.mdl" "Random Bridges" "TF Support" 2 "NULL" "-448, 0, -15.558" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge01.mdl" "Random Bridges" "Canal Bridge01" 1 "NULL" "455.345, -6.815, 201.73" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge01.mdl" "Random Bridges" "Canal Bridge01" 2 "NULL" "-456.655, -6.815, 201.73" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge01b.mdl" "Random Bridges" "Canal Bridge01b" 1 "NULL" "910.69, -13.63, 403.46" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge01b.mdl" "Random Bridges" "Canal Bridge01b" 2 "NULL" "-913.31, -13.63, 403.46" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge02.mdl" "Random Bridges" "Canal Bridge02" 1 "NULL" "0, 512.155, 288" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge02.mdl" "Random Bridges" "Canal Bridge02" 2 "NULL" "0, -512.212, 288" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge03a.mdl" "Random Bridges" "Canal Bridge03a" 1 "NULL" "320.89, 0, 187.742" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge03a.mdl" "Random Bridges" "Canal Bridge03a" 2 "NULL" "-320.059, 0, 187.742" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge03b.mdl" "Random Bridges" "Canal Bridge03b" 1 "NULL" "320.89, 0, 187.741" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge03b.mdl" "Random Bridges" "Canal Bridge03b" 2 "NULL" "-320.059, 0, 187.741" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge03c.mdl" "Random Bridges" "Canal Bridge03c" 1 "NULL" "1026.848, 0, 600.773" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_canal/canal_bridge03c.mdl" "Random Bridges" "Canal Bridge03c" 2 "NULL" "-1024.189, 0, 600.773" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_combine/combine_bridge.mdl" "Random Bridges" "Combine Bridge" 1 "NULL" "-8.401, 0, 124.685" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_combine/combine_bridge.mdl" "Random Bridges" "Combine Bridge" 2 "NULL" "-320, 0, 124.685" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_combine/combine_bridge_b.mdl" "Random Bridges" "Combine Bridge B" 1 "NULL" "-330.895, 0.039, 124.673" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_combine/combine_bridge_b.mdl" "Random Bridges" "Combine Bridge B" 2 "NULL" "-522.855, 0.251, 124.671" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/big_jetty.mdl" "Random Bridges" "Big Jetty" 1 "NULL" "0, 116.668, 57.94" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/big_jetty.mdl" "Random Bridges" "Big Jetty" 2 "NULL" "0, -11.914, 57.939" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_128.mdl" "Random Bridges" "Boardwalk 128" 1 "NULL" "0, 67.452, 14.326" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_128.mdl" "Random Bridges" "Boardwalk 128" 2 "NULL" "0,-63.954, 14.325" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_256.mdl" "Random Bridges" "Boardwalk 256" 1 "NULL" "0, 131.491, 14.199" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_256.mdl" "Random Bridges" "Boardwalk 256" 2 "NULL" "0,-139.388, 14.198" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_384.mdl" "Random Bridges" "Boardwalk 384" 1 "NULL" "0, 199.517, 14.302" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_384.mdl" "Random Bridges" "Boardwalk 384" 2 "NULL" "0,-196.069, 14.215" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_tall_128.mdl" "Random Bridges" "Boardwalk Tall 128" 1 "NULL" "0, 67.244, 14.323" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_tall_128.mdl" "Random Bridges" "Boardwalk Tall 128" 2 "NULL" "0,-63.033, 14.337" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_tall_256.mdl" "Random Bridges" "Boardwalk Tall 256" 1 "NULL" "0, 131.502, 14.339" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_tall_256.mdl" "Random Bridges" "Boardwalk Tall 256" 2 "NULL" "0,-127.085, 14.319" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_tall_384.mdl" "Random Bridges" "Boardwalk Tall 384" 1 "NULL" "0, 199.517, 14.332" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_swamp/boardwalk_tall_384.mdl" "Random Bridges" "Boardwalk Tall 384" 2 "NULL" "0,-196.012, 14.318" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge01.mdl" "Random Bridges" "Underworld Bridge01" 1 "NULL" "0, 68.767, 14.898" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge01.mdl" "Random Bridges" "Underworld Bridge01" 2 "NULL" "0, -70.316, 14.898" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge02.mdl" "Random Bridges" "Underworld Bridge02" 1 "NULL" "5.236, -13.396, 11.976" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge02.mdl" "Random Bridges" "Underworld Bridge02" 2 "NULL" "5.236, 479.851, 11.976" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge03.mdl" "Random Bridges" "Underworld Bridge03" 1 "NULL" "1.436, -12.169, 11.136" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge03.mdl" "Random Bridges" "Underworld Bridge03" 2 "NULL" "1.436, 480.851, 11.136" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge04.mdl" "Random Bridges" "Underworld Bridge04" 1 "NULL" "-2.253, -11.847, 10.696" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_viaduct_event/underworld_bridge04.mdl" "Random Bridges" "Underworld Bridge04" 2 "NULL" "-2.253, 480.851, 10.696" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/props_wasteland/bridge_low_res.mdl" "Random Bridges" "Bridge Low Res" 1 "NULL" "5056, 219.145, 992.765" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/props_wasteland/bridge_low_res.mdl" "Random Bridges" "Bridge Low Res" 2 "NULL" "-576, 219.145, 992.765" "0, 180,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/small_bunker1.mdl" "RockMan's Fortification" "Bunker1" 1 "NULL" "0,-72,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/small_bunker1a.mdl" "RockMan's Fortification" "Bunker1a" 1 "NULL" "0,-156,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/small_bunker2.mdl" "RockMan's Fortification" "Bunker2" 1 "NULL" "0,-100,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/small_bunker2a.mdl" "RockMan's Fortification" "Bunker2a" 1 "NULL" "0,-156,-24" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_3way.mdl" "RockMan's Fortification" "3way" 1 "NULL" "192,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_3way.mdl" "RockMan's Fortification" "3way" 2 "NULL" "0,192,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_3way.mdl" "RockMan's Fortification" "3way" 3 "NULL" "-192,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_4way.mdl" "RockMan's Fortification" "4way" 1 "NULL" "192,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_4way.mdl" "RockMan's Fortification" "4way" 2 "NULL" "0,192,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_4way.mdl" "RockMan's Fortification" "4way" 3 "NULL" "-192,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_4way.mdl" "RockMan's Fortification" "4way" 4 "NULL" "0,-192,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_end_corridor.mdl" "RockMan's Fortification" "Corridor" 1 "NULL" "177,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_end_corridor.mdl" "RockMan's Fortification" "Corridor" 2 "NULL" "0,192,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_end_corridor.mdl" "RockMan's Fortification" "Corridor" 3 "NULL" "-177,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_end_single.mdl" "RockMan's Fortification" "Single" 1 "NULL" "0,-80,0" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_end_single.mdl" "RockMan's Fortification" "Single" 2 "NULL" "0,80,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_straight.mdl" "RockMan's Fortification" "Straight" 1 "NULL" "177,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_straight.mdl" "RockMan's Fortification" "Straight" 2 "NULL" "-177,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_turn.mdl" "RockMan's Fortification" "Turn" 1 "NULL" "16.5014,208.5,0" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/fortification collection/trench_turn.mdl" "RockMan's Fortification" "Turn" 2 "NULL" "-208.5,-16.5014,0" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_1024.mdl" "Ron's 2ft track pack" "W 1024" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_1024.mdl" "Ron's 2ft track pack" "W 1024" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_128.mdl" "Ron's 2ft track pack" "W 128" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_128.mdl" "Ron's 2ft track pack" "W 128" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_256.mdl" "Ron's 2ft track pack" "W 256" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_256.mdl" "Ron's 2ft track pack" "W 256" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_1024.mdl" "Ron's 2ft track pack" "C 1024" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_1024.mdl" "Ron's 2ft track pack" "C 1024" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_128.mdl" "Ron's 2ft track pack" "C 128" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_128.mdl" "Ron's 2ft track pack" "C 128" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_256.mdl" "Ron's 2ft track pack" "C 256" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_256.mdl" "Ron's 2ft track pack" "C 256" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_32.mdl" "Ron's 2ft track pack" "C 32" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_32.mdl" "Ron's 2ft track pack" "C 32" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_512.mdl" "Ron's 2ft track pack" "C 512" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_512.mdl" "Ron's 2ft track pack" "C 512" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_64.mdl" "Ron's 2ft track pack" "C 64" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_64.mdl" "Ron's 2ft track pack" "C 64" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_1.mdl" "Ron's 2ft track pack" "C Curve 45 Left 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_1.mdl" "Ron's 2ft track pack" "C Curve 45 Left 1" 2 "NULL" "-724.122,-299.876,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_2.mdl" "Ron's 2ft track pack" "C Curve 45 Left 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_2.mdl" "Ron's 2ft track pack" "C Curve 45 Left 2" 2 "NULL" "-811.77,-336.23,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_3.mdl" "Ron's 2ft track pack" "C Curve 45 Left 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_3.mdl" "Ron's 2ft track pack" "C Curve 45 Left 3" 2 "NULL" "-899.503,-372.497,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_4.mdl" "Ron's 2ft track pack" "C Curve 45 Left 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_left_4.mdl" "Ron's 2ft track pack" "C Curve 45 Left 4" 2 "NULL" "-987.115,-408.885,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_1.mdl" "Ron's 2ft track pack" "C Curve 45 Right 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_1.mdl" "Ron's 2ft track pack" "C Curve 45 Right 1" 2 "NULL" "-724.122,299.876,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_2.mdl" "Ron's 2ft track pack" "C Curve 45 Right 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_2.mdl" "Ron's 2ft track pack" "C Curve 45 Right 2" 2 "NULL" "-811.77,336.23,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_3.mdl" "Ron's 2ft track pack" "C Curve 45 Right 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_3.mdl" "Ron's 2ft track pack" "C Curve 45 Right 3" 2 "NULL" "-899.503,372.497,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_4.mdl" "Ron's 2ft track pack" "C Curve 45 Right 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_45_right_4.mdl" "Ron's 2ft track pack" "C Curve 45 Right 4" 2 "NULL" "-987.115,408.885,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_1.mdl" "Ron's 2ft track pack" "C Curve 90 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_1.mdl" "Ron's 2ft track pack" "C Curve 90 1" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_2.mdl" "Ron's 2ft track pack" "C Curve 90 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_2.mdl" "Ron's 2ft track pack" "C Curve 90 2" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_3.mdl" "Ron's 2ft track pack" "C Curve 90 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_3.mdl" "Ron's 2ft track pack" "C Curve 90 3" 2 "NULL" "-1272,-1272,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_4.mdl" "Ron's 2ft track pack" "C Curve 90 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_curve_90_4.mdl" "Ron's 2ft track pack" "C Curve 90 4" 2 "NULL" "-1396,-1396,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_end.mdl" "Ron's 2ft track pack" "C End" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_end.mdl" "Ron's 2ft track pack" "C End" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_pillar.mdl" "Ron's 2ft track pack" "C Pillar" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_2_pillar.mdl" "Ron's 2ft track pack" "C Pillar" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_512.mdl" "Ron's 2ft track pack" "W 512" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_512.mdl" "Ron's 2ft track pack" "W 512" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_end.mdl" "Ron's 2ft track pack" "W End" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_end.mdl" "Ron's 2ft track pack" "W End" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_pillar.mdl" "Ron's 2ft track pack" "W Pillar" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/bridges/bridge_pillar.mdl" "Ron's 2ft track pack" "W Pillar" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_1.mdl" "Ron's 2ft track pack" "22.5 Left 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_1.mdl" "Ron's 2ft track pack" "22.5 Left 1" 2 "NULL" "-391.846,-77.978,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_2.mdl" "Ron's 2ft track pack" "22.5 Left 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_2.mdl" "Ron's 2ft track pack" "22.5 Left 2" 2 "NULL" "-439.352,-87.36,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_3.mdl" "Ron's 2ft track pack" "22.5 Left 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_3.mdl" "Ron's 2ft track pack" "22.5 Left 3" 2 "NULL" "-486.814,-96.707,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_4.mdl" "Ron's 2ft track pack" "22.5 Left 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_left_4.mdl" "Ron's 2ft track pack" "22.5 Left 4" 2 "NULL" "-532.889,-105.687,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_1.mdl" "Ron's 2ft track pack" "22.5 Right 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_1.mdl" "Ron's 2ft track pack" "22.5 Right 1" 2 "NULL" "-391.846,77.978,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_2.mdl" "Ron's 2ft track pack" "22.5 Right 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_2.mdl" "Ron's 2ft track pack" "22.5 Right 2" 2 "NULL" "-439.352,87.36,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_3.mdl" "Ron's 2ft track pack" "22.5 Right 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_3.mdl" "Ron's 2ft track pack" "22.5 Right 3" 2 "NULL" "-486.814,96.707,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_4.mdl" "Ron's 2ft track pack" "22.5 Right 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_225_right_4.mdl" "Ron's 2ft track pack" "22.5 Right 4" 2 "NULL" "-532.866,105.763,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_1.mdl" "Ron's 2ft track pack" "45 Left 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_1.mdl" "Ron's 2ft track pack" "45 Left 1" 2 "NULL" "-724.122,-299.876,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_2.mdl" "Ron's 2ft track pack" "45 Left 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_2.mdl" "Ron's 2ft track pack" "45 Left 2" 2 "NULL" "-811.77,-336.23,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_3.mdl" "Ron's 2ft track pack" "45 Left 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_3.mdl" "Ron's 2ft track pack" "45 Left 3" 2 "NULL" "-899.503,-372.497,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_4.mdl" "Ron's 2ft track pack" "45 Left 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_left_4.mdl" "Ron's 2ft track pack" "45 Left 4" 2 "NULL" "-987.115,-408.885,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_1.mdl" "Ron's 2ft track pack" "45 Right 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_1.mdl" "Ron's 2ft track pack" "45 Right 1" 2 "NULL" "-724.122,299.876,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_2.mdl" "Ron's 2ft track pack" "45 Right 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_2.mdl" "Ron's 2ft track pack" "45 Right 2" 2 "NULL" "-811.77,336.23,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_3.mdl" "Ron's 2ft track pack" "45 Right 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_3.mdl" "Ron's 2ft track pack" "45 Right 3" 2 "NULL" "-899.503,372.497,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_4.mdl" "Ron's 2ft track pack" "45 Right 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_45_right_4.mdl" "Ron's 2ft track pack" "45 Right 4" 2 "NULL" "-987.115,408.885,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_1.mdl" "Ron's 2ft track pack" "90 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_1.mdl" "Ron's 2ft track pack" "90 1" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_2.mdl" "Ron's 2ft track pack" "90 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_2.mdl" "Ron's 2ft track pack" "90 2" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_3.mdl" "Ron's 2ft track pack" "90 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_3.mdl" "Ron's 2ft track pack" "90 3" 2 "NULL" "-1272,-1272,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_4.mdl" "Ron's 2ft track pack" "90 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/curve_90_4.mdl" "Ron's 2ft track pack" "90 4" 2 "NULL" "-1396,-1396,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/s_curve_left.mdl" "Ron's 2ft track pack" "S Left" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/s_curve_left.mdl" "Ron's 2ft track pack" "S Left" 2 "NULL" "-704,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/s_curve_right.mdl" "Ron's 2ft track pack" "S Right" 1 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/curves/s_curve_right.mdl" "Ron's 2ft track pack" "S Right" 2 "NULL" "-704,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_1024.mdl" "Ron's 2ft track pack" "1024" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_1024.mdl" "Ron's 2ft track pack" "1024" 2 "NULL" "-512,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_1024_sided.mdl" "Ron's 2ft track pack" "1024 sided" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_1024_sided.mdl" "Ron's 2ft track pack" "1024 sided" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_1024_sidedd.mdl" "Ron's 2ft track pack" "1024 double sided" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_1024_sidedd.mdl" "Ron's 2ft track pack" "1024 double sided" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_128.mdl" "Ron's 2ft track pack" "128" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_128.mdl" "Ron's 2ft track pack" "128" 2 "NULL" "-64,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_128_sided.mdl" "Ron's 2ft track pack" "128 sided" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_128_sided.mdl" "Ron's 2ft track pack" "128 sided" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_128_sidedd.mdl" "Ron's 2ft track pack" "128 double sided" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_128_sidedd.mdl" "Ron's 2ft track pack" "128 double sided" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_256.mdl" "Ron's 2ft track pack" "256" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_256.mdl" "Ron's 2ft track pack" "256" 2 "NULL" "-128,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_256_sided.mdl" "Ron's 2ft track pack" "256 sided" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_256_sided.mdl" "Ron's 2ft track pack" "256 sided" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_256_sidedd.mdl" "Ron's 2ft track pack" "256 double sided" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_256_sidedd.mdl" "Ron's 2ft track pack" "256 double sided" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_32.mdl" "Ron's 2ft track pack" "32" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_32.mdl" "Ron's 2ft track pack" "32" 2 "NULL" "-16,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_32_sided.mdl" "Ron's 2ft track pack" "32 sided" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_32_sided.mdl" "Ron's 2ft track pack" "32 sided" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_32_sidedd.mdl" "Ron's 2ft track pack" "32 double sided" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_32_sidedd.mdl" "Ron's 2ft track pack" "32 double sided" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_512.mdl" "Ron's 2ft track pack" "512" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_512.mdl" "Ron's 2ft track pack" "512" 2 "NULL" "-256,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_512_sided.mdl" "Ron's 2ft track pack" "512 sided" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_512_sided.mdl" "Ron's 2ft track pack" "512 sided" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_512_sidedd.mdl" "Ron's 2ft track pack" "512 double sided" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_512_sidedd.mdl" "Ron's 2ft track pack" "512 double sided" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_64.mdl" "Ron's 2ft track pack" "64" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_64.mdl" "Ron's 2ft track pack" "64" 2 "NULL" "-32,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_64_sided.mdl" "Ron's 2ft track pack" "64 sided" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_64_sided.mdl" "Ron's 2ft track pack" "64 sided" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_64_sidedd.mdl" "Ron's 2ft track pack" "64 double sided" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_64_sidedd.mdl" "Ron's 2ft track pack" "64 double sided" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge.mdl" "Ron's 2ft track pack" "Bridge" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge.mdl" "Ron's 2ft track pack" "Bridge" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge_sided.mdl" "Ron's 2ft track pack" "Bridge sided" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge_sided.mdl" "Ron's 2ft track pack" "Bridge sided" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge_sided_m.mdl" "Ron's 2ft track pack" "Bridge sided M" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge_sided_m.mdl" "Ron's 2ft track pack" "Bridge sided M" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge_sidedd.mdl" "Ron's 2ft track pack" "Bridge double sided" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_bridge_sidedd.mdl" "Ron's 2ft track pack" "Bridge double sided" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_buffer.mdl" "Ron's 2ft track pack" "Buffer" 1 "NULL" "-40,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_buffer_sided.mdl" "Ron's 2ft track pack" "Buffer Sided" 1 "NULL" "-40,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_buffer_sided_m.mdl" "Ron's 2ft track pack" "Buffer Sided m" 1 "NULL" "-40,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_buffer_sidedd.mdl" "Ron's 2ft track pack" "Buffer Sidedd" 1 "NULL" "-40,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_1.mdl" "Ron's 2ft track pack" "45 Left 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_1.mdl" "Ron's 2ft track pack" "45 Left 1" 2 "NULL" "-724.122,-299.876,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_2.mdl" "Ron's 2ft track pack" "45 Left 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_2.mdl" "Ron's 2ft track pack" "45 Left 2" 2 "NULL" "-811.77,-336.23,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_3.mdl" "Ron's 2ft track pack" "45 Left 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_3.mdl" "Ron's 2ft track pack" "45 Left 3" 2 "NULL" "-899.503,-372.497,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_4.mdl" "Ron's 2ft track pack" "45 Left 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_4.mdl" "Ron's 2ft track pack" "45 Left 4" 2 "NULL" "-987.115,-408.885,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_1.mdl" "Ron's 2ft track pack" "Sided 45 Left 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_1.mdl" "Ron's 2ft track pack" "Sided 45 Left 1" 2 "NULL" "-724.122,-299.876,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_2.mdl" "Ron's 2ft track pack" "Sided 45 Left 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_2.mdl" "Ron's 2ft track pack" "Sided 45 Left 2" 2 "NULL" "-811.77,-336.23,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_3.mdl" "Ron's 2ft track pack" "Sided 45 Left 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_3.mdl" "Ron's 2ft track pack" "Sided 45 Left 3" 2 "NULL" "-899.503,-372.497,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_4.mdl" "Ron's 2ft track pack" "Sided 45 Left 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_4.mdl" "Ron's 2ft track pack" "Sided 45 Left 4" 2 "NULL" "-987.115,-408.885,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_1.mdl" "Ron's 2ft track pack" "Sided M 45 Left 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_1.mdl" "Ron's 2ft track pack" "Sided M 45 Left 1" 2 "NULL" "-724.122,-299.876,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_2.mdl" "Ron's 2ft track pack" "Sided M 45 Left 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_2.mdl" "Ron's 2ft track pack" "Sided M 45 Left 2" 2 "NULL" "-811.77,-336.23,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_3.mdl" "Ron's 2ft track pack" "Sided M 45 Left 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_3.mdl" "Ron's 2ft track pack" "Sided M 45 Left 3" 2 "NULL" "-899.503,-372.497,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_4.mdl" "Ron's 2ft track pack" "Sided M 45 Left 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sided_m_4.mdl" "Ron's 2ft track pack" "Sided M 45 Left 4" 2 "NULL" "-987.115,-408.885,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_1.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_1.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 1" 2 "NULL" "-724.122,-299.876,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_2.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_2.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 2" 2 "NULL" "-811.77,-336.23,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_3.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_3.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 3" 2 "NULL" "-899.503,-372.497,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_4.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_left_sidedd_4.mdl" "Ron's 2ft track pack" "Sided Double 45 Left 4" 2 "NULL" "-987.115,-408.885,6.016" "0,-135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_1.mdl" "Ron's 2ft track pack" "45 Right 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_1.mdl" "Ron's 2ft track pack" "45 Right 1" 2 "NULL" "-724.122,299.876,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_2.mdl" "Ron's 2ft track pack" "45 Right 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_2.mdl" "Ron's 2ft track pack" "45 Right 2" 2 "NULL" "-811.77,336.23,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_3.mdl" "Ron's 2ft track pack" "45 Right 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_3.mdl" "Ron's 2ft track pack" "45 Right 3" 2 "NULL" "-899.503,372.497,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_4.mdl" "Ron's 2ft track pack" "45 Right 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_4.mdl" "Ron's 2ft track pack" "45 Right 4" 2 "NULL" "-987.115,408.885,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_1.mdl" "Ron's 2ft track pack" "Sided 45 Right 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_1.mdl" "Ron's 2ft track pack" "Sided 45 Right 1" 2 "NULL" "-724.122,299.876,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_2.mdl" "Ron's 2ft track pack" "Sided 45 Right 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_2.mdl" "Ron's 2ft track pack" "Sided 45 Right 2" 2 "NULL" "-811.77,336.23,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_3.mdl" "Ron's 2ft track pack" "Sided 45 Right 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_3.mdl" "Ron's 2ft track pack" "Sided 45 Right 3" 2 "NULL" "-899.503,372.497,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_4.mdl" "Ron's 2ft track pack" "Sided 45 Right 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_4.mdl" "Ron's 2ft track pack" "Sided 45 Right 4" 2 "NULL" "-987.115,408.885,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_1.mdl" "Ron's 2ft track pack" "Sided M 45 Right 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_1.mdl" "Ron's 2ft track pack" "Sided M 45 Right 1" 2 "NULL" "-724.122,299.876,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_2.mdl" "Ron's 2ft track pack" "Sided M 45 Right 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_2.mdl" "Ron's 2ft track pack" "Sided M 45 Right 2" 2 "NULL" "-811.77,336.23,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_3.mdl" "Ron's 2ft track pack" "Sided M 45 Right 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_3.mdl" "Ron's 2ft track pack" "Sided M 45 Right 3" 2 "NULL" "-899.503,372.497,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_4.mdl" "Ron's 2ft track pack" "Sided M 45 Right 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sided_m_4.mdl" "Ron's 2ft track pack" "Sided M 45 Right 4" 2 "NULL" "-987.115,408.885,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_1.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_1.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 1" 2 "NULL" "-724.122,299.876,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_2.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_2.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 2" 2 "NULL" "-811.77,336.23,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_3.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_3.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 3" 2 "NULL" "-899.503,372.497,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_4.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_45_right_sidedd_4.mdl" "Ron's 2ft track pack" "Sided Double 45 Right 4" 2 "NULL" "-987.115,408.885,6.016" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_1.mdl" "Ron's 2ft track pack" "90 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_1.mdl" "Ron's 2ft track pack" "90 1" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_2.mdl" "Ron's 2ft track pack" "90 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_2.mdl" "Ron's 2ft track pack" "90 2" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_3.mdl" "Ron's 2ft track pack" "90 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_3.mdl" "Ron's 2ft track pack" "90 3" 2 "NULL" "-1272,-1272,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_4.mdl" "Ron's 2ft track pack" "90 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_4.mdl" "Ron's 2ft track pack" "90 4" 2 "NULL" "-1396,-1396,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_1.mdl" "Ron's 2ft track pack" "Sided 90 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_1.mdl" "Ron's 2ft track pack" "Sided 90 1" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_2.mdl" "Ron's 2ft track pack" "Sided 90 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_2.mdl" "Ron's 2ft track pack" "Sided 90 2" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_3.mdl" "Ron's 2ft track pack" "Sided 90 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_3.mdl" "Ron's 2ft track pack" "Sided 90 3" 2 "NULL" "-1272,-1272,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_4.mdl" "Ron's 2ft track pack" "Sided 90 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_4.mdl" "Ron's 2ft track pack" "Sided 90 4" 2 "NULL" "-1396,-1396,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_1.mdl" "Ron's 2ft track pack" "Sided M 90 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_1.mdl" "Ron's 2ft track pack" "Sided M 90 1" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_2.mdl" "Ron's 2ft track pack" "Sided M 90 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_2.mdl" "Ron's 2ft track pack" "Sided M 90 2" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_3.mdl" "Ron's 2ft track pack" "Sided M 90 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_3.mdl" "Ron's 2ft track pack" "Sided M 90 3" 2 "NULL" "-1272,-1272,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_4.mdl" "Ron's 2ft track pack" "Sided M 90 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sided_m_4.mdl" "Ron's 2ft track pack" "Sided M 90 4" 2 "NULL" "-1396,-1396,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_1.mdl" "Ron's 2ft track pack" "Sided Double 90 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_1.mdl" "Ron's 2ft track pack" "Sided Double 90 1" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_2.mdl" "Ron's 2ft track pack" "Sided Double 90 2" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_2.mdl" "Ron's 2ft track pack" "Sided Double 90 2" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_3.mdl" "Ron's 2ft track pack" "Sided Double 90 3" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_3.mdl" "Ron's 2ft track pack" "Sided Double 90 3" 2 "NULL" "-1272,-1272,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_4.mdl" "Ron's 2ft track pack" "Sided Double 90 4" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_curve_90_sidedd_4.mdl" "Ron's 2ft track pack" "Sided Double 90 4" 2 "NULL" "-1396,-1396,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting.mdl" "Ron's 2ft track pack" "Fitting" 1 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting.mdl" "Ron's 2ft track pack" "Fitting" 2 "NULL" "8,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting_sided.mdl" "Ron's 2ft track pack" "Fitting Sided" 1 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting_sided.mdl" "Ron's 2ft track pack" "Fitting Sided" 2 "NULL" "8,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting_sided_m.mdl" "Ron's 2ft track pack" "Fitting Sided M" 1 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting_sided_m.mdl" "Ron's 2ft track pack" "Fitting Sided M" 2 "NULL" "8,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting_sidedd.mdl" "Ron's 2ft track pack" "Fitting Double Sided" 1 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_fitting_sidedd.mdl" "Ron's 2ft track pack" "Fitting Double Sided" 2 "NULL" "8,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_n_left.mdl" "Ron's 2ft track pack" "N Left" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_n_left.mdl" "Ron's 2ft track pack" "N Left" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_n_left.mdl" "Ron's 2ft track pack" "N Left" 3 "NULL" "-704,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_n_right.mdl" "Ron's 2ft track pack" "N Right" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_n_right.mdl" "Ron's 2ft track pack" "N Right" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_n_right.mdl" "Ron's 2ft track pack" "N Right" 3 "NULL" "-704,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_s_x.mdl" "Ron's 2ft track pack" "X" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_s_x.mdl" "Ron's 2ft track pack" "X" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_s_x.mdl" "Ron's 2ft track pack" "X" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_junction_s_x.mdl" "Ron's 2ft track pack" "X" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sided" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sided" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sided" 3 "NULL" "-704,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sided" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sided" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sided" 3 "NULL" "-704,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_s_x.mdl" "Ron's 2ft track pack" "X Sided" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_s_x.mdl" "Ron's 2ft track pack" "X Sided" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_s_x.mdl" "Ron's 2ft track pack" "X Sided" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_junction_s_x.mdl" "Ron's 2ft track pack" "X Sided" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_m_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sided m" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_m_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sided m" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_m_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sided m" 3 "NULL" "-704,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_m_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sided m" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_m_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sided m" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sided_m_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sided m" 3 "NULL" "-704,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sidedd" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sidedd" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_n_left.mdl" "Ron's 2ft track pack" "N Left Sidedd" 3 "NULL" "-704,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sidedd" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sidedd" 2 "NULL" "-704,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_n_right.mdl" "Ron's 2ft track pack" "N Right Sidedd" 3 "NULL" "-704,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_s_x.mdl" "Ron's 2ft track pack" "X Sidedd" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_s_x.mdl" "Ron's 2ft track pack" "X Sidedd" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_s_x.mdl" "Ron's 2ft track pack" "X Sidedd" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/embankment/embankment_sidedd_junction_s_x.mdl" "Ron's 2ft track pack" "X Sidedd" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/left_switched_1.mdl" "Ron's 2ft track pack" "Left Switched" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/left_switched_1.mdl" "Ron's 2ft track pack" "Left Switched" 2 "NULL" "-384,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/left_switched_1.mdl" "Ron's 2ft track pack" "Left Switched" 3 "NULL" "-391.842,-77.994,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/left_unswitched_1.mdl" "Ron's 2ft track pack" "Left Unswitched" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/left_unswitched_1.mdl" "Ron's 2ft track pack" "Left Unswitched" 2 "NULL" "-384,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/left_unswitched_1.mdl" "Ron's 2ft track pack" "Left Unswitched" 3 "NULL" "-391.842,-77.994,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/right_switched_1.mdl" "Ron's 2ft track pack" "Right Switched" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/right_switched_1.mdl" "Ron's 2ft track pack" "Right Switched" 2 "NULL" "-384,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/right_switched_1.mdl" "Ron's 2ft track pack" "Right Switched" 3 "NULL" "-391.842,77.994,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/right_unswitched_1.mdl" "Ron's 2ft track pack" "Right Unswitched" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/right_unswitched_1.mdl" "Ron's 2ft track pack" "Right Unswitched" 2 "NULL" "-384,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/junctions/right_unswitched_1.mdl" "Ron's 2ft track pack" "Right Unswitched" 3 "NULL" "-391.842,77.994,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/junctions/left/junction.mdl" "Ron's 2ft track pack" "Left" 1 "NULL" "0,0,6.016" "0,-90,0" "r2ftp_junction_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/junctions/left/junction.mdl" "Ron's 2ft track pack" "Left" 2 "NULL" "-0,384,6.016" "0,90,0" "r2ftp_junction_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/junctions/left/junction.mdl" "Ron's 2ft track pack" "Left" 3 "NULL" "-77.994,391.842,6.016" "0,112.5,0" "r2ftp_junction_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/junctions/right/junction.mdl" "Ron's 2ft track pack" "Right" 1 "NULL" "0,0,6.016" "0,-90,0" "r2ftp_junction_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/junctions/right/junction.mdl" "Ron's 2ft track pack" "Right" 2 "NULL" "0,384,6.016" "0,90,0" "r2ftp_junction_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/junctions/right/junction.mdl" "Ron's 2ft track pack" "Right" 3 "NULL" "77.994,391.842,6.016" "0,67.5,0" "r2ftp_junction_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl" "Ron's 2ft track pack" "N Left" 1 "NULL" "0,0,6.016" "0,-90,0" "r2ftp_junction_n_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl" "Ron's 2ft track pack" "N Left" 2 "NULL" "0,384,6.016" "0,90,0" "r2ftp_junction_n_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl" "Ron's 2ft track pack" "N Left" 3 "NULL" "-124,704,6.016" "0,90,0" "r2ftp_junction_n_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl" "Ron's 2ft track pack" "N Right" 1 "NULL" "0,0,6.016" "0,-90,0" "r2ftp_junction_n_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl" "Ron's 2ft track pack" "N Right" 2 "NULL" "0,384,6.016" "0,90,0" "r2ftp_junction_n_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl" "Ron's 2ft track pack" "N Right" 3 "NULL" "124,704,6.016" "0,90,0" "r2ftp_junction_n_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl" "Ron's 2ft track pack" "S Left" 1 "NULL" "0,0,6.016" "0,-90,0" "r2ftp_junction_s_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl" "Ron's 2ft track pack" "S Left" 2 "NULL" "0,384,6.016" "0,90,0" "r2ftp_junction_s_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl" "Ron's 2ft track pack" "S Left" 3 "NULL" "-124,704,6.016" "0,90,0" "r2ftp_junction_s_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl" "Ron's 2ft track pack" "S Left" 4 "NULL" "-124,320,6.016" "0,-90,0" "r2ftp_junction_s_left" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl" "Ron's 2ft track pack" "S Right" 1 "NULL" "0,0,6.016" "0,-90,0" "r2ftp_junction_s_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl" "Ron's 2ft track pack" "S Right" 2 "NULL" "0,384,6.016" "0, 90,0" "r2ftp_junction_s_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl" "Ron's 2ft track pack" "S Right" 3 "NULL" "124,704,6.016" "0, 90,0" "r2ftp_junction_s_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl" "Ron's 2ft track pack" "S Right" 4 "NULL" "124,320,6.016" "0,-90,0" "r2ftp_junction_s_right" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/x_junctions/x_junction.mdl" "Ron's 2ft track pack" "X" 1 "NULL" "62,0,6.016" "0,-90,0" "r2ftp_junction_x" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/x_junctions/x_junction.mdl" "Ron's 2ft track pack" "X" 2 "NULL" "62,704,6.016" "0,90,0" "r2ftp_junction_x" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/x_junctions/x_junction.mdl" "Ron's 2ft track pack" "X" 3 "NULL" "-62,704,6.016" "0,90,0" "r2ftp_junction_x" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/x_junctions/x_junction.mdl" "Ron's 2ft track pack" "X" 4 "NULL" "-62,0,6.016" "0,-90,0" "r2ftp_junction_x" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/y_junctions/y_junction.mdl" "Ron's 2ft track pack" "Y" 1 "NULL" "0,0,6.016" "0,-90,0" "r2ftp_junction_y" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/y_junctions/y_junction.mdl" "Ron's 2ft track pack" "Y" 2 "NULL" "77.969124,391.794891,6.016" "0, 67.5,0" "r2ftp_junction_y" +TRACKASSEMBLY_PIECES "models/ron/2ft/luajunctions/y_junctions/y_junction.mdl" "Ron's 2ft track pack" "Y" 3 "NULL" "-77.969093,391.794952,6.016" "0,112.5,0" "r2ftp_junction_y" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/90crossing.mdl" "Ron's 2ft track pack" "90 Crossing" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/90crossing.mdl" "Ron's 2ft track pack" "90 Crossing" 2 "NULL" "0,64,6.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/90crossing.mdl" "Ron's 2ft track pack" "90 Crossing" 3 "NULL" "-64,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/90crossing.mdl" "Ron's 2ft track pack" "90 Crossing" 4 "NULL" "0,-64,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/buffer.mdl" "Ron's 2ft track pack" "Buffer" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/buffer_2.mdl" "Ron's 2ft track pack" "Buffer Sh2" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/buffer_2.mdl" "Ron's 2ft track pack" "Buffer Sh2" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/buffer_3.mdl" "Ron's 2ft track pack" "Buffer 2" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/buffer_3.mdl" "Ron's 2ft track pack" "Buffer 2" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/passenger_crossing.mdl" "Ron's 2ft track pack" "Passenger Crossing" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/passenger_crossing.mdl" "Ron's 2ft track pack" "Passenger Crossing" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/rerailer.mdl" "Ron's 2ft track pack" "Rerailer" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/rerailer.mdl" "Ron's 2ft track pack" "Rerailer" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/shed.mdl" "Ron's 2ft track pack" "Shed" 1 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/shed_left.mdl" "Ron's 2ft track pack" "Shed Left" 1 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/shed_middle.mdl" "Ron's 2ft track pack" "Shed Middle" 1 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/shed_right.mdl" "Ron's 2ft track pack" "Shed Right" 1 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_barrier_closed.mdl" "Ron's 2ft track pack" "Track Barrier Closed" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_barrier_closed.mdl" "Ron's 2ft track pack" "Track Barrier Closed" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_barrier_opened.mdl" "Ron's 2ft track pack" "Track Barrier Open" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_barrier_opened.mdl" "Ron's 2ft track pack" "Track Barrier Open" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_bump.mdl" "Ron's 2ft track pack" "Track Bump" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_bump.mdl" "Ron's 2ft track pack" "Track Bump" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_damaged.mdl" "Ron's 2ft track pack" "Track Damaged" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/misc/track_damaged.mdl" "Ron's 2ft track pack" "Track Damaged" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_left_switched.mdl" "Ron's 2ft track pack" "Left Switched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_left_switched.mdl" "Ron's 2ft track pack" "Left Switched" 2 "NULL" "-384,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_left_switched.mdl" "Ron's 2ft track pack" "Left Switched" 3 "NULL" "-704,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_left_unswitched.mdl" "Ron's 2ft track pack" "Left Unswitched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_left_unswitched.mdl" "Ron's 2ft track pack" "Left Unswitched" 2 "NULL" "-384,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_left_unswitched.mdl" "Ron's 2ft track pack" "Left Unswitched" 3 "NULL" "-704,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_right_switched.mdl" "Ron's 2ft track pack" "Right Switched" 1 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_right_switched.mdl" "Ron's 2ft track pack" "Right Switched" 2 "NULL" "-384,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_right_switched.mdl" "Ron's 2ft track pack" "Right Switched" 3 "NULL" "-704,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_right_unswitched.mdl" "Ron's 2ft track pack" "Right Unswitched" 1 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_right_unswitched.mdl" "Ron's 2ft track pack" "Right Unswitched" 2 "NULL" "-384,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/njunctions/n_junction_right_unswitched.mdl" "Ron's 2ft track pack" "Right Unswitched" 3 "NULL" "-704,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_1.mdl" "Ron's 2ft track pack" "1024 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_1.mdl" "Ron's 2ft track pack" "1024 1" 2 "NULL" "-1024,0,70.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_1.mdl" "Ron's 2ft track pack" "1024 Embankment 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_1.mdl" "Ron's 2ft track pack" "1024 Embankment 1" 2 "NULL" "-1024,0,70.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_sided_1.mdl" "Ron's 2ft track pack" "1024 Embankment Sided 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_sided_1.mdl" "Ron's 2ft track pack" "1024 Embankment Sided 1" 2 "NULL" "-1024,0,70.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "1024 Embankment Sided M 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "1024 Embankment Sided M 1" 2 "NULL" "-1024,0,70.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "1024 Embankment Sided Double 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_1024_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "1024 Embankment Sided Double 1" 2 "NULL" "-1024,0,70.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_1.mdl" "Ron's 2ft track pack" "128 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_1.mdl" "Ron's 2ft track pack" "128 1" 2 "NULL" "-128,0,14.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_1.mdl" "Ron's 2ft track pack" "128 Embankment 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_1.mdl" "Ron's 2ft track pack" "128 Embankment 1" 2 "NULL" "-128,0,14.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_sided_1.mdl" "Ron's 2ft track pack" "128 Embankment Sided 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_sided_1.mdl" "Ron's 2ft track pack" "128 Embankment Sided 1" 2 "NULL" "-128,0,14.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "128 Embankment Sided M 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "128 Embankment Sided M 1" 2 "NULL" "-128,0,14.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "128 Embankment Sided Double 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_128_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "128 Embankment Sided Double 1" 2 "NULL" "-128,0,14.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_1.mdl" "Ron's 2ft track pack" "256 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_1.mdl" "Ron's 2ft track pack" "256 1" 2 "NULL" "-256,0,22.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_1.mdl" "Ron's 2ft track pack" "256 Embankment 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_1.mdl" "Ron's 2ft track pack" "256 Embankment 1" 2 "NULL" "-256,0,22.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_sided_1.mdl" "Ron's 2ft track pack" "256 Embankment Sided 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_sided_1.mdl" "Ron's 2ft track pack" "256 Embankment Sided 1" 2 "NULL" "-256,0,22.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "256 Embankment Sided M 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "256 Embankment Sided M 1" 2 "NULL" "-256,0,22.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "256 Embankment Sided Double 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_256_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "256 Embankment Sided Double 1" 2 "NULL" "-256,0,22.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_1.mdl" "Ron's 2ft track pack" "32 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_1.mdl" "Ron's 2ft track pack" "32 1" 2 "NULL" "-32,0,8.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_1.mdl" "Ron's 2ft track pack" "32 Embankment 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_1.mdl" "Ron's 2ft track pack" "32 Embankment 1" 2 "NULL" "-32,0,8.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_sided_1.mdl" "Ron's 2ft track pack" "32 Embankment Sided 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_sided_1.mdl" "Ron's 2ft track pack" "32 Embankment Sided 1" 2 "NULL" "-32,0,8.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "32 Embankment Sided M 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "32 Embankment Sided M 1" 2 "NULL" "-32,0,8.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "32 Embankment Sided Double 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_32_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "32 Embankment Sided Double 1" 2 "NULL" "-32,0,8.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_1.mdl" "Ron's 2ft track pack" "512 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_1.mdl" "Ron's 2ft track pack" "512 1" 2 "NULL" "-512,0,38.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_1.mdl" "Ron's 2ft track pack" "512 Embankment 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_1.mdl" "Ron's 2ft track pack" "512 Embankment 1" 2 "NULL" "-512,0,38.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_sided_1.mdl" "Ron's 2ft track pack" "512 Embankment Sided 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_sided_1.mdl" "Ron's 2ft track pack" "512 Embankment Sided 1" 2 "NULL" "-512,0,38.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "512 Embankment Sided M 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "512 Embankment Sided M 1" 2 "NULL" "-512,0,38.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "512 Embankment Sided Double 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_512_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "512 Embankment Sided Double 1" 2 "NULL" "-512,0,38.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_1.mdl" "Ron's 2ft track pack" "64 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_1.mdl" "Ron's 2ft track pack" "64 1" 2 "NULL" "-64,0,10.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_1.mdl" "Ron's 2ft track pack" "64 Embankment 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_1.mdl" "Ron's 2ft track pack" "64 Embankment 1" 2 "NULL" "-64,0,10.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_sided_1.mdl" "Ron's 2ft track pack" "64 Embankment Sided 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_sided_1.mdl" "Ron's 2ft track pack" "64 Embankment Sided 1" 2 "NULL" "-64,0,10.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "64 Embankment Sided M 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "64 Embankment Sided M 1" 2 "NULL" "-64,0,10.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "64 Embankment Sided Double 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_64_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "64 Embankment Sided Double 1" 2 "NULL" "-64,0,10.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_1.mdl" "Ron's 2ft track pack" "End 1" 1 "NULL" "64,0,3.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_1.mdl" "Ron's 2ft track pack" "End 1" 2 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_1.mdl" "Ron's 2ft track pack" "End Embankment 1" 1 "NULL" "64,0,3.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_1.mdl" "Ron's 2ft track pack" "End Embankment 1" 2 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_sided_1.mdl" "Ron's 2ft track pack" "End Embankment Sided 1" 1 "NULL" "64,0,3.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_sided_1.mdl" "Ron's 2ft track pack" "End Embankment Sided 1" 2 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "End Embankment Sided M 1" 1 "NULL" "64,0,3.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "End Embankment Sided M 1" 2 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "End Embankment Sided Double 1" 1 "NULL" "64,0,3.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_end_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "End Embankment Sided Double 1" 2 "NULL" "0,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_1.mdl" "Ron's 2ft track pack" "Start 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_1.mdl" "Ron's 2ft track pack" "Start 1" 2 "NULL" "-64,0,9.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_1.mdl" "Ron's 2ft track pack" "Start Embankment 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_1.mdl" "Ron's 2ft track pack" "Start Embankment 1" 2 "NULL" "-64,0,9.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_sided_1.mdl" "Ron's 2ft track pack" "Start Embankment Sided 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_sided_1.mdl" "Ron's 2ft track pack" "Start Embankment Sided 1" 2 "NULL" "-64,0,9.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "Start Embankment Sided M 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_sided_m_1.mdl" "Ron's 2ft track pack" "Start Embankment Sided M 1" 2 "NULL" "-64,0,9.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "Start Embankment Sided Double 1" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/ramps/ramp_start_embankment_sidedd_1.mdl" "Ron's 2ft track pack" "Start Embankment Sided Double 1" 2 "NULL" "-64,0,9.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/road_crossings/road_crossing.mdl" "Ron's 2ft track pack" "Road Crossing" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/road_crossings/road_crossing.mdl" "Ron's 2ft track pack" "Road Crossing" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/road_crossings/road_crossing_middle.mdl" "Ron's 2ft track pack" "Road Crossing Middle" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/road_crossings/road_crossing_middle.mdl" "Ron's 2ft track pack" "Road Crossing Middle" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/road_crossings/road_crossing_side.mdl" "Ron's 2ft track pack" "Road Crossing Side" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/road_crossings/road_crossing_side.mdl" "Ron's 2ft track pack" "Road Crossing Side" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_switched.mdl" "Ron's 2ft track pack" "Left Switched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_switched.mdl" "Ron's 2ft track pack" "Left Switched" 2 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_switched.mdl" "Ron's 2ft track pack" "Left Switched" 3 "NULL" "-384,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_switched.mdl" "Ron's 2ft track pack" "Left Switched" 4 "NULL" "-704,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "Left Unswitched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "Left Unswitched" 2 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "Left Unswitched" 3 "NULL" "-384,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "Left Unswitched" 4 "NULL" "-704,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_switched.mdl" "Ron's 2ft track pack" "Right Switched" 1 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_switched.mdl" "Ron's 2ft track pack" "Right Switched" 2 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_switched.mdl" "Ron's 2ft track pack" "Right Switched" 3 "NULL" "-384,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_switched.mdl" "Ron's 2ft track pack" "Right Switched" 4 "NULL" "-704,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "Right Unswitched" 1 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "Right Unswitched" 2 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "Right Unswitched" 3 "NULL" "-384,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "Right Unswitched" 4 "NULL" "-704,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024.mdl" "Ron's 2ft track pack" "1024" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024.mdl" "Ron's 2ft track pack" "1024" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_2_track.mdl" "Ron's 2ft track pack" "1024 2 Track" 1 "NULL" "512,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_2_track.mdl" "Ron's 2ft track pack" "1024 2 Track" 2 "NULL" "512,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_2_track.mdl" "Ron's 2ft track pack" "1024 2 Track" 3 "NULL" "-512,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_2_track.mdl" "Ron's 2ft track pack" "1024 2 Track" 4 "NULL" "-512,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_roof.mdl" "Ron's 2ft track pack" "1024 Roof" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_roof.mdl" "Ron's 2ft track pack" "1024 Roof" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_roof_2_track.mdl" "Ron's 2ft track pack" "1024 Roof 2 Track" 1 "NULL" "512,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_roof_2_track.mdl" "Ron's 2ft track pack" "1024 Roof 2 Track" 2 "NULL" "512,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_roof_2_track.mdl" "Ron's 2ft track pack" "1024 Roof 2 Track" 3 "NULL" "-512,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_1024_roof_2_track.mdl" "Ron's 2ft track pack" "1024 Roof 2 Track" 4 "NULL" "-512,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128.mdl" "Ron's 2ft track pack" "128" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128.mdl" "Ron's 2ft track pack" "128" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_2_track.mdl" "Ron's 2ft track pack" "128 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_2_track.mdl" "Ron's 2ft track pack" "128 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_2_track.mdl" "Ron's 2ft track pack" "128 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_2_track.mdl" "Ron's 2ft track pack" "128 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench.mdl" "Ron's 2ft track pack" "128 Bench" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench.mdl" "Ron's 2ft track pack" "128 Bench" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_2_track.mdl" "Ron's 2ft track pack" "128 Bench 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_2_track.mdl" "Ron's 2ft track pack" "128 Bench 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_2_track.mdl" "Ron's 2ft track pack" "128 Bench 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_2_track.mdl" "Ron's 2ft track pack" "128 Bench 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_roof.mdl" "Ron's 2ft track pack" "128 Bench Roof" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_roof.mdl" "Ron's 2ft track pack" "128 Bench Roof" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_roof_2_track.mdl" "Ron's 2ft track pack" "128 Bench Roof 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_roof_2_track.mdl" "Ron's 2ft track pack" "128 Bench Roof 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_roof_2_track.mdl" "Ron's 2ft track pack" "128 Bench Roof 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_bench_roof_2_track.mdl" "Ron's 2ft track pack" "128 Bench Roof 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_exit.mdl" "Ron's 2ft track pack" "128 Exit" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_exit.mdl" "Ron's 2ft track pack" "128 Exit" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_exit_roof.mdl" "Ron's 2ft track pack" "128 Roof Exit" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_exit_roof.mdl" "Ron's 2ft track pack" "128 Roof Exit" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_roof.mdl" "Ron's 2ft track pack" "128 Roof" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_roof.mdl" "Ron's 2ft track pack" "128 Roof" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_roof_2_track.mdl" "Ron's 2ft track pack" "128 Roof 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_roof_2_track.mdl" "Ron's 2ft track pack" "128 Roof 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_roof_2_track.mdl" "Ron's 2ft track pack" "128 Roof 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_128_roof_2_track.mdl" "Ron's 2ft track pack" "128 Roof 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256.mdl" "Ron's 2ft track pack" "256" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256.mdl" "Ron's 2ft track pack" "256" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_2_track.mdl" "Ron's 2ft track pack" "256 2 Track" 1 "NULL" "128,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_2_track.mdl" "Ron's 2ft track pack" "256 2 Track" 2 "NULL" "128,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_2_track.mdl" "Ron's 2ft track pack" "256 2 Track" 3 "NULL" "-128,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_2_track.mdl" "Ron's 2ft track pack" "256 2 Track" 4 "NULL" "-128,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_roof.mdl" "Ron's 2ft track pack" "256 Roof" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_roof.mdl" "Ron's 2ft track pack" "256 Roof" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_roof_2_track.mdl" "Ron's 2ft track pack" "256 Roof 2 Track" 1 "NULL" "128,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_roof_2_track.mdl" "Ron's 2ft track pack" "256 Roof 2 Track" 2 "NULL" "128,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_roof_2_track.mdl" "Ron's 2ft track pack" "256 Roof 2 Track" 3 "NULL" "-128,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_256_roof_2_track.mdl" "Ron's 2ft track pack" "256 Roof 2 Track" 4 "NULL" "-128,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512.mdl" "Ron's 2ft track pack" "512" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512.mdl" "Ron's 2ft track pack" "512" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_2_track.mdl" "Ron's 2ft track pack" "512 2 Track" 1 "NULL" "256,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_2_track.mdl" "Ron's 2ft track pack" "512 2 Track" 2 "NULL" "256,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_2_track.mdl" "Ron's 2ft track pack" "512 2 Track" 3 "NULL" "-256,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_2_track.mdl" "Ron's 2ft track pack" "512 2 Track" 4 "NULL" "-256,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_roof.mdl" "Ron's 2ft track pack" "512 Roof" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_roof.mdl" "Ron's 2ft track pack" "512 Roof" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_roof_2_track.mdl" "Ron's 2ft track pack" "512 Roof 2 Track" 1 "NULL" "256,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_roof_2_track.mdl" "Ron's 2ft track pack" "512 Roof 2 Track" 2 "NULL" "256,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_roof_2_track.mdl" "Ron's 2ft track pack" "512 Roof 2 Track" 3 "NULL" "-256,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_512_roof_2_track.mdl" "Ron's 2ft track pack" "512 Roof 2 Track" 4 "NULL" "-256,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end.mdl" "Ron's 2ft track pack" "End" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end.mdl" "Ron's 2ft track pack" "End" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_2_track.mdl" "Ron's 2ft track pack" "End 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_2_track.mdl" "Ron's 2ft track pack" "End 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_2_track.mdl" "Ron's 2ft track pack" "End 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_2_track.mdl" "Ron's 2ft track pack" "End 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp.mdl" "Ron's 2ft track pack" "End Ramp" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp.mdl" "Ron's 2ft track pack" "End Ramp" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_2_track.mdl" "Ron's 2ft track pack" "End Ramp 2 Track" 1 "NULL" "128,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_2_track.mdl" "Ron's 2ft track pack" "End Ramp 2 Track" 2 "NULL" "128,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_2_track.mdl" "Ron's 2ft track pack" "End Ramp 2 Track" 3 "NULL" "-128,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_2_track.mdl" "Ron's 2ft track pack" "End Ramp 2 Track" 4 "NULL" "-128,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_roof.mdl" "Ron's 2ft track pack" "End Ramp Roof" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_roof.mdl" "Ron's 2ft track pack" "End Ramp Roof" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "End Ramp Roof 2 Track" 1 "NULL" "128,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "End Ramp Roof 2 Track" 2 "NULL" "128,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "End Ramp Roof 2 Track" 3 "NULL" "-128,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "End Ramp Roof 2 Track" 4 "NULL" "-128,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_roof.mdl" "Ron's 2ft track pack" "End Roof" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_roof.mdl" "Ron's 2ft track pack" "End Roof" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs.mdl" "Ron's 2ft track pack" "End Stairs" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs.mdl" "Ron's 2ft track pack" "End Stairs" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_2_track.mdl" "Ron's 2ft track pack" "End Stairs 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_2_track.mdl" "Ron's 2ft track pack" "End Stairs 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_2_track.mdl" "Ron's 2ft track pack" "End Stairs 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_2_track.mdl" "Ron's 2ft track pack" "End Stairs 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_roof.mdl" "Ron's 2ft track pack" "End Stairs Roof" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_roof.mdl" "Ron's 2ft track pack" "End Stairs Roof" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof Stairs 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof Stairs 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof Stairs 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_end_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "End Roof Stairs 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start.mdl" "Ron's 2ft track pack" "Start" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start.mdl" "Ron's 2ft track pack" "Start" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_2_track.mdl" "Ron's 2ft track pack" "Start 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_2_track.mdl" "Ron's 2ft track pack" "Start 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_2_track.mdl" "Ron's 2ft track pack" "Start 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_2_track.mdl" "Ron's 2ft track pack" "Start 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp.mdl" "Ron's 2ft track pack" "Start Ramp" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp.mdl" "Ron's 2ft track pack" "Start Ramp" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_2_track.mdl" "Ron's 2ft track pack" "Start Ramp 2 Track" 1 "NULL" "128,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_2_track.mdl" "Ron's 2ft track pack" "Start Ramp 2 Track" 2 "NULL" "128,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_2_track.mdl" "Ron's 2ft track pack" "Start Ramp 2 Track" 3 "NULL" "-128,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_2_track.mdl" "Ron's 2ft track pack" "Start Ramp 2 Track" 4 "NULL" "-128,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_roof.mdl" "Ron's 2ft track pack" "Start Ramp Roof" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_roof.mdl" "Ron's 2ft track pack" "Start Ramp Roof" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "Start Ramp Roof 2 Track" 1 "NULL" "128,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "Start Ramp Roof 2 Track" 2 "NULL" "128,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "Start Ramp Roof 2 Track" 3 "NULL" "-128,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl" "Ron's 2ft track pack" "Start Ramp Roof 2 Track" 4 "NULL" "-128,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_roof.mdl" "Ron's 2ft track pack" "Start Roof" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_roof.mdl" "Ron's 2ft track pack" "Start Roof" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs.mdl" "Ron's 2ft track pack" "Start Stairs" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs.mdl" "Ron's 2ft track pack" "Start Stairs" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_2_track.mdl" "Ron's 2ft track pack" "Start Stairs 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_2_track.mdl" "Ron's 2ft track pack" "Start Stairs 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_2_track.mdl" "Ron's 2ft track pack" "Start Stairs 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_2_track.mdl" "Ron's 2ft track pack" "Start Stairs 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_roof.mdl" "Ron's 2ft track pack" "Start Stairs Roof" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_roof.mdl" "Ron's 2ft track pack" "Start Stairs Roof" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof Stairs 2 Track" 1 "NULL" "64,124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof Stairs 2 Track" 2 "NULL" "64,-124,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof Stairs 2 Track" 3 "NULL" "-64,124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/station/platform_start_stairs_roof_2_track.mdl" "Ron's 2ft track pack" "Start Roof Stairs 2 Track" 4 "NULL" "-64,-124,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_1024.mdl" "Ron's 2ft track pack" "Straight 1024" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_1024.mdl" "Ron's 2ft track pack" "Straight 1024" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_128.mdl" "Ron's 2ft track pack" "Straight 128" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_128.mdl" "Ron's 2ft track pack" "Straight 128" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_256.mdl" "Ron's 2ft track pack" "Straight 256" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_256.mdl" "Ron's 2ft track pack" "Straight 256" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_32.mdl" "Ron's 2ft track pack" "Straight 32" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_32.mdl" "Ron's 2ft track pack" "Straight 32" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_320_junction.mdl" "Ron's 2ft track pack" "Straight 320 Junction" 1 "NULL" "160,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_320_junction.mdl" "Ron's 2ft track pack" "Straight 320 Junction" 2 "NULL" "-160,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_32_2tracks.mdl" "Ron's 2ft track pack" "Straight 32 2 Tracks" 1 "NULL" "16,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_32_2tracks.mdl" "Ron's 2ft track pack" "Straight 32 2 Tracks" 2 "NULL" "16,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_32_2tracks.mdl" "Ron's 2ft track pack" "Straight 32 2 Tracks" 3 "NULL" "-16,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_32_2tracks.mdl" "Ron's 2ft track pack" "Straight 32 2 Tracks" 4 "NULL" "-16,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_512.mdl" "Ron's 2ft track pack" "Straight 512" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_512.mdl" "Ron's 2ft track pack" "Straight 512" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_64.mdl" "Ron's 2ft track pack" "Straight 64" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/straight/straight_64.mdl" "Ron's 2ft track pack" "Straight 64" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_1024_grass.mdl" "Ron's 2ft track pack" "1024 Grass" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_1024_grass.mdl" "Ron's 2ft track pack" "1024 Grass" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_1024_street.mdl" "Ron's 2ft track pack" "1024 Street" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_1024_street.mdl" "Ron's 2ft track pack" "1024 Street" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_128_grass.mdl" "Ron's 2ft track pack" "128 Grass" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_128_grass.mdl" "Ron's 2ft track pack" "128 Grass" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_128_street.mdl" "Ron's 2ft track pack" "128 Street" 1 "NULL" "64,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_128_street.mdl" "Ron's 2ft track pack" "128 Street" 2 "NULL" "-64,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_256_grass.mdl" "Ron's 2ft track pack" "256 Grass" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_256_grass.mdl" "Ron's 2ft track pack" "256 Grass" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_256_street.mdl" "Ron's 2ft track pack" "256 Street" 1 "NULL" "128,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_256_street.mdl" "Ron's 2ft track pack" "256 Street" 2 "NULL" "-128,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_32_grass.mdl" "Ron's 2ft track pack" "32 Grass" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_32_grass.mdl" "Ron's 2ft track pack" "32 Grass" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_32_street.mdl" "Ron's 2ft track pack" "32 Street" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_32_street.mdl" "Ron's 2ft track pack" "32 Street" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_512_grass.mdl" "Ron's 2ft track pack" "512 Grass" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_512_grass.mdl" "Ron's 2ft track pack" "512 Grass" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_512_street.mdl" "Ron's 2ft track pack" "512 Street" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_512_street.mdl" "Ron's 2ft track pack" "512 Street" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_64_grass.mdl" "Ron's 2ft track pack" "64 Grass" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_64_grass.mdl" "Ron's 2ft track pack" "64 Grass" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_64_street.mdl" "Ron's 2ft track pack" "64 Street" 1 "NULL" "32,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_64_street.mdl" "Ron's 2ft track pack" "64 Street" 2 "NULL" "-32,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_buffer_grass.mdl" "Ron's 2ft track pack" "Buffer Grass" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_buffer_street.mdl" "Ron's 2ft track pack" "Buffer Street" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_1_grass.mdl" "Ron's 2ft track pack" "90 1 Grass" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_1_grass.mdl" "Ron's 2ft track pack" "90 1 Grass" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_1_street.mdl" "Ron's 2ft track pack" "90 1 Street" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_1_street.mdl" "Ron's 2ft track pack" "90 1 Street" 2 "NULL" "-1024,-1024,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_2_grass.mdl" "Ron's 2ft track pack" "90 2 Grass" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_2_grass.mdl" "Ron's 2ft track pack" "90 2 Grass" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_2_street.mdl" "Ron's 2ft track pack" "90 2 Street" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_curve_90_2_street.mdl" "Ron's 2ft track pack" "90 2 Street" 2 "NULL" "-1148,-1148,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_grass_normal.mdl" "Ron's 2ft track pack" "Transition Grass Normal" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_grass_normal.mdl" "Ron's 2ft track pack" "Transition Grass Normal" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_grass_street.mdl" "Ron's 2ft track pack" "Transition Grass Street" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_grass_street.mdl" "Ron's 2ft track pack" "Transition Grass Street" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_left_switched.mdl" "Ron's 2ft track pack" "N Left Switched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_left_switched.mdl" "Ron's 2ft track pack" "N Left Switched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_left_switched.mdl" "Ron's 2ft track pack" "N Left Switched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl" "Ron's 2ft track pack" "N Left Unswitched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl" "Ron's 2ft track pack" "N Left Unswitched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl" "Ron's 2ft track pack" "N Left Unswitched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_right_switched.mdl" "Ron's 2ft track pack" "N Right Switched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_right_switched.mdl" "Ron's 2ft track pack" "N Right Switched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_right_switched.mdl" "Ron's 2ft track pack" "N Right Switched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl" "Ron's 2ft track pack" "N Right Unswitched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl" "Ron's 2ft track pack" "N Right Unswitched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl" "Ron's 2ft track pack" "N Right Unswitched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_normal_street.mdl" "Ron's 2ft track pack" "Transition Normal Street" 1 "NULL" "16,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_normal_street.mdl" "Ron's 2ft track pack" "Transition Normal Street" 2 "NULL" "-16,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_switched.mdl" "Ron's 2ft track pack" "S Left Switched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_switched.mdl" "Ron's 2ft track pack" "S Left Switched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_switched.mdl" "Ron's 2ft track pack" "S Left Switched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_switched.mdl" "Ron's 2ft track pack" "S Left Switched" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "S Left Unswitched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "S Left Unswitched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "S Left Unswitched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl" "Ron's 2ft track pack" "S Left Unswitched" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_switched.mdl" "Ron's 2ft track pack" "S Right Switched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_switched.mdl" "Ron's 2ft track pack" "S Right Switched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_switched.mdl" "Ron's 2ft track pack" "S Right Switched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_switched.mdl" "Ron's 2ft track pack" "S Right Switched" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "S Right Unswitched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "S Right Unswitched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "S Right Unswitched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl" "Ron's 2ft track pack" "S Right Unswitched" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_station_grass.mdl" "Ron's 2ft track pack" "Station Grass" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_station_grass.mdl" "Ron's 2ft track pack" "Station Grass" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_station_grass_m.mdl" "Ron's 2ft track pack" "Station M Grass" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_station_grass_m.mdl" "Ron's 2ft track pack" "Station M Grass" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 1 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 2 "NULL" "-704, 62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 3 "NULL" "-704,-62,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/tram/tram_x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 4 "NULL" "0 ,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow.mdl" "Ron's 2ft track pack" "Narrow" 1 "NULL" "0,32,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow.mdl" "Ron's 2ft track pack" "Narrow" 2 "NULL" "0,-32,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 1 "NULL" "96,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 2 "NULL" "0,96,6.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 3 "NULL" "-96,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 4 "NULL" "0,-192,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 5 "NULL" "0,-96,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 6 "NULL" "32,0,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 7 "NULL" "0,32,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_narrow_base_90.mdl" "Ron's 2ft track pack" "Narrow Base" 8 "NULL" "0,-32,6.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small.mdl" "Ron's 2ft track pack" "Small" 1 "NULL" "64,0,10.516" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small.mdl" "Ron's 2ft track pack" "Small" 2 "NULL" "-64,0,10.516" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 1 "NULL" "192,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 2 "NULL" "0,192,6.016" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 3 "NULL" "-192,0,6.016" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 4 "NULL" "0,-192,6.016" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 5 "NULL" "64,0,10.516" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 6 "NULL" "0,64,10.516" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 7 "NULL" "-64,0,10.516" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/turntable/turntable_small_base_90.mdl" "Ron's 2ft track pack" "Small Base" 8 "NULL" "0,-64,10.516" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/viaduct/viaduct_1024.mdl" "Ron's 2ft track pack" "1024" 1 "NULL" "512,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/viaduct/viaduct_1024.mdl" "Ron's 2ft track pack" "1024" 2 "NULL" "-512,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/viaduct/viaduct_512.mdl" "Ron's 2ft track pack" "512" 1 "NULL" "256,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/viaduct/viaduct_512.mdl" "Ron's 2ft track pack" "512" 2 "NULL" "-256,0,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 1 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 2 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 3 "NULL" "-704,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_switched.mdl" "Ron's 2ft track pack" "X Switched" 4 "NULL" "-704,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 1 "NULL" "0,-62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 2 "NULL" "0,62,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 3 "NULL" "-704,-62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/xjunctions/x_junction_unswitched.mdl" "Ron's 2ft track pack" "X Unswitched" 4 "NULL" "-704,62,6.016" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/yjunction/y_junction_switched_1.mdl" "Ron's 2ft track pack" "Y Switched" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/yjunction/y_junction_switched_1.mdl" "Ron's 2ft track pack" "Y Switched" 2 "NULL" "-391.763031, 78.046341,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/yjunction/y_junction_switched_1.mdl" "Ron's 2ft track pack" "Y Switched" 3 "NULL" "-391.763031, -78.046341,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/yjunction/y_junction_unswitched_1.mdl" "Ron's 2ft track pack" "Y Unswitched" 1 "NULL" "0,0,6.016" "0,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/yjunction/y_junction_unswitched_1.mdl" "Ron's 2ft track pack" "Y Unswitched" 2 "NULL" "-391.763031, -78.046341,6.016" "0,-157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/2ft/yjunction/y_junction_unswitched_1.mdl" "Ron's 2ft track pack" "Y Unswitched" 3 "NULL" "-391.763031, 78.046341,6.016" "0,157.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_1.mdl" "Ron's G Scale Track pack" "Curve 1" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_1.mdl" "Ron's G Scale Track pack" "Curve 1" 2 "NULL" "-256,256,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_2.mdl" "Ron's G Scale Track pack" "Curve 2" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_2.mdl" "Ron's G Scale Track pack" "Curve 2" 2 "NULL" "-320,320,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_3.mdl" "Ron's G Scale Track pack" "Curve 3" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_3.mdl" "Ron's G Scale Track pack" "Curve 3" 2 "NULL" "-384,384,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_4.mdl" "Ron's G Scale Track pack" "Curve 4" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/90_4.mdl" "Ron's G Scale Track pack" "Curve 4" 2 "NULL" "-448,448,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/s_left.mdl" "Ron's G Scale Track pack" "Curve S Left" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/s_left.mdl" "Ron's G Scale Track pack" "Curve S Left" 2 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/s_right.mdl" "Ron's G Scale Track pack" "Curve S Right" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/curves/s_right.mdl" "Ron's G Scale Track pack" "Curve S Right" 2 "NULL" "64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/1024.mdl" "Ron's G Scale Track pack" "1024" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/1024.mdl" "Ron's G Scale Track pack" "1024" 2 "NULL" "0,1024,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/128.mdl" "Ron's G Scale Track pack" "128" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/128.mdl" "Ron's G Scale Track pack" "128" 2 "NULL" "0,128,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/16.mdl" "Ron's G Scale Track pack" "16" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/16.mdl" "Ron's G Scale Track pack" "16" 2 "NULL" "0,16,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/256.mdl" "Ron's G Scale Track pack" "256" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/256.mdl" "Ron's G Scale Track pack" "256" 2 "NULL" "0,256,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/32.mdl" "Ron's G Scale Track pack" "32" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/32.mdl" "Ron's G Scale Track pack" "32" 2 "NULL" "0,32,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/512.mdl" "Ron's G Scale Track pack" "512" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/512.mdl" "Ron's G Scale Track pack" "512" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/64.mdl" "Ron's G Scale Track pack" "64" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/64.mdl" "Ron's G Scale Track pack" "64" 2 "NULL" "0,64,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/buffer.mdl" "Ron's G Scale Track pack" "Buffer" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_1.mdl" "Ron's G Scale Track pack" "90 1" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_1.mdl" "Ron's G Scale Track pack" "90 1" 2 "NULL" "-256,256,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_2.mdl" "Ron's G Scale Track pack" "90 2" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_2.mdl" "Ron's G Scale Track pack" "90 2" 2 "NULL" "-320,320,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_3.mdl" "Ron's G Scale Track pack" "90 3" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_3.mdl" "Ron's G Scale Track pack" "90 3" 2 "NULL" "-384,384,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_4.mdl" "Ron's G Scale Track pack" "90 4" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/90_4.mdl" "Ron's G Scale Track pack" "90 4" 2 "NULL" "-448,448,3" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/s_left.mdl" "Ron's G Scale Track pack" "S Left" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/s_left.mdl" "Ron's G Scale Track pack" "S Left" 2 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/s_right.mdl" "Ron's G Scale Track pack" "S Right" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/curves/s_right.mdl" "Ron's G Scale Track pack" "S Right" 2 "NULL" "64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/end.mdl" "Ron's G Scale Track pack" "End" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/end.mdl" "Ron's G Scale Track pack" "End" 2 "NULL" "0,16,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/double_junction.mdl" "Ron's G Scale Track pack" "S Embankment" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/double_junction.mdl" "Ron's G Scale Track pack" "S Embankment" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/double_junction.mdl" "Ron's G Scale Track pack" "S Embankment" 3 "NULL" "-64,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/double_junction.mdl" "Ron's G Scale Track pack" "S Embankment" 4 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/n_junction_left.mdl" "Ron's G Scale Track pack" "N Left Embankment" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/n_junction_left.mdl" "Ron's G Scale Track pack" "N Left Embankment" 2 "NULL" ",512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/n_junction_left.mdl" "Ron's G Scale Track pack" "N Left Embankment" 3 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/n_junction_right.mdl" "Ron's G Scale Track pack" "N Right Embankment" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/n_junction_right.mdl" "Ron's G Scale Track pack" "N Right Embankment" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/embankments/junction/n_junction_right.mdl" "Ron's G Scale Track pack" "N Right Embankment" 3 "NULL" "64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/n_left_switched.mdl" "Ron's G Scale Track pack" "N Left Switched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/n_left_switched.mdl" "Ron's G Scale Track pack" "N Left Switched" 2 "NULL" ",512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/n_left_switched.mdl" "Ron's G Scale Track pack" "N Left Switched" 3 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/n_left_unswitched.mdl" "Ron's G Scale Track pack" "N Left Unswitched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/n_left_unswitched.mdl" "Ron's G Scale Track pack" "N Left Unswitched" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/n_left_unswitched.mdl" "Ron's G Scale Track pack" "N Left Unswitched" 3 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_switched.mdl" "Ron's G Scale Track pack" "S Left Switched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_switched.mdl" "Ron's G Scale Track pack" "S Left Switched" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_switched.mdl" "Ron's G Scale Track pack" "S Left Switched" 3 "NULL" "-64,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_switched.mdl" "Ron's G Scale Track pack" "S Left Switched" 4 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_unswitched.mdl" "Ron's G Scale Track pack" "S Left Unswitched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_unswitched.mdl" "Ron's G Scale Track pack" "S Left Unswitched" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_unswitched.mdl" "Ron's G Scale Track pack" "S Left Unswitched" 3 "NULL" "-64,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/left/s_left_unswitched.mdl" "Ron's G Scale Track pack" "S Left Unswitched" 4 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/n_right_switched.mdl" "Ron's G Scale Track pack" "N Right Switched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/n_right_switched.mdl" "Ron's G Scale Track pack" "N Right Switched" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/n_right_switched.mdl" "Ron's G Scale Track pack" "N Right Switched" 3 "NULL" "64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/n_right_unswitched.mdl" "Ron's G Scale Track pack" "N Right Unswitched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/n_right_unswitched.mdl" "Ron's G Scale Track pack" "N Right Unswitched" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/n_right_unswitched.mdl" "Ron's G Scale Track pack" "N Right Unswitched" 3 "NULL" "64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_switched.mdl" "Ron's G Scale Track pack" "S Right Switched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_switched.mdl" "Ron's G Scale Track pack" "S Right Switched" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_switched.mdl" "Ron's G Scale Track pack" "S Right Switched" 3 "NULL" "-64,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_switched.mdl" "Ron's G Scale Track pack" "S Right Switched" 4 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_unswitched.mdl" "Ron's G Scale Track pack" "S Right Unswitched" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_unswitched.mdl" "Ron's G Scale Track pack" "S Right Unswitched" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_unswitched.mdl" "Ron's G Scale Track pack" "S Right Unswitched" 3 "NULL" "-64,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/junctions/right/s_right_unswitched.mdl" "Ron's G Scale Track pack" "S Right Unswitched" 4 "NULL" "-64,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/buffer_1.mdl" "Ron's G Scale Track pack" "Buffer 1" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/buffer_2.mdl" "Ron's G Scale Track pack" "Buffer 2" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/truss_128.mdl" "Ron's G Scale Track pack" "Truss 128" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/truss_128.mdl" "Ron's G Scale Track pack" "Truss 128" 2 "NULL" "0,128,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/truss_embankment_transition.mdl" "Ron's G Scale Track pack" "Truss Embankment Transition" 1 "NULL" "0,32,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/truss_embankment_transition.mdl" "Ron's G Scale Track pack" "Truss Embankment Transition" 2 "NULL" "0,-32,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/truss_end.mdl" "Ron's G Scale Track pack" "Truss End" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/truss_track_transition.mdl" "Ron's G Scale Track pack" "Truss Track Transition" 1 "NULL" "0,32,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/misc/truss_track_transition.mdl" "Ron's G Scale Track pack" "Truss Track Transition" 2 "NULL" "0,-32,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/1024.mdl" "Ron's G Scale Track pack" "1024" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/1024.mdl" "Ron's G Scale Track pack" "1024" 2 "NULL" "0,1024,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/128.mdl" "Ron's G Scale Track pack" "128" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/128.mdl" "Ron's G Scale Track pack" "128" 2 "NULL" "0,128,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/16.mdl" "Ron's G Scale Track pack" "16" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/16.mdl" "Ron's G Scale Track pack" "16" 2 "NULL" "0,16,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/16_double.mdl" "Ron's G Scale Track pack" "16 Double" 1 "NULL" "32,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/16_double.mdl" "Ron's G Scale Track pack" "16 Double" 2 "NULL" "-32,0,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/16_double.mdl" "Ron's G Scale Track pack" "16 Double" 3 "NULL" "32,16,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/16_double.mdl" "Ron's G Scale Track pack" "16 Double" 4 "NULL" "-32,16,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/256.mdl" "Ron's G Scale Track pack" "256" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/256.mdl" "Ron's G Scale Track pack" "256" 2 "NULL" "0,256,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/32.mdl" "Ron's G Scale Track pack" "32" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/32.mdl" "Ron's G Scale Track pack" "32" 2 "NULL" "0,32,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/512.mdl" "Ron's G Scale Track pack" "512" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/512.mdl" "Ron's G Scale Track pack" "512" 2 "NULL" "0,512,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/64.mdl" "Ron's G Scale Track pack" "64" 1 "NULL" "0,0,3" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/gscale/straight/64.mdl" "Ron's G Scale Track pack" "64" 2 "NULL" "0,64,3" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_1.mdl" "Ron's Minitrain Props" "Elevation 225 1" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_1.mdl" "Ron's Minitrain Props" "Elevation 225 1" 2 "NULL" "10.542684747187,53.001655382565,33" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_2.mdl" "Ron's Minitrain Props" "Elevation 225 2" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_2.mdl" "Ron's Minitrain Props" "Elevation 225 2" 2 "NULL" "12.826298771848,64.482158353518,33" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_3.mdl" "Ron's Minitrain Props" "Elevation 225 3" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_3.mdl" "Ron's Minitrain Props" "Elevation 225 3" 2 "NULL" "15.109912796510,75.962661324470,33" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_4.mdl" "Ron's Minitrain Props" "Elevation 225 4" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_4.mdl" "Ron's Minitrain Props" "Elevation 225 4" 2 "NULL" "17.393526821171,87.443164295423,33" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_5.mdl" "Ron's Minitrain Props" "Elevation 225 5" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_5.mdl" "Ron's Minitrain Props" "Elevation 225 5" 2 "NULL" "19.677140845832,98.923667266376,33" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_6.mdl" "Ron's Minitrain Props" "Elevation 225 6" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_225_6.mdl" "Ron's Minitrain Props" "Elevation 225 6" 2 "NULL" "21.960754870494,110.40417023733,33" "0,67.5,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_1.mdl" "Ron's Minitrain Props" "Elevation 45 1" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_1.mdl" "Ron's Minitrain Props" "Elevation 45 1" 2 "NULL" "40.565710805663,97.934289194337,33" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_2.mdl" "Ron's Minitrain Props" "Elevation 45 2" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_2.mdl" "Ron's Minitrain Props" "Elevation 45 2" 2 "NULL" "49.352507370067,119.14749262993,33" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_3.mdl" "Ron's Minitrain Props" "Elevation 45 3" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_3.mdl" "Ron's Minitrain Props" "Elevation 45 3" 2 "NULL" "58.13930393447,140.360696065530,33" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_4.mdl" "Ron's Minitrain Props" "Elevation 45 4" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_4.mdl" "Ron's Minitrain Props" "Elevation 45 4" 2 "NULL" "66.926100498874,161.57389950113,33" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_5.mdl" "Ron's Minitrain Props" "Elevation 45 5" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_5.mdl" "Ron's Minitrain Props" "Elevation 45 5" 2 "NULL" "75.712897063277,182.78710293672,33" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_6.mdl" "Ron's Minitrain Props" "Elevation 45 6" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_45_6.mdl" "Ron's Minitrain Props" "Elevation 45 6" 2 "NULL" "84.499693627681,204.00030637232,33" "0,45,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_1.mdl" "Ron's Minitrain Props" "Elevation 90 1" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_1.mdl" "Ron's Minitrain Props" "Elevation 90 1" 2 "NULL" "138.5,138.5,33" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_2.mdl" "Ron's Minitrain Props" "Elevation 90 2" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_2.mdl" "Ron's Minitrain Props" "Elevation 90 2" 2 "NULL" "168.5,168.5,33" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_3.mdl" "Ron's Minitrain Props" "Elevation 90 3" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_3.mdl" "Ron's Minitrain Props" "Elevation 90 3" 2 "NULL" "198.5,198.5,33" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_4.mdl" "Ron's Minitrain Props" "Elevation 90 4" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_4.mdl" "Ron's Minitrain Props" "Elevation 90 4" 2 "NULL" "228.5,228.5,33" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_5.mdl" "Ron's Minitrain Props" "Elevation 90 5" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_5.mdl" "Ron's Minitrain Props" "Elevation 90 5" 2 "NULL" "258.5,258.5,33" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_6.mdl" "Ron's Minitrain Props" "Elevation 90 6" 1 "NULL" "0,0,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/curves/elevation_90_6.mdl" "Ron's Minitrain Props" "Elevation 90 6" 2 "NULL" "288.5,288.5,33" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/ramps/elevation_ramp_128.mdl" "Ron's Minitrain Props" "Elevation Ramp 128" 1 "NULL" "0, 0, 1" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/ramps/elevation_ramp_128.mdl" "Ron's Minitrain Props" "Elevation Ramp 128" 2 "NULL" "0,144,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/ramps/elevation_ramp_256.mdl" "Ron's Minitrain Props" "Elevation Ramp 256" 1 "NULL" "0, 0, 1" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/ramps/elevation_ramp_256.mdl" "Ron's Minitrain Props" "Elevation Ramp 256" 2 "NULL" "0,272,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/ramps/elevation_ramp_512.mdl" "Ron's Minitrain Props" "Elevation Ramp 512" 1 "NULL" "0, 0, 1" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/ramps/elevation_ramp_512.mdl" "Ron's Minitrain Props" "Elevation Ramp 512" 2 "NULL" "0,528,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/bridge.mdl" "Ron's Minitrain Props" "Bridge" 1 "NULL" "0, 64,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/bridge.mdl" "Ron's Minitrain Props" "Bridge" 2 "NULL" "0,-64,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_1.mdl" "Ron's Minitrain Props" "Elevation 1" 1 "NULL" "0, 0.5,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_1.mdl" "Ron's Minitrain Props" "Elevation 1" 2 "NULL" "0,-0.5,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_1024.mdl" "Ron's Minitrain Props" "Elevation 1024" 1 "NULL" "0, 512,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_1024.mdl" "Ron's Minitrain Props" "Elevation 1024" 2 "NULL" "0,-512,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_128.mdl" "Ron's Minitrain Props" "Elevation 128" 1 "NULL" "0, 64,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_128.mdl" "Ron's Minitrain Props" "Elevation 128" 2 "NULL" "0,-64,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_16.mdl" "Ron's Minitrain Props" "Elevation 16" 1 "NULL" "0, 8,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_16.mdl" "Ron's Minitrain Props" "Elevation 16" 2 "NULL" "0,-8,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_2.mdl" "Ron's Minitrain Props" "Elevation 2" 1 "NULL" "0, 1,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_2.mdl" "Ron's Minitrain Props" "Elevation 2" 2 "NULL" "0,-1,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_256.mdl" "Ron's Minitrain Props" "Elevation 256" 1 "NULL" "0, 128,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_256.mdl" "Ron's Minitrain Props" "Elevation 256" 2 "NULL" "0,-128,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_32.mdl" "Ron's Minitrain Props" "Elevation 32" 1 "NULL" "0, 16,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_32.mdl" "Ron's Minitrain Props" "Elevation 32" 2 "NULL" "0,-16,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_4.mdl" "Ron's Minitrain Props" "Elevation 4" 1 "NULL" "0, 2,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_4.mdl" "Ron's Minitrain Props" "Elevation 4" 2 "NULL" "0,-2,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_512.mdl" "Ron's Minitrain Props" "Elevation 512" 1 "NULL" "0, 256,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_512.mdl" "Ron's Minitrain Props" "Elevation 512" 2 "NULL" "0,-256,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_64.mdl" "Ron's Minitrain Props" "Elevation 64" 1 "NULL" "0, 32,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_64.mdl" "Ron's Minitrain Props" "Elevation 64" 2 "NULL" "0,-32,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_8.mdl" "Ron's Minitrain Props" "Elevation 8" 1 "NULL" "0, 4,33" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/elevations/straight/elevation_8.mdl" "Ron's Minitrain Props" "Elevation 8" 2 "NULL" "0,-4,33" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/scenery/tunnel_64.mdl" "Ron's Minitrain Props" "Tunnel 64" 1 "NULL" " 0, 8.507, 1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/scenery/tunnel_64.mdl" "Ron's Minitrain Props" "Tunnel 64" 2 "NULL" "-64, 8.507, 1" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/1.mdl" "Ron's Minitrain Props" "1" 1 "NULL" " 0, 8.507, 1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/1.mdl" "Ron's Minitrain Props" "1" 2 "NULL" "-1, 8.507, 1" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/2.mdl" "Ron's Minitrain Props" "2" 1 "NULL" " 0, 8.507, 1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/2.mdl" "Ron's Minitrain Props" "2" 2 "NULL" "-2, 8.507, 1" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/4.mdl" "Ron's Minitrain Props" "4" 1 "NULL" " 0, 8.507, 1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/4.mdl" "Ron's Minitrain Props" "4" 2 "NULL" "-4, 8.507, 1" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/8.mdl" "Ron's Minitrain Props" "8" 1 "NULL" " 0, 8.507, 1" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/minitrains/straight/8.mdl" "Ron's Minitrain Props" "8" 2 "NULL" "-8, 8.507, 1" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/rerailer.mdl" "SProps" "Rerailer" 1 "-1088.178,0,19.886" "-1280.383,0,7.618" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_h01.mdl" "SProps" "Ramp" 1 "NULL" "0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_h01.mdl" "SProps" "Ramp" 2 "NULL" "-2525.98,0,503.58" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_h02.mdl" "SProps" "225 Up" 1 "NULL" "0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_h02.mdl" "SProps" "225 Up" 2 "NULL" "-1258.828,0,261.268" "-22.5,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_h03.mdl" "SProps" "225 Down" 1 "NULL" "0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_h03.mdl" "SProps" "225 Down" 2 "NULL" "-1264.663,0,-247.177" "22.5,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s01.mdl" "SProps" "Straight 1x" 1 "NULL" " 0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s01.mdl" "SProps" "Straight 1x" 2 "NULL" "-162,0,7.624" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s02.mdl" "SProps" "Straight 2x" 1 "NULL" " 0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s02.mdl" "SProps" "Straight 2x" 2 "NULL" "-324,0,7.624" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s03.mdl" "SProps" "Straight 3x" 1 "NULL" " 0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s03.mdl" "SProps" "Straight 3x" 2 "NULL" "-486,0,7.624" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s04.mdl" "SProps" "Straight 4x" 1 "NULL" " 0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s04.mdl" "SProps" "Straight 4x" 2 "NULL" "-648,0,7.624" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s05.mdl" "SProps" "Straight 5x" 1 "NULL" " 0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s05.mdl" "SProps" "Straight 5x" 2 "NULL" "-1296.002,0,7.624" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s06.mdl" "SProps" "Straight 6x" 1 "NULL" " 0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_s06.mdl" "SProps" "Straight 6x" 2 "NULL" "-2592.002,0,7.624" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_t90_01.mdl" "SProps" "Turn 90 Small" 1 "NULL" "0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_t90_01.mdl" "SProps" "Turn 90 Small" 2 "NULL" "-825,825,7.624" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_t90_02.mdl" "SProps" "Turn 90 Big" 1 "NULL" "0,0,7.624" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sprops/trans/train/track_t90_02.mdl" "SProps" "Turn 90 Big" 2 "NULL" "-1650,1650.0009765625,7.624" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_16x.mdl" "Shinji85's Rails" "Straight 16x" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_16x.mdl" "Shinji85's Rails" "Straight 16x" 2 "NULL" "-2048,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_1x.mdl" "Shinji85's Rails" "Straight 1x" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_1x.mdl" "Shinji85's Rails" "Straight 1x" 2 "NULL" "-128,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_2x.mdl" "Shinji85's Rails" "Straight 2x" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_2x.mdl" "Shinji85's Rails" "Straight 2x" 2 "NULL" "-256,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_4x.mdl" "Shinji85's Rails" "Straight 4x" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_4x.mdl" "Shinji85's Rails" "Straight 4x" 2 "NULL" "-512,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_4x_crossing.mdl" "Shinji85's Rails" "Crossing 4x" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_4x_crossing.mdl" "Shinji85's Rails" "Crossing 4x" 2 "NULL" "-512,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_8x.mdl" "Shinji85's Rails" "Straight 8x" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_8x.mdl" "Shinji85's Rails" "Straight 8x" 2 "NULL" "-1024,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_bumper.mdl" "Shinji85's Rails" "Bumper" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cross_4x.mdl" "Shinji85's Rails" "Cross 4x" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cross_4x.mdl" "Shinji85's Rails" "Cross 4x" 2 "NULL" "-512,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cross_4x.mdl" "Shinji85's Rails" "Cross 4x" 3 "NULL" "-256,-256,7.346" "0,270,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cross_4x.mdl" "Shinji85's Rails" "Cross 4x" 4 "NULL" "-256,256,7.346" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cs.mdl" "Shinji85's Rails" "Counter Switch" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cs.mdl" "Shinji85's Rails" "Counter Switch" 2 "NULL" "-908.81165,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_csfix.mdl" "Shinji85's Rails" "Counter Switch Fix" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_csfix.mdl" "Shinji85's Rails" "Counter Switch Fix" 2 "NULL" "-115.18847,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_cc.mdl" "Shinji85's Rails" "Curve Cc" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_cc.mdl" "Shinji85's Rails" "Curve Cc" 2 "NULL" "-966.40515,128,7.346" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r1.mdl" "Shinji85's Rails" "Curve R1" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r1.mdl" "Shinji85's Rails" "Curve R1" 2 "NULL" "-1060.12341,139.56763,7.346" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r11.mdl" "Shinji85's Rails" "Curve R11" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r11.mdl" "Shinji85's Rails" "Curve R11" 2 "NULL" "-1086.11584,449.88458,7.346" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r12.mdl" "Shinji85's Rails" "Curve R12" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r12.mdl" "Shinji85's Rails" "Curve R12" 2 "NULL" "-905.09656,374.90414,7.346" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r13.mdl" "Shinji85's Rails" "Curve R13" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r13.mdl" "Shinji85's Rails" "Curve R13" 2 "NULL" "-724.07727,299.92276,7.346" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r2.mdl" "Shinji85's Rails" "Curve R2" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r2.mdl" "Shinji85's Rails" "Curve R2" 2 "NULL" "-993.86572,130.84471,7.346" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r3.mdl" "Shinji85's Rails" "Curve R3" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_curve_r3.mdl" "Shinji85's Rails" "Curve R3" 2 "NULL" "-927.60797,122.1218,7.346" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cx.mdl" "Shinji85's Rails" "Counter X" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cx.mdl" "Shinji85's Rails" "Counter X" 2 "NULL" "-362.51361,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cxfix.mdl" "Shinji85's Rails" "Counter X Fix" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_cxfix.mdl" "Shinji85's Rails" "Counter X Fix" 2 "NULL" "-149.48648,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_double_4x_crossing.mdl" "Shinji85's Rails" "Crossing Double 4x" 1 "NULL" "0,128,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_double_4x_crossing.mdl" "Shinji85's Rails" "Crossing Double 4x" 2 "NULL" "-512,128,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_double_4x_crossing.mdl" "Shinji85's Rails" "Crossing Double 4x" 3 "NULL" "0,-128,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_double_4x_crossing.mdl" "Shinji85's Rails" "Crossing Double 4x" 4 "NULL" "-512,-128,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_double_bumper.mdl" "Shinji85's Rails" "Bumper Double" 1 "NULL" "0,128,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_double_bumper.mdl" "Shinji85's Rails" "Bumper Double" 2 "NULL" "0,-128,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_l_switch.mdl" "Shinji85's Rails" "Left Switch" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_l_switch.mdl" "Shinji85's Rails" "Left Switch" 2 "NULL" "-1024,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_l_switch.mdl" "Shinji85's Rails" "Left Switch" 3 "NULL" "-966.40515,-128,7.346" "0,195,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_r_switch.mdl" "Shinji85's Rails" "Right Switch" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_r_switch.mdl" "Shinji85's Rails" "Right Switch" 2 "NULL" "-1024,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_r_switch.mdl" "Shinji85's Rails" "Right Switch" 3 "NULL" "-966.40515,128,7.346" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_x_junction.mdl" "Shinji85's Rails" "X Junction" 1 "NULL" "0,0,7.346" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_x_junction.mdl" "Shinji85's Rails" "X Junction" 2 "NULL" "-494.55,0,7.346" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_x_junction.mdl" "Shinji85's Rails" "X Junction" 3 "NULL" "-33.129,-123.63866,7.346" "0,-30,0" "NULL" +TRACKASSEMBLY_PIECES "models/shinji85/train/rail_x_junction.mdl" "Shinji85's Rails" "X Junction" 4 "NULL" "-461.42175,123.63649,7.346" "0,150,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrccross.mdl" "SligWolf's Bodygroup Car" "Switcher Cross" 1 "NULL" "500,0,0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrccross.mdl" "SligWolf's Bodygroup Car" "Switcher Cross" 2 "NULL" "-2673,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrccurve001.mdl" "SligWolf's Bodygroup Car" "U-Turn" 1 "NULL" "890, 748.009, 2.994" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrccurve001.mdl" "SligWolf's Bodygroup Car" "U-Turn" 2 "NULL" "890, 451.998, 2.994" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrccurve001.mdl" "SligWolf's Bodygroup Car" "U-Turn" 3 "NULL" "890, -452.001, 2.974" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrccurve001.mdl" "SligWolf's Bodygroup Car" "U-Turn" 4 "NULL" "890, -748.027, 2.974" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrclooping.mdl" "SligWolf's Bodygroup Car" "Loop 180" 1 "NULL" "810, -252.447, -0.005" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrclooping.mdl" "SligWolf's Bodygroup Car" "Loop 180" 2 "NULL" "-809.999, 136.997, -0.002" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrcloopingspecial.mdl" "SligWolf's Bodygroup Car" "LoopSwitch 180" 1 "NULL" "927.001, -194.403, -0.036" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrcloopingspecial.mdl" "SligWolf's Bodygroup Car" "LoopSwitch 180" 2 "NULL" "-809.999, 137.003, 350.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrcloopingspecial.mdl" "SligWolf's Bodygroup Car" "LoopSwitch 180" 3 "NULL" "-809.999, -527.972, 350.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrcramp.mdl" "SligWolf's Bodygroup Car" "Ramp 45" 1 "NULL" "1000, 0, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrcramp.mdl" "SligWolf's Bodygroup Car" "Ramp 45" 2 "NULL" "-641.92, 0, 269.672" "-45,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrctraffic_lights.mdl" "SligWolf's Bodygroup Car" "Start Lights" 1 "NULL" "0, -152.532, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrctraffic_lights.mdl" "SligWolf's Bodygroup Car" "Start Lights" 2 "NULL" "0, 152.554, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/bgcar/swrctraffic_lights.mdl" "SligWolf's Bodygroup Car" "Start Lights" 3 "NULL" "0, 0, 0.042" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/buffer_stop_12.mdl" "SligWolf's Mini Trains" "Buffer Stop (12)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_1_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_2_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_3_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_4_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_5_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_22p5.mdl" "SligWolf's Mini Trains" "Curve (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_45.mdl" "SligWolf's Mini Trains" "Curve (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_90.mdl" "SligWolf's Mini Trains" "Curve (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_s_big.mdl" "SligWolf's Mini Trains" "Curve S-Form (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_s_medium.mdl" "SligWolf's Mini Trains" "Curve S-Form (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/curve_6_s_small.mdl" "SligWolf's Mini Trains" "Curve S-Form (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/rerailer_380.mdl" "SligWolf's Mini Trains" "Rerailer (380)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/rerailer_380.mdl" "SligWolf's Mini Trains" "Rerailer (380)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/slope_144x32.mdl" "SligWolf's Mini Trains" "Slope (144x32)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/slope_144x32.mdl" "SligWolf's Mini Trains" "Slope (144x32)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/slope_272x32.mdl" "SligWolf's Mini Trains" "Slope (272x32)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/slope_272x32.mdl" "SligWolf's Mini Trains" "Slope (272x32)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/slope_528x32.mdl" "SligWolf's Mini Trains" "Slope (528x32)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/slope_528x32.mdl" "SligWolf's Mini Trains" "Slope (528x32)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_1024.mdl" "SligWolf's Mini Trains" "Straight (1024)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_1024.mdl" "SligWolf's Mini Trains" "Straight (1024)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_128.mdl" "SligWolf's Mini Trains" "Straight (128)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_128.mdl" "SligWolf's Mini Trains" "Straight (128)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_16.mdl" "SligWolf's Mini Trains" "Straight (16)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_16.mdl" "SligWolf's Mini Trains" "Straight (16)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_256.mdl" "SligWolf's Mini Trains" "Straight (256)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_256.mdl" "SligWolf's Mini Trains" "Straight (256)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_32.mdl" "SligWolf's Mini Trains" "Straight (32)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_32.mdl" "SligWolf's Mini Trains" "Straight (32)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_512.mdl" "SligWolf's Mini Trains" "Straight (512)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_512.mdl" "SligWolf's Mini Trains" "Straight (512)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_64.mdl" "SligWolf's Mini Trains" "Straight (64)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/straight_64.mdl" "SligWolf's Mini Trains" "Straight (64)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 5 "NULL" "!flipped_back" "!flipped_back" "sligwolf_minitrain_switch_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_1to3_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_1to3_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 3 "NULL" "!left" "!left" "sligwolf_minitrain_switch_1to3_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_1_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 4 "NULL" "!right" "!right" "sligwolf_minitrain_switch_1to3_1_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_1to3_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_1to3_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 3 "NULL" "!left" "!left" "sligwolf_minitrain_switch_1to3_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 4 "NULL" "!right" "!right" "sligwolf_minitrain_switch_1to3_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_1to3_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_1to3_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 3 "NULL" "!left" "!left" "sligwolf_minitrain_switch_1to3_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 4 "NULL" "!right" "!right" "sligwolf_minitrain_switch_1to3_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_1to3_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_1to3_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 3 "NULL" "!left" "!left" "sligwolf_minitrain_switch_1to3_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 4 "NULL" "!right" "!right" "sligwolf_minitrain_switch_1to3_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_1to3_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_1to3_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 3 "NULL" "!left" "!left" "sligwolf_minitrain_switch_1to3_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 4 "NULL" "!right" "!right" "sligwolf_minitrain_switch_1to3_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_1to3_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_1to3_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 3 "NULL" "!left" "!left" "sligwolf_minitrain_switch_1to3_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_1to3_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 4 "NULL" "!right" "!right" "sligwolf_minitrain_switch_1to3_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 5 "NULL" "!flipped_back" "!flipped_back" "sligwolf_minitrain_switch_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_2_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 5 "NULL" "!flipped_back" "!flipped_back" "sligwolf_minitrain_switch_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_3_128.mdl" "SligWolf's Mini Trains" "Switch 3 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_3_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 5 "NULL" "!flipped_back" "!flipped_back" "sligwolf_minitrain_switch_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_4_128.mdl" "SligWolf's Mini Trains" "Switch 4 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_4_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 5 "NULL" "!flipped_back" "!flipped_back" "sligwolf_minitrain_switch_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_5_128.mdl" "SligWolf's Mini Trains" "Switch 5 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_5_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 2 "NULL" "!back" "!back" "sligwolf_minitrain_switch_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 5 "NULL" "!flipped_back" "!flipped_back" "sligwolf_minitrain_switch_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_6_128.mdl" "SligWolf's Mini Trains" "Switch 6 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_6_128" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 1 "NULL" "!front_left" "!front_left" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 2 "NULL" "!front_right" "!front_right" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 3 "NULL" "!back_left" "!back_left" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 4 "NULL" "!back_right" "!back_right" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 5 "NULL" "!flipped_front_left" "!flipped_front_left" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 6 "NULL" "!flipped_front_right" "!flipped_front_right" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 7 "NULL" "!flipped_back_left" "!flipped_back_left" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_n_160.mdl" "SligWolf's Mini Trains" "Switch 1 (160)" 8 "NULL" "!flipped_back_right" "!flipped_back_right" "sligwolf_minitrain_switch_n" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_y_1" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 2 "NULL" "!left" "!left" "sligwolf_minitrain_switch_y_1" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_y_1" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_y_1" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 5 "NULL" "!flipped_left" "!flipped_left" "sligwolf_minitrain_switch_y_1" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_128.mdl" "SligWolf's Mini Trains" "Switch 1 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_y_1" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 1 "NULL" "!front" "!front" "sligwolf_minitrain_switch_y_2" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 2 "NULL" "!left" "!left" "sligwolf_minitrain_switch_y_2" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 3 "NULL" "!right" "!right" "sligwolf_minitrain_switch_y_2" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 4 "NULL" "!flipped_front" "!flipped_front" "sligwolf_minitrain_switch_y_2" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 5 "NULL" "!flipped_left" "!flipped_left" "sligwolf_minitrain_switch_y_2" +TRACKASSEMBLY_PIECES "models/sligwolf/minitrains/tracks/switch_y_2_128.mdl" "SligWolf's Mini Trains" "Switch 2 (128)" 6 "NULL" "!flipped_right" "!flipped_right" "sligwolf_minitrain_switch_y_2" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/buffer.mdl" "SligWolf's Modelpack" "Buffer Stop" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/curve_225.mdl" "SligWolf's Modelpack" "Curve (22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/curve_225.mdl" "SligWolf's Modelpack" "Curve (22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/curve_45.mdl" "SligWolf's Modelpack" "Curve (45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/curve_45.mdl" "SligWolf's Modelpack" "Curve (45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/curve_90.mdl" "SligWolf's Modelpack" "Curve (90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/curve_90.mdl" "SligWolf's Modelpack" "Curve (90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_1024.mdl" "SligWolf's Modelpack" "Straight (1024)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_1024.mdl" "SligWolf's Modelpack" "Straight (1024)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_128.mdl" "SligWolf's Modelpack" "Straight (128)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_128.mdl" "SligWolf's Modelpack" "Straight (128)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_256.mdl" "SligWolf's Modelpack" "Straight (256)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_256.mdl" "SligWolf's Modelpack" "Straight (256)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_512.mdl" "SligWolf's Modelpack" "Straight (512)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/straight_512.mdl" "SligWolf's Modelpack" "Straight (512)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_l.mdl" "SligWolf's Modelpack" "Switch SL" 1 "NULL" "!front" "!front" "sligwolf_modelpack_switch_l" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_l.mdl" "SligWolf's Modelpack" "Switch SL" 2 "NULL" "!back" "!back" "sligwolf_modelpack_switch_l" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_l.mdl" "SligWolf's Modelpack" "Switch SL" 3 "NULL" "!left" "!left" "sligwolf_modelpack_switch_l" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_r.mdl" "SligWolf's Modelpack" "Switch SR" 1 "NULL" "!front" "!front" "sligwolf_modelpack_switch_r" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_r.mdl" "SligWolf's Modelpack" "Switch SR" 2 "NULL" "!back" "!back" "sligwolf_modelpack_switch_r" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_r.mdl" "SligWolf's Modelpack" "Switch SR" 3 "NULL" "!right" "!right" "sligwolf_modelpack_switch_r" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_y.mdl" "SligWolf's Modelpack" "Switch LR" 1 "NULL" "!front" "!front" "sligwolf_modelpack_switch_y" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_y.mdl" "SligWolf's Modelpack" "Switch LR" 2 "NULL" "!left" "!left" "sligwolf_modelpack_switch_y" +TRACKASSEMBLY_PIECES "models/sligwolf/modelpack/rails/switch_225_y.mdl" "SligWolf's Modelpack" "Switch LR" 3 "NULL" "!right" "!right" "sligwolf_modelpack_switch_y" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/rerailer_1.mdl" "SligWolf's Rerailer" "Double Short" 1 "-221.409, 0, 3.031" "219.412, 0, -5.411" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/rerailer_1.mdl" "SligWolf's Rerailer" "Double Short" 2 "-1103.05, 0, 0.009" "-1543.871, 0, -5.411" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/rerailer_2.mdl" "SligWolf's Rerailer" "Double Middle" 1 "-265.554, 0, 3.031" "219.412, 0, -5.407" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/rerailer_2.mdl" "SligWolf's Rerailer" "Double Middle" 2 "-1882.106, 0, 3.031" "-2367.072, 0, -5.412" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/rerailer_3.mdl" "SligWolf's Rerailer" "Double Long" 1 "-258.249, -0.01, -0.002" "219.415, 0, -5.409" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/rerailer_3.mdl" "SligWolf's Rerailer" "Double Long" 2 "-3124.199, -0.01, 2.997" "-3601.869, -0.377, -5.416" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/sw_rerailer_1.mdl" "SligWolf's Rerailer" "Single Short" 1 "-190.553,0,25.193" "211.414,0.015,-5.395" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/sw_rerailer_2.mdl" "SligWolf's Rerailer" "Single Middle" 1 "-190.553,0,25.193" "211.414,0.015,-5.395" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/rerailer/sw_rerailer_3.mdl" "SligWolf's Rerailer" "Single Long" 1 "-190.553,0,25.193" "211.414,0.015,-5.395" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_192.mdl" "SligWolf's Suspension Train" "Handrail (192)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_192.mdl" "SligWolf's Suspension Train" "Handrail (192)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_192.mdl" "SligWolf's Suspension Train" "Handrail (192)" 3 "NULL" "!handrail03" "!handrail03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_288.mdl" "SligWolf's Suspension Train" "Handrail (288)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_288.mdl" "SligWolf's Suspension Train" "Handrail (288)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_288.mdl" "SligWolf's Suspension Train" "Handrail (288)" 3 "NULL" "!handrail03" "!handrail03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_288.mdl" "SligWolf's Suspension Train" "Handrail (288)" 4 "NULL" "!handrail04" "!handrail04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_288.mdl" "SligWolf's Suspension Train" "Handrail (288)" 5 "NULL" "!handrail05" "!handrail05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_384.mdl" "SligWolf's Suspension Train" "Handrail (384)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_384.mdl" "SligWolf's Suspension Train" "Handrail (384)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_384.mdl" "SligWolf's Suspension Train" "Handrail (384)" 3 "NULL" "!handrail03" "!handrail03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_384.mdl" "SligWolf's Suspension Train" "Handrail (384)" 4 "NULL" "!handrail04" "!handrail04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_384.mdl" "SligWolf's Suspension Train" "Handrail (384)" 5 "NULL" "!handrail05" "!handrail05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_384.mdl" "SligWolf's Suspension Train" "Handrail (384)" 6 "NULL" "!handrail06" "!handrail06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_384.mdl" "SligWolf's Suspension Train" "Handrail (384)" 7 "NULL" "!handrail07" "!handrail07" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_48.mdl" "SligWolf's Suspension Train" "Handrail (48)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_48.mdl" "SligWolf's Suspension Train" "Handrail (48)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_48x48.mdl" "SligWolf's Suspension Train" "Handrail L-Shape (48 x 48)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_48x48.mdl" "SligWolf's Suspension Train" "Handrail L-Shape (48 x 48)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_96.mdl" "SligWolf's Suspension Train" "Handrail (96)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_96x96.mdl" "SligWolf's Suspension Train" "Handrail L-Shape (96 x 96)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_platform_96x96.mdl" "SligWolf's Suspension Train" "Handrail L-Shape (96 x 96)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_stairs_192.mdl" "SligWolf's Suspension Train" "Stairhandrail (192)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_stairs_192.mdl" "SligWolf's Suspension Train" "Stairhandrail (192)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_stairs_48.mdl" "SligWolf's Suspension Train" "Stairhandrail (48)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_stairs_48.mdl" "SligWolf's Suspension Train" "Stairhandrail (48)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_stairs_96.mdl" "SligWolf's Suspension Train" "Stairhandrail (96)" 1 "NULL" "!handrail01" "!handrail01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/handrails/handrail_stairs_96.mdl" "SligWolf's Suspension Train" "Stairhandrail (96)" 2 "NULL" "!handrail02" "!handrail02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmen_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmen_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmen_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmen_768x448.mdl" "SligWolf's Suspension Train" "Holder (768 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmen_768x448.mdl" "SligWolf's Suspension Train" "Holder (768 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmen_768x448.mdl" "SligWolf's Suspension Train" "Holder (768 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmenwinkel_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmenwinkel_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmenwinkel_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmenwinkel_512x448.mdl" "SligWolf's Suspension Train" "Holder (512 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmenwinkel_512x448.mdl" "SligWolf's Suspension Train" "Holder (512 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_barmenwinkel_512x448.mdl" "SligWolf's Suspension Train" "Holder (512 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_vohwinkel_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_vohwinkel_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_vohwinkel_1024x448.mdl" "SligWolf's Suspension Train" "Holder (1024 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_vohwinkel_512x448.mdl" "SligWolf's Suspension Train" "Holder (512 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_vohwinkel_512x448.mdl" "SligWolf's Suspension Train" "Holder (512 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holder_vohwinkel_512x448.mdl" "SligWolf's Suspension Train" "Holder (512 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_barmen_128x384.mdl" "SligWolf's Suspension Train" "Holderbeam (128 x 384)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_barmen_128x384.mdl" "SligWolf's Suspension Train" "Holderbeam (128 x 384)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_barmen_256x384.mdl" "SligWolf's Suspension Train" "Holderbeam (256 x 384)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_barmen_256x384.mdl" "SligWolf's Suspension Train" "Holderbeam (256 x 384)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_varresbeck_384.mdl" "SligWolf's Suspension Train" "Holderbeam (384)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_varresbeck_384.mdl" "SligWolf's Suspension Train" "Holderbeam (384)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_varresbeck_female_end_448.mdl" "SligWolf's Suspension Train" "Holderbeam - Female (448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_varresbeck_female_end_448.mdl" "SligWolf's Suspension Train" "Holderbeam - Female (448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_varresbeck_male_end_448.mdl" "SligWolf's Suspension Train" "Holderbeam - Male (448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_varresbeck_male_end_448.mdl" "SligWolf's Suspension Train" "Holderbeam - Male (448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_192.mdl" "SligWolf's Suspension Train" "Holderbeam (192)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_192.mdl" "SligWolf's Suspension Train" "Holderbeam (192)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_288.mdl" "SligWolf's Suspension Train" "Holderbeam (288)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_288.mdl" "SligWolf's Suspension Train" "Holderbeam (288)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_384.mdl" "SligWolf's Suspension Train" "Holderbeam (384)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_384.mdl" "SligWolf's Suspension Train" "Holderbeam (384)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_48.mdl" "SligWolf's Suspension Train" "Holderbeam (48)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_48.mdl" "SligWolf's Suspension Train" "Holderbeam (48)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_96.mdl" "SligWolf's Suspension Train" "Holderbeam (96)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbeam_vohwinkel_96.mdl" "SligWolf's Suspension Train" "Holderbeam (96)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbow_vohwinkel_64x64.mdl" "SligWolf's Suspension Train" "Holderbow (64 x 64)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderbow_vohwinkel_64x64.mdl" "SligWolf's Suspension Train" "Holderbow (64 x 64)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderconnector_female_64.mdl" "SligWolf's Suspension Train" "Holderconnector - Female (64)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderconnector_female_64.mdl" "SligWolf's Suspension Train" "Holderconnector - Female (64)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderconnector_female_64.mdl" "SligWolf's Suspension Train" "Holderconnector - Female (64)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderconnector_male_64.mdl" "SligWolf's Suspension Train" "Holderconnector - Male (64)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderconnector_male_64.mdl" "SligWolf's Suspension Train" "Holderconnector - Male (64)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderconnector_male_64.mdl" "SligWolf's Suspension Train" "Holderconnector - Male (64)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_192.mdl" "SligWolf's Suspension Train" "Holderladder (192)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_192.mdl" "SligWolf's Suspension Train" "Holderladder (192)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_192.mdl" "SligWolf's Suspension Train" "Holderladder (192)" 3 "NULL" "!holder01a" "!holder01a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_192.mdl" "SligWolf's Suspension Train" "Holderladder (192)" 4 "NULL" "!holder01b" "!holder01b" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_192.mdl" "SligWolf's Suspension Train" "Holderladder (192)" 5 "NULL" "!holder01c" "!holder01c" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_288.mdl" "SligWolf's Suspension Train" "Holderladder (288)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_288.mdl" "SligWolf's Suspension Train" "Holderladder (288)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_288.mdl" "SligWolf's Suspension Train" "Holderladder (288)" 3 "NULL" "!holder01a" "!holder01a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_288.mdl" "SligWolf's Suspension Train" "Holderladder (288)" 4 "NULL" "!holder01b" "!holder01b" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_288.mdl" "SligWolf's Suspension Train" "Holderladder (288)" 5 "NULL" "!holder01c" "!holder01c" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_384.mdl" "SligWolf's Suspension Train" "Holderladder (384)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_384.mdl" "SligWolf's Suspension Train" "Holderladder (384)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_384.mdl" "SligWolf's Suspension Train" "Holderladder (384)" 3 "NULL" "!holder01a" "!holder01a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_384.mdl" "SligWolf's Suspension Train" "Holderladder (384)" 4 "NULL" "!holder01b" "!holder01b" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_384.mdl" "SligWolf's Suspension Train" "Holderladder (384)" 5 "NULL" "!holder01c" "!holder01c" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_48.mdl" "SligWolf's Suspension Train" "Holderladder (48)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_48.mdl" "SligWolf's Suspension Train" "Holderladder (48)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_48.mdl" "SligWolf's Suspension Train" "Holderladder (48)" 3 "NULL" "!holder01a" "!holder01a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_48.mdl" "SligWolf's Suspension Train" "Holderladder (48)" 4 "NULL" "!holder01b" "!holder01b" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_48.mdl" "SligWolf's Suspension Train" "Holderladder (48)" 5 "NULL" "!holder01c" "!holder01c" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_96.mdl" "SligWolf's Suspension Train" "Holderladder (96)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_96.mdl" "SligWolf's Suspension Train" "Holderladder (96)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_96.mdl" "SligWolf's Suspension Train" "Holderladder (96)" 3 "NULL" "!holder01a" "!holder01a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_96.mdl" "SligWolf's Suspension Train" "Holderladder (96)" 4 "NULL" "!holder01b" "!holder01b" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderladder_96.mdl" "SligWolf's Suspension Train" "Holderladder (96)" 5 "NULL" "!holder01c" "!holder01c" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmen_192x448.mdl" "SligWolf's Suspension Train" "Holderleg (192 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmen_192x448.mdl" "SligWolf's Suspension Train" "Holderleg (192 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmen_192x448.mdl" "SligWolf's Suspension Train" "Holderleg (192 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmen_320x448.mdl" "SligWolf's Suspension Train" "Holderleg (320 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmen_320x448.mdl" "SligWolf's Suspension Train" "Holderleg (320 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmen_320x448.mdl" "SligWolf's Suspension Train" "Holderleg (320 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmenwinkel_160x448.mdl" "SligWolf's Suspension Train" "Holderleg (160 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmenwinkel_160x448.mdl" "SligWolf's Suspension Train" "Holderleg (160 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_barmenwinkel_160x448.mdl" "SligWolf's Suspension Train" "Holderleg (160 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_vohwinkel_160x448.mdl" "SligWolf's Suspension Train" "Holderleg (160 x 448)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_vohwinkel_160x448.mdl" "SligWolf's Suspension Train" "Holderleg (160 x 448)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holderleg_vohwinkel_160x448.mdl" "SligWolf's Suspension Train" "Holderleg (160 x 448)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holdermain_192x80.mdl" "SligWolf's Suspension Train" "Mainpiece (192 x 80)" 1 "NULL" "!holder01" "!holder01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holdermain_192x80.mdl" "SligWolf's Suspension Train" "Mainpiece (192 x 80)" 2 "NULL" "!holder02" "!holder02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/holders/holdermain_192x80.mdl" "SligWolf's Suspension Train" "Mainpiece (192 x 80)" 3 "NULL" "!holder03" "!holder03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1_96x96.mdl" "SligWolf's Suspension Train" "Platform 1A (96 x 96)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1_96x96.mdl" "SligWolf's Suspension Train" "Platform 1A (96 x 96)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1_96x96.mdl" "SligWolf's Suspension Train" "Platform 1A (96 x 96)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1_96x96.mdl" "SligWolf's Suspension Train" "Platform 1A (96 x 96)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1a_96x96.mdl" "SligWolf's Suspension Train" "Platform 1B (96 x 96)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1a_96x96.mdl" "SligWolf's Suspension Train" "Platform 1B (96 x 96)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1a_96x96.mdl" "SligWolf's Suspension Train" "Platform 1B (96 x 96)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1b_96x96.mdl" "SligWolf's Suspension Train" "Platform 1C (96 x 96)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1b_96x96.mdl" "SligWolf's Suspension Train" "Platform 1C (96 x 96)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1c_96x96.mdl" "SligWolf's Suspension Train" "Platform 1D (96 x 96)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_1c_96x96.mdl" "SligWolf's Suspension Train" "Platform 1D (96 x 96)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 6 "NULL" "!platform06" "!platform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 7 "NULL" "!platform07" "!platform07" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2_96x192.mdl" "SligWolf's Suspension Train" "Platform 2A (96 x 192)" 8 "NULL" "!platform08" "!platform08" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2a_96x192.mdl" "SligWolf's Suspension Train" "Platform 2B (96 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2a_96x192.mdl" "SligWolf's Suspension Train" "Platform 2B (96 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2a_96x192.mdl" "SligWolf's Suspension Train" "Platform 2B (96 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2a_96x192.mdl" "SligWolf's Suspension Train" "Platform 2B (96 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2a_96x192.mdl" "SligWolf's Suspension Train" "Platform 2B (96 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2b_96x192.mdl" "SligWolf's Suspension Train" "Platform 2C (96 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2b_96x192.mdl" "SligWolf's Suspension Train" "Platform 2C (96 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2b_96x192.mdl" "SligWolf's Suspension Train" "Platform 2C (96 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2b_96x192.mdl" "SligWolf's Suspension Train" "Platform 2C (96 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2b_96x192.mdl" "SligWolf's Suspension Train" "Platform 2C (96 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2c_96x192.mdl" "SligWolf's Suspension Train" "Platform 2D (96 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2c_96x192.mdl" "SligWolf's Suspension Train" "Platform 2D (96 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2d_96x192.mdl" "SligWolf's Suspension Train" "Platform 2E (96 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2d_96x192.mdl" "SligWolf's Suspension Train" "Platform 2E (96 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2d_96x192.mdl" "SligWolf's Suspension Train" "Platform 2E (96 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2d_96x192.mdl" "SligWolf's Suspension Train" "Platform 2E (96 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2d_96x192.mdl" "SligWolf's Suspension Train" "Platform 2E (96 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_2d_96x192.mdl" "SligWolf's Suspension Train" "Platform 2E (96 x 192)" 6 "NULL" "!platform06" "!platform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 6 "NULL" "!platform06" "!platform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 7 "NULL" "!platform07" "!platform07" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 8 "NULL" "!platform08" "!platform08" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 9 "NULL" "!platform09" "!platform09" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 10 "NULL" "!platform10" "!platform10" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 11 "NULL" "!platform11" "!platform11" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3_192x192.mdl" "SligWolf's Suspension Train" "Platform 3A (192 x 192)" 12 "NULL" "!platform12" "!platform12" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 6 "NULL" "!platform06" "!platform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 7 "NULL" "!platform07" "!platform07" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 8 "NULL" "!platform08" "!platform08" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3a_192x192.mdl" "SligWolf's Suspension Train" "Platform 3B (192 x 192)" 9 "NULL" "!platform09" "!platform09" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3b_192x192.mdl" "SligWolf's Suspension Train" "Platform 3C (192 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3b_192x192.mdl" "SligWolf's Suspension Train" "Platform 3C (192 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3b_192x192.mdl" "SligWolf's Suspension Train" "Platform 3C (192 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3b_192x192.mdl" "SligWolf's Suspension Train" "Platform 3C (192 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3b_192x192.mdl" "SligWolf's Suspension Train" "Platform 3C (192 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3b_192x192.mdl" "SligWolf's Suspension Train" "Platform 3C (192 x 192)" 6 "NULL" "!platform06" "!platform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3c_192x192.mdl" "SligWolf's Suspension Train" "Platform 3D (192 x 192)" 1 "NULL" "!platform01" "!platform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3c_192x192.mdl" "SligWolf's Suspension Train" "Platform 3D (192 x 192)" 2 "NULL" "!platform02" "!platform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3c_192x192.mdl" "SligWolf's Suspension Train" "Platform 3D (192 x 192)" 3 "NULL" "!platform03" "!platform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3c_192x192.mdl" "SligWolf's Suspension Train" "Platform 3D (192 x 192)" 4 "NULL" "!platform04" "!platform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3c_192x192.mdl" "SligWolf's Suspension Train" "Platform 3D (192 x 192)" 5 "NULL" "!platform05" "!platform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/platforms/station_platform_3c_192x192.mdl" "SligWolf's Suspension Train" "Platform 3D (192 x 192)" 6 "NULL" "!platform06" "!platform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/bufferstop_64.mdl" "SligWolf's Suspension Train" "Buffer Stop (64)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_t_1904.mdl" "SligWolf's Suspension Train" "T Crossing (1904, 2048 - 144)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_t_1904.mdl" "SligWolf's Suspension Train" "T Crossing (1904, 2048 - 144)" 2 "NULL" "!left" "!left" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_t_1904.mdl" "SligWolf's Suspension Train" "T Crossing (1904, 2048 - 144)" 3 "NULL" "!right" "!right" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_t_1904.mdl" "SligWolf's Suspension Train" "T Crossing (1904, 2048 - 144)" 4 "NULL" "!station" "!station" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_x_1904.mdl" "SligWolf's Suspension Train" "X Crossing (1904, 2048 - 144)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_x_1904.mdl" "SligWolf's Suspension Train" "X Crossing (1904, 2048 - 144)" 2 "NULL" "!left" "!left" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_x_1904.mdl" "SligWolf's Suspension Train" "X Crossing (1904, 2048 - 144)" 3 "NULL" "!right" "!right" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/crossing_x_1904.mdl" "SligWolf's Suspension Train" "X Crossing (1904, 2048 - 144)" 4 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_1024_22p5.mdl" "SligWolf's Suspension Train" "Curve (1024 - 22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_1024_22p5.mdl" "SligWolf's Suspension Train" "Curve (1024 - 22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_1024_45.mdl" "SligWolf's Suspension Train" "Curve (1024 - 45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_1024_45.mdl" "SligWolf's Suspension Train" "Curve (1024 - 45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_1024_90.mdl" "SligWolf's Suspension Train" "Curve (1024 - 90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_1024_90.mdl" "SligWolf's Suspension Train" "Curve (1024 - 90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_2048_22p5.mdl" "SligWolf's Suspension Train" "Curve (2048 - 22.5°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_2048_22p5.mdl" "SligWolf's Suspension Train" "Curve (2048 - 22.5°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_2048_45.mdl" "SligWolf's Suspension Train" "Curve (2048 - 45°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_2048_45.mdl" "SligWolf's Suspension Train" "Curve (2048 - 45°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_2048_90.mdl" "SligWolf's Suspension Train" "Curve (2048 - 90°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/curve_2048_90.mdl" "SligWolf's Suspension Train" "Curve (2048 - 90°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/rerailer_2048.mdl" "SligWolf's Suspension Train" "Rerailer (2048)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/rerailer_2048.mdl" "SligWolf's Suspension Train" "Rerailer (2048)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/rerailer_2048.mdl" "SligWolf's Suspension Train" "Rerailer (2048)" 3 "NULL" "!station" "!station" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/slope_4096x480_8.mdl" "SligWolf's Suspension Train" "Slope (4096 x 480 - 8°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/slope_4096x480_8.mdl" "SligWolf's Suspension Train" "Slope (4096 x 480 - 8°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/slope_4096x480_8.mdl" "SligWolf's Suspension Train" "Slope (4096 x 480 - 8°)" 3 "NULL" "!middle" "!middle" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/slope_half_down_2048_8.mdl" "SligWolf's Suspension Train" "Slope Down (2048 - 8°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/slope_half_down_2048_8.mdl" "SligWolf's Suspension Train" "Slope Down (2048 - 8°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/slope_half_up_2048_8.mdl" "SligWolf's Suspension Train" "Slope Up (2048 - 8°)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/slope_half_up_2048_8.mdl" "SligWolf's Suspension Train" "Slope Up (2048 - 8°)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_1024.mdl" "SligWolf's Suspension Train" "Straight (1024)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_1024.mdl" "SligWolf's Suspension Train" "Straight (1024)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_128.mdl" "SligWolf's Suspension Train" "Straight (128)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_128.mdl" "SligWolf's Suspension Train" "Straight (128)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_144_full_gauge.mdl" "SligWolf's Suspension Train" "Straight (144 - Full Gauge)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_144_full_gauge.mdl" "SligWolf's Suspension Train" "Straight (144 - Full Gauge)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_16.mdl" "SligWolf's Suspension Train" "Straight (16)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_16.mdl" "SligWolf's Suspension Train" "Straight (16)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_2048.mdl" "SligWolf's Suspension Train" "Straight (2048)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_2048.mdl" "SligWolf's Suspension Train" "Straight (2048)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_2048.mdl" "SligWolf's Suspension Train" "Straight (2048)" 3 "NULL" "!station" "!station" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_256.mdl" "SligWolf's Suspension Train" "Straight (256)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_256.mdl" "SligWolf's Suspension Train" "Straight (256)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_32.mdl" "SligWolf's Suspension Train" "Straight (32)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_32.mdl" "SligWolf's Suspension Train" "Straight (32)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_512.mdl" "SligWolf's Suspension Train" "Straight (512)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_512.mdl" "SligWolf's Suspension Train" "Straight (512)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_64.mdl" "SligWolf's Suspension Train" "Straight (64)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_64.mdl" "SligWolf's Suspension Train" "Straight (64)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_72_half_gauge.mdl" "SligWolf's Suspension Train" "Straight (72 - Half Gauge)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/straight_72_half_gauge.mdl" "SligWolf's Suspension Train" "Straight (72 - Half Gauge)" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/turningloop_1024.mdl" "SligWolf's Suspension Train" "TurningLoop (1024)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/turningloop_1024.mdl" "SligWolf's Suspension Train" "TurningLoop (1024)" 2 "NULL" "!up_holder" "!up_holder" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/turningloop_2048.mdl" "SligWolf's Suspension Train" "TurningLoop (2048)" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/turningloop_2048.mdl" "SligWolf's Suspension Train" "TurningLoop (2048)" 2 "NULL" "!left_holder" "!left_holder" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/turningloop_2048.mdl" "SligWolf's Suspension Train" "TurningLoop (2048)" 3 "NULL" "!up_holder" "!up_holder" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/rails/turningloop_2048.mdl" "SligWolf's Suspension Train" "TurningLoop (2048)" 4 "NULL" "!right_holder" "!right_holder" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1a_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1b_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_48x96x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 96 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_1c_wide_48x192x28.mdl" "SligWolf's Suspension Train" "Stairs S (48 x 192 x 24)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2a_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2b_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_96x96x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 96 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_2c_wide_96x192x48.mdl" "SligWolf's Suspension Train" "Stairs M (96 x 192 x 48)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3a_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3b_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_192x96x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 96 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 1 "NULL" "!stairs01" "!stairs01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 2 "NULL" "!stairs02" "!stairs02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 3 "NULL" "!stairs03" "!stairs03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stairs/station_stairs_3c_wide_192x192x96.mdl" "SligWolf's Suspension Train" "Stairs L (192 x 192 x 96)" 4 "NULL" "!stairs04" "!stairs04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_1a.mdl" "SligWolf's Suspension Train" "Prebuild A" 1 "NULL" "!station01" "!station01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_1a_half.mdl" "SligWolf's Suspension Train" "Prebuild A" 1 "NULL" "!station01" "!station01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_1a_half.mdl" "SligWolf's Suspension Train" "Prebuild A" 2 "NULL" "!station02" "!station02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_1b.mdl" "SligWolf's Suspension Train" "Prebuild B" 1 "NULL" "!station01" "!station01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_1b_half.mdl" "SligWolf's Suspension Train" "Prebuild B" 1 "NULL" "!station01" "!station01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_1b_half.mdl" "SligWolf's Suspension Train" "Prebuild B" 2 "NULL" "!station02" "!station02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 1 "NULL" "!station01" "!station01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 2 "NULL" "!smallplatform01" "!smallplatform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 3 "NULL" "!smallplatform02" "!smallplatform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 4 "NULL" "!smallplatform03" "!smallplatform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 5 "NULL" "!smallplatform04" "!smallplatform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 6 "NULL" "!smallplatform05" "!smallplatform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 7 "NULL" "!smallplatform06" "!smallplatform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 8 "NULL" "!smallplatform07" "!smallplatform07" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 9 "NULL" "!smallplatform08" "!smallplatform08" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 10 "NULL" "!smallplatform09" "!smallplatform09" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 11 "NULL" "!smallplatform10" "!smallplatform10" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 12 "NULL" "!smallplatform11" "!smallplatform11" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 13 "NULL" "!smallplatform12" "!smallplatform12" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 14 "NULL" "!smallplatform13" "!smallplatform13" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 15 "NULL" "!smallplatform14" "!smallplatform14" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 16 "NULL" "!smallplatform15" "!smallplatform15" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 17 "NULL" "!smallplatform16" "!smallplatform16" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 18 "NULL" "!smallplatform17" "!smallplatform17" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 19 "NULL" "!smallplatform18" "!smallplatform18" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 20 "NULL" "!smallplatform19" "!smallplatform19" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 21 "NULL" "!smallplatform20" "!smallplatform20" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 22 "NULL" "!smallplatform21" "!smallplatform21" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 23 "NULL" "!smallplatform22" "!smallplatform22" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 24 "NULL" "!smallplatform23" "!smallplatform23" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 25 "NULL" "!smallplatform24" "!smallplatform24" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 26 "NULL" "!smallplatform25" "!smallplatform25" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 27 "NULL" "!smallplatform26" "!smallplatform26" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 28 "NULL" "!smallplatform27" "!smallplatform27" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 29 "NULL" "!smallplatform28" "!smallplatform28" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 30 "NULL" "!bigplatform01" "!bigplatform01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 31 "NULL" "!bigplatform02" "!bigplatform02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 32 "NULL" "!bigplatform03" "!bigplatform03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 33 "NULL" "!bigplatform04" "!bigplatform04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 34 "NULL" "!bigplatform05" "!bigplatform05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 35 "NULL" "!bigplatform06" "!bigplatform06" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 36 "NULL" "!bigplatform07" "!bigplatform07" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 37 "NULL" "!bigplatform07a" "!bigplatform07a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 38 "NULL" "!bigplatform08" "!bigplatform08" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 39 "NULL" "!bigplatform09" "!bigplatform09" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 40 "NULL" "!bigplatform10" "!bigplatform10" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 41 "NULL" "!bigplatform11" "!bigplatform11" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 42 "NULL" "!bigplatform12" "!bigplatform12" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 43 "NULL" "!bigplatform13" "!bigplatform13" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 44 "NULL" "!bigplatform13a" "!bigplatform13a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 45 "NULL" "!bigplatform14" "!bigplatform14" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 46 "NULL" "!bigplatform15" "!bigplatform15" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 47 "NULL" "!bigplatform16" "!bigplatform16" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 48 "NULL" "!bigplatform17" "!bigplatform17" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 49 "NULL" "!bigplatform18" "!bigplatform18" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 50 "NULL" "!bigplatform19" "!bigplatform19" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 51 "NULL" "!bigplatform20" "!bigplatform20" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 52 "NULL" "!bigplatform20a" "!bigplatform20a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 53 "NULL" "!bigplatform21" "!bigplatform21" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 54 "NULL" "!bigplatform22" "!bigplatform22" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 55 "NULL" "!bigplatform23" "!bigplatform23" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 56 "NULL" "!bigplatform24" "!bigplatform24" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 57 "NULL" "!bigplatform25" "!bigplatform25" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 58 "NULL" "!bigplatform26" "!bigplatform26" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank.mdl" "SligWolf's Suspension Train" "Blank" 59 "NULL" "!bigplatform26a" "!bigplatform26a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 1 "NULL" "!station01" "!station01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 2 "NULL" "!station02" "!station02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 3 "NULL" "!smallplatform15" "!smallplatform15" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 4 "NULL" "!smallplatform16" "!smallplatform16" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 5 "NULL" "!smallplatform17" "!smallplatform17" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 6 "NULL" "!smallplatform18" "!smallplatform18" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 7 "NULL" "!smallplatform19" "!smallplatform19" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 8 "NULL" "!smallplatform20" "!smallplatform20" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 9 "NULL" "!smallplatform21" "!smallplatform21" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 10 "NULL" "!smallplatform22" "!smallplatform22" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 11 "NULL" "!smallplatform23" "!smallplatform23" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 12 "NULL" "!smallplatform24" "!smallplatform24" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 13 "NULL" "!smallplatform25" "!smallplatform25" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 14 "NULL" "!smallplatform26" "!smallplatform26" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 15 "NULL" "!smallplatform27" "!smallplatform27" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 16 "NULL" "!smallplatform28" "!smallplatform28" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 17 "NULL" "!bigplatform14" "!bigplatform14" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 18 "NULL" "!bigplatform15" "!bigplatform15" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 19 "NULL" "!bigplatform16" "!bigplatform16" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 20 "NULL" "!bigplatform17" "!bigplatform17" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 21 "NULL" "!bigplatform18" "!bigplatform18" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 22 "NULL" "!bigplatform19" "!bigplatform19" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 23 "NULL" "!bigplatform20" "!bigplatform20" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 24 "NULL" "!bigplatform20a" "!bigplatform20a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 25 "NULL" "!bigplatform21" "!bigplatform21" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 26 "NULL" "!bigplatform22" "!bigplatform22" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 27 "NULL" "!bigplatform23" "!bigplatform23" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 28 "NULL" "!bigplatform24" "!bigplatform24" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 29 "NULL" "!bigplatform25" "!bigplatform25" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 30 "NULL" "!bigplatform26" "!bigplatform26" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_blank_half.mdl" "SligWolf's Suspension Train" "Blank" 31 "NULL" "!bigplatform26a" "!bigplatform26a" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_industrial.mdl" "SligWolf's Suspension Train" "Industrial" 1 "NULL" "!station01" "!station01" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_industrial.mdl" "SligWolf's Suspension Train" "Industrial" 2 "NULL" "!station02" "!station02" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_industrial.mdl" "SligWolf's Suspension Train" "Industrial" 3 "NULL" "!station03" "!station03" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_industrial.mdl" "SligWolf's Suspension Train" "Industrial" 4 "NULL" "!station04" "!station04" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/stations/station_industrial.mdl" "SligWolf's Suspension Train" "Industrial" 5 "NULL" "!station05" "!station05" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_2way_1536.mdl" "SligWolf's Suspension Train" "Turntable 2 Way (1536)" 1 "NULL" "!front" "!front" "sligwolf_wpsuspensiontrain_turntable_2way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_2way_1536.mdl" "SligWolf's Suspension Train" "Turntable 2 Way (1536)" 2 "NULL" "!back" "!back" "sligwolf_wpsuspensiontrain_turntable_2way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_4way_1536.mdl" "SligWolf's Suspension Train" "Turntable 4 Way (1536)" 1 "NULL" "!front" "!front" "sligwolf_wpsuspensiontrain_turntable_4way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_4way_1536.mdl" "SligWolf's Suspension Train" "Turntable 4 Way (1536)" 2 "NULL" "!back" "!back" "sligwolf_wpsuspensiontrain_turntable_4way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_4way_1536.mdl" "SligWolf's Suspension Train" "Turntable 4 Way (1536)" 3 "NULL" "!front2" "!front2" "sligwolf_wpsuspensiontrain_turntable_4way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_4way_1536.mdl" "SligWolf's Suspension Train" "Turntable 4 Way (1536)" 4 "NULL" "!back2" "!back2" "sligwolf_wpsuspensiontrain_turntable_4way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 1 "NULL" "!front" "!front" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 2 "NULL" "!back" "!back" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 3 "NULL" "!front2" "!front2" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 4 "NULL" "!back2" "!back2" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 5 "NULL" "!front3" "!front3" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 6 "NULL" "!back3" "!back3" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 7 "NULL" "!front4" "!front4" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/wpsuspensiontrain/turntable/turntable_ring_8way_1536.mdl" "SligWolf's Suspension Train" "Turntable 8 Way (1536)" 8 "NULL" "!back4" "!back4" "sligwolf_wpsuspensiontrain_turntable_8way" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_bow.mdl" "SligWolf's Tiny Hover Racer" "Bow x8" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_bow.mdl" "SligWolf's Tiny Hover Racer" "Bow x8" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_bow_small.mdl" "SligWolf's Tiny Hover Racer" "Bow x4" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_bow_small.mdl" "SligWolf's Tiny Hover Racer" "Bow x4" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_45.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 45°" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_45.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 45°" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_45_s.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 45° S-Shape Left" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_45_s.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 45° S-Shape Left" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_45_s_i.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 45° S-Shape Right" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_45_s_i.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 45° S-Shape Right" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_90.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 90°" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_1_90.mdl" "SligWolf's Tiny Hover Racer" "Curve 1 90°" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_45.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 45°" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_45.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 45°" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_45_s.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 45° S-Shape Left" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_45_s.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 45° S-Shape Left" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_45_s_i.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 45° S-Shape Right" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_45_s_i.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 45° S-Shape Right" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_90.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 90°" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_2_90.mdl" "SligWolf's Tiny Hover Racer" "Curve 2 90°" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_45.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 45°" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_45.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 45°" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_45_s.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 45° S-Shape Left" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_45_s.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 45° S-Shape Left" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_45_s_i.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 45° S-Shape Right" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_45_s_i.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 45° S-Shape Right" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_90.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 90°" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_curve_3_90.mdl" "SligWolf's Tiny Hover Racer" "Curve 3 90°" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop1.mdl" "SligWolf's Tiny Hover Racer" "Looping x4 Left" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop1.mdl" "SligWolf's Tiny Hover Racer" "Looping x4 Left" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop1i.mdl" "SligWolf's Tiny Hover Racer" "Looping x4 Right" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop1i.mdl" "SligWolf's Tiny Hover Racer" "Looping x4 Right" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop2.mdl" "SligWolf's Tiny Hover Racer" "Looping x8 Left" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop2.mdl" "SligWolf's Tiny Hover Racer" "Looping x8 Left" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop2i.mdl" "SligWolf's Tiny Hover Racer" "Looping x8 Right" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop2i.mdl" "SligWolf's Tiny Hover Racer" "Looping x8 Right" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop_quarter.mdl" "SligWolf's Tiny Hover Racer" "Quater Looping x8" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_loop_quarter.mdl" "SligWolf's Tiny Hover Racer" "Quater Looping x8" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_ramp.mdl" "SligWolf's Tiny Hover Racer" "Ramp x8" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_ramp.mdl" "SligWolf's Tiny Hover Racer" "Ramp x8" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_ramp_small.mdl" "SligWolf's Tiny Hover Racer" "Ramp x4" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_ramp_small.mdl" "SligWolf's Tiny Hover Racer" "Ramp x4" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x4_long.mdl" "SligWolf's Tiny Hover Racer" "Straight x4 L" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x4_long.mdl" "SligWolf's Tiny Hover Racer" "Straight x4 L" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x4_mid.mdl" "SligWolf's Tiny Hover Racer" "Straight x4 M" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x4_mid.mdl" "SligWolf's Tiny Hover Racer" "Straight x4 M" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x4_small.mdl" "SligWolf's Tiny Hover Racer" "Straight x4 S" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x4_small.mdl" "SligWolf's Tiny Hover Racer" "Straight x4 S" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_long.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 L" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_long.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 L" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_mid.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 M" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_mid.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 M" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_small.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 S" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_small.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 S" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_splitter.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 splitter" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_splitter.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 splitter" 2 "NULL" "!back_right" "!back_right" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_splitter.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 splitter" 3 "NULL" "!back_left" "!back_left" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_to_x4.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 to x4" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_straight_x8_to_x4.mdl" "SligWolf's Tiny Hover Racer" "Straight x8 to x4" 2 "NULL" "!back" "!back" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_trackend_x4.mdl" "SligWolf's Tiny Hover Racer" "Entrance x4" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/sligwolf/tinyhoverracer/hover_trackend_x8.mdl" "SligWolf's Tiny Hover Racer" "Entrance x8" 1 "NULL" "!front" "!front" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot16x16.mdl" "StevenTechno's Buildings 1.0" "Lot 16x16" 1 "NULL" "-268, 575, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot16x16.mdl" "StevenTechno's Buildings 1.0" "Lot 16x16" 2 "NULL" "-268, -577.002, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot16x16fence.mdl" "StevenTechno's Buildings 1.0" "Lot 16x16fence" 1 "NULL" "-268, 575, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot16x16fence.mdl" "StevenTechno's Buildings 1.0" "Lot 16x16fence" 2 "NULL" "-268, -577.002, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot32x32.mdl" "StevenTechno's Buildings 1.0" "Lot 32x32" 1 "NULL" "-268, 1152.002, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot32x32.mdl" "StevenTechno's Buildings 1.0" "Lot 32x32" 2 "NULL" "-267.999, -1151.292, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot32x32fence.mdl" "StevenTechno's Buildings 1.0" "Lot 32x32fence" 1 "NULL" "-268, 1152.002, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot32x32fence.mdl" "StevenTechno's Buildings 1.0" "Lot 32x32fence" 2 "NULL" "-267.999, -1151.292, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot8x8.mdl" "StevenTechno's Buildings 1.0" "Lot 8x8" 1 "NULL" "-268, 288, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot8x8.mdl" "StevenTechno's Buildings 1.0" "Lot 8x8" 2 "NULL" "-268, -287.996, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot8x8fence.mdl" "StevenTechno's Buildings 1.0" "Lot 8x8fence" 1 "NULL" "-268, 288, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/emptylots/lot8x8fence.mdl" "StevenTechno's Buildings 1.0" "Lot 8x8fence" 2 "NULL" "-268, -287.996, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/housing/3_0apartments_0.mdl" "StevenTechno's Buildings 1.0" "Apartments 0" 1 "NULL" "-268, 612.001, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/housing/3_0apartments_0.mdl" "StevenTechno's Buildings 1.0" "Apartments 0" 2 "NULL" "-268, -612, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/housing/3_1apartments_1.mdl" "StevenTechno's Buildings 1.0" "Apartments 1" 1 "NULL" "-268, 1248, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/housing/3_1apartments_1.mdl" "StevenTechno's Buildings 1.0" "Apartments 1" 2 "NULL" "-268, -1200, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/housing/3_3apartments_3.mdl" "StevenTechno's Buildings 1.0" "Apartments 3" 1 "NULL" "-268.008, 574.913, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/housing/3_3apartments_3.mdl" "StevenTechno's Buildings 1.0" "Apartments 3" 2 "NULL" "-268, -577, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 1 "NULL" "0, -916, 3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 2 "NULL" "0, 916, 3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 3 "NULL" "-340, 1256, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 4 "NULL" "-2172, 1256, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 5 "NULL" "-2512, 916, 3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 6 "NULL" "-2512, -916, 3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 7 "NULL" "-2172, -1256, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_2skyscraper1.mdl" "StevenTechno's Buildings 1.0" "Skyscraper1" 8 "NULL" "-340, -1256, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 1 "NULL" "0, -916, 3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 2 "NULL" "0, 916, 3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 3 "NULL" "-340, 1256, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 4 "NULL" "-2172, 1256, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 5 "NULL" "-2512, 916, 3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 6 "NULL" "-2512, -916, 3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 7 "NULL" "-2172, -1256, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_3skyscraper2.mdl" "StevenTechno's Buildings 1.0" "Skyscraper2" 8 "NULL" "-340, -1256, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 1 "NULL" "0, -1492, 3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 2 "NULL" "0, 1492, 3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 3 "NULL" "-340, 1832, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 4 "NULL" "-2172, 1832, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 5 "NULL" "-2512, 1492, 3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 6 "NULL" "-2512, -1492, 3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 7 "NULL" "-2172, -1832, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/misc/6_4skyscraper3.mdl" "StevenTechno's Buildings 1.0" "Skyscraper3" 8 "NULL" "-340, -1832, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/recreational/5_1club_lgbt.mdl" "StevenTechno's Buildings 1.0" "Club Lgbt" 1 "NULL" "-268, 720, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/recreational/5_1club_lgbt.mdl" "StevenTechno's Buildings 1.0" "Club Lgbt" 2 "NULL" "-268, -720, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/recreational/5_2stripclub.mdl" "StevenTechno's Buildings 1.0" "Stripclub" 1 "NULL" "-268, 736, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/recreational/5_2stripclub.mdl" "StevenTechno's Buildings 1.0" "Stripclub" 2 "NULL" "-268, -736, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy1x1.mdl" "StevenTechno's Buildings 1.0" "Road 1x1" 1 "NULL" "0,0,316.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy1x1.mdl" "StevenTechno's Buildings 1.0" "Road 1x1" 2 "NULL" "-72,0,316.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 2 "NULL" "-1632,1152,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 3 "NULL" "-2304,1152,315.031616" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 4 "NULL" "-2976,1152,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 5 "NULL" "-2976.007,-1151.975,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 6 "NULL" "-2304,-1152,315.031616" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 7 "NULL" "-1632,-1152,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 1" 8 "NULL" "-4608,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_10roadsdwhwybridge1x16.mdl" "StevenTechno's Buildings 1.0" "Road Bridge1x16" 1 "NULL" "0,0,60.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_10roadsdwhwybridge1x16.mdl" "StevenTechno's Buildings 1.0" "Road Bridge1x16" 2 "NULL" "-1152,0,60.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_11roadsdwhwybridge1x32.mdl" "StevenTechno's Buildings 1.0" "Road Bridge1x32" 1 "NULL" "0,0,60.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_11roadsdwhwybridge1x32.mdl" "StevenTechno's Buildings 1.0" "Road Bridge1x32" 2 "NULL" "-2304,0,60.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_12roadsdwhwybridge1x64.mdl" "StevenTechno's Buildings 1.0" "Road Bridge1x64" 1 "NULL" "0,0,60.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_12roadsdwhwybridge1x64.mdl" "StevenTechno's Buildings 1.0" "Road Bridge1x64" 2 "NULL" "-4608,0,60.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 2" 1 "NULL" "0,-671.994,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 2" 2 "NULL" "0,0,315.031616" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 2" 3 "NULL" "0,671.995,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl" "StevenTechno's Buildings 1.0" "Road Ramp 2" 4 "NULL" "-4608,0,315.031616" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl" "StevenTechno's Buildings 1.0" "Road Ramp Stop" 1 "NULL" "0,-671.994,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl" "StevenTechno's Buildings 1.0" "Road Ramp Stop" 2 "NULL" "0,0,315.031616" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl" "StevenTechno's Buildings 1.0" "Road Ramp Stop" 3 "NULL" "0,671.995,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl" "StevenTechno's Buildings 1.0" "Road Ramp Stop" 4 "NULL" "-4160,0,15.202" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_2roadsdwhwy1x4.mdl" "StevenTechno's Buildings 1.0" "Road 1x4" 1 "NULL" "0,0,316.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_2roadsdwhwy1x4.mdl" "StevenTechno's Buildings 1.0" "Road 1x4" 2 "NULL" "-288,0,316.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_3roadsdwhwy1x8.mdl" "StevenTechno's Buildings 1.0" "Road 1x8" 1 "NULL" "0,0,316.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_3roadsdwhwy1x8.mdl" "StevenTechno's Buildings 1.0" "Road 1x8" 2 "NULL" "-576,0,316.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_4roadsdwhwy1x16.mdl" "StevenTechno's Buildings 1.0" "Road 1x16" 1 "NULL" "0,0,316.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_4roadsdwhwy1x16.mdl" "StevenTechno's Buildings 1.0" "Road 1x16" 2 "NULL" "-1152,0,316.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_5roadsdwhwy1x32.mdl" "StevenTechno's Buildings 1.0" "Road 1x32" 1 "NULL" "0,0,316.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_5roadsdwhwy1x32.mdl" "StevenTechno's Buildings 1.0" "Road 1x32" 2 "NULL" "-2304,0,316.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_6roadsdwhwy1x64.mdl" "StevenTechno's Buildings 1.0" "Road 1x64" 1 "NULL" "0,0,316.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_6roadsdwhwy1x64.mdl" "StevenTechno's Buildings 1.0" "Road 1x64" 2 "NULL" "-4608,0,316.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_7roadsdwhwy_turn1.mdl" "StevenTechno's Buildings 1.0" "Road Turn" 1 "NULL" "0,0,316.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_7roadsdwhwy_turn1.mdl" "StevenTechno's Buildings 1.0" "Road Turn" 2 "NULL" "-1692,1692,316.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_8roadsdwhwybridge1x4.mdl" "StevenTechno's Buildings 1.0" "Road Bridge 1x4" 1 "NULL" "0,0,60.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_8roadsdwhwybridge1x4.mdl" "StevenTechno's Buildings 1.0" "Road Bridge 1x4" 2 "NULL" "-288,0,60.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_9roadsdwhwybridge1x8.mdl" "StevenTechno's Buildings 1.0" "Road Bridge 1x8" 1 "NULL" "0,0,60.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwhighway/1_9roadsdwhwybridge1x8.mdl" "StevenTechno's Buildings 1.0" "Road Bridge 1x8" 2 "NULL" "-576,0,60.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_0roadsdwsidewalktransfer.mdl" "StevenTechno's Buildings 1.0" "Roadsdwsidewalktransfer" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_0roadsdwsidewalktransfer.mdl" "StevenTechno's Buildings 1.0" "Roadsdwsidewalktransfer" 2 "NULL" "-376,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_10roadsdwsidewalk1x32.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x32" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_10roadsdwsidewalk1x32.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x32" 2 "NULL" "-2304,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 4way" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 4way" 2 "NULL" "-540,540,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 4way" 3 "NULL" "-1080,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 4way" 4 "NULL" "-540,-540,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 3way" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 3way" 2 "NULL" "-540,540,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 3way" 3 "NULL" "-540,-540,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_13roadsdwsidewalk_int_2way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 2way" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_13roadsdwsidewalk_int_2way.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Int 2way" 2 "NULL" "-540,540,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_14roadsdwsidewalk_turn_1.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Turn 1" 1 "NULL" "0,-4,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_14roadsdwsidewalk_turn_1.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Turn 1" 2 "NULL" "-540,-544,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_15roadsdwsidewalk_turn_2.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Turn 2" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_15roadsdwsidewalk_turn_2.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk Turn 2" 2 "NULL" "-1692,1692,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_1roadsdwsidewalk1x1.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x1" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_1roadsdwsidewalk1x1.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x1" 2 "NULL" "-72,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_2roadsdwsidewalk1x2.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x2" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_2roadsdwsidewalk1x2.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x2" 2 "NULL" "-144,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_3roadsdwsidewalk1x3.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x3" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_3roadsdwsidewalk1x3.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x3" 2 "NULL" "-216,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_4roadsdwsidewalk1x4.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x4" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_4roadsdwsidewalk1x4.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x4" 2 "NULL" "-288,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_5roadsdwsidewalk1x5.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x5" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_5roadsdwsidewalk1x5.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x5" 2 "NULL" "-360,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_6roadsdwsidewalk1x6.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x6" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_6roadsdwsidewalk1x6.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x6" 2 "NULL" "-432,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_7roadsdwsidewalk1x7.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x7" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_7roadsdwsidewalk1x7.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x7" 2 "NULL" "-504,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_8roadsdwsidewalk1x8.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x8" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_8roadsdwsidewalk1x8.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x8" 2 "NULL" "-576,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_9roadsdwsidewalk1x16.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x16" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadsdwsidewalk/0_9roadsdwsidewalk1x16.mdl" "StevenTechno's Buildings 1.0" "Road Sidewalk 1x16" 2 "NULL" "-1152,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_10road_dl_sdw_1x32.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x32" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_10road_dl_sdw_1x32.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x32" 2 "NULL" "-2304,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 4w" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 4w" 2 "NULL" "-340,340,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 4w" 3 "NULL" "-680,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 4w" 4 "NULL" "-340,-340,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 3w" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 3w" 2 "NULL" "-340,340,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 3w" 3 "NULL" "-340,-340,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_13road_intersection_2w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 2w" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_13road_intersection_2w.mdl" "StevenTechno's Buildings 1.0" "Road Intersect 2w" 2 "NULL" "-340,-340,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_14road_intersection_deadend.mdl" "StevenTechno's Buildings 1.0" "Road Intersect Deadend" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_15road_intersection_turn1.mdl" "StevenTechno's Buildings 1.0" "Road Intersect Turn1" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_15road_intersection_turn1.mdl" "StevenTechno's Buildings 1.0" "Road Intersect Turn1" 2 "NULL" "-340,-340,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_16road_intersection_turn2_16.mdl" "StevenTechno's Buildings 1.0" "Road Intersect Turn" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_16road_intersection_turn2_16.mdl" "StevenTechno's Buildings 1.0" "Road Intersect Turn" 2 "NULL" "-1564,1564,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_1road_dl_sdw_1x1.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x1" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_1road_dl_sdw_1x1.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x1" 2 "NULL" "-72,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_2road_dl_sdw_1x2.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x2" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_2road_dl_sdw_1x2.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x2" 2 "NULL" "-144,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_3road_dl_sdw_1x3.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x3" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_3road_dl_sdw_1x3.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x3" 2 "NULL" "-216,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_4road_dl_sdw_1x4.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x4" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_4road_dl_sdw_1x4.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x4" 2 "NULL" "-288,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_5road_dl_sdw_1x5.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x5" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/roadswsidewalk/2_5road_dl_sdw_1x5.mdl" "StevenTechno's Buildings 1.0" "Road Dl Sdw 1x5" 2 "NULL" "-360,0,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/schultz/stores/4_0office.mdl" "StevenTechno's Buildings 1.0" "Office" 1 "NULL" "-267.986, 616.053, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/schultz/stores/4_0office.mdl" "StevenTechno's Buildings 1.0" "Office" 2 "NULL" "-268, -608, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/schultz/stores/4_1garage.mdl" "StevenTechno's Buildings 1.0" "Garage" 1 "NULL" "-268, 698, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/schultz/stores/4_1garage.mdl" "StevenTechno's Buildings 1.0" "Garage" 2 "NULL" "-268, -598, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_1gas_station_a.mdl" "StevenTechno's Buildings 1.0" "Gas Station A" 1 "NULL" "-268, 604, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_1gas_station_a.mdl" "StevenTechno's Buildings 1.0" "Gas Station A" 2 "NULL" "-268, -620, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_1gas_station_b.mdl" "StevenTechno's Buildings 1.0" "Gas Station B" 1 "NULL" "-268, 612, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_1gas_station_b.mdl" "StevenTechno's Buildings 1.0" "Gas Station B" 2 "NULL" "-268, -612, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_2pcshop.mdl" "StevenTechno's Buildings 1.0" "Pcshop" 1 "NULL" "-268, 432, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_2pcshop.mdl" "StevenTechno's Buildings 1.0" "Pcshop" 2 "NULL" "-268, -432, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_3gunshop.mdl" "StevenTechno's Buildings 1.0" "Gunshop" 1 "NULL" "-268, 504.001, 3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_3gunshop.mdl" "StevenTechno's Buildings 1.0" "Gunshop" 2 "NULL" "-268, -504, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_4bank.mdl" "StevenTechno's Buildings 1.0" "Bank" 1 "NULL" "-268, 504, 2.031232" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack/stores/4_4bank.mdl" "StevenTechno's Buildings 1.0" "Bank" 2 "NULL" "-268, -504, 2.031232" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-0_empty_lot_x8.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X8" 1 "NULL" "-268, 288,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-0_empty_lot_x8.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X8" 2 "NULL" "-268,-288,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-1_empty_lot_x16.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X16" 1 "NULL" "-268, 576,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-1_empty_lot_x16.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X16" 2 "NULL" "-268,-576,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-2_empty_lot_x32.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X32" 1 "NULL" "-268, 1152,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-2_empty_lot_x32.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X32" 2 "NULL" "-268,-1152,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-3_empty_lot_x64.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X64" 1 "NULL" "-268, 2304,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-3_empty_lot_x64.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X64" 2 "NULL" "-268,-2304,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-4_empty_lot_x128.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X128" 1 "NULL" "-268, 4608,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-4_empty_lot_x128.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X128" 2 "NULL" "-268,-4608,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-5_empty_lot_8x4.mdl" "StevenTechno's Buildings 2.0" "Empty Lot 8x4" 1 "NULL" "-268, 288,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-5_empty_lot_8x4.mdl" "StevenTechno's Buildings 2.0" "Empty Lot 8x4" 2 "NULL" "-268,-288,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-6_empty_lot_x16x8.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X16x8" 1 "NULL" "-268, 576,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-6_empty_lot_x16x8.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X16x8" 2 "NULL" "-268,-576,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-7_empty_lot_x32x16.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X32x16" 1 "NULL" "-268, 1152,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-7_empty_lot_x32x16.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X32x16" 2 "NULL" "-268,-1152,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-8_empty_lot_x64x32.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X64x32" 1 "NULL" "-268, 2304,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-8_empty_lot_x64x32.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X64x32" 2 "NULL" "-268,-2304,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-9_empty_lot_x128x64.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X128x64" 1 "NULL" "-268, 4608,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/emptylots/0-9_empty_lot_x128x64.mdl" "StevenTechno's Buildings 2.0" "Empty Lot X128x64" 2 "NULL" "-268,-4608,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-0_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 1 "NULL" "-268, 616,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-0_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 2 "NULL" "-268,-608,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-0_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 1 "NULL" "-268, 616,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-0_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 2 "NULL" "-268,-608,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-1_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 1 "NULL" "-268, 1072,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-1_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 2 "NULL" "-268,-1016,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-1_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 1 "NULL" "-268, 1072,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-1_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 2 "NULL" "-268,-1016,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-2_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 1 "NULL" "-268, 576,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-2_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 2 "NULL" "-268,-576,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-2_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 1 "NULL" "-268, 576,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-2_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 2 "NULL" "-268,-576,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-3_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 1 "NULL" "-268, 900,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-3_apartments.mdl" "StevenTechno's Buildings 2.0" "Apartments" 2 "NULL" "-268,-900,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-3_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 1 "NULL" "-268, 900,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/housing/1-3_apartments_nodoors.mdl" "StevenTechno's Buildings 2.0" "Apartments Nodoors" 2 "NULL" "-268,-900,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-0_car_garage.mdl" "StevenTechno's Buildings 2.0" "Car Garage" 1 "NULL" "-268, 936,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-0_car_garage.mdl" "StevenTechno's Buildings 2.0" "Car Garage" 2 "NULL" "-268,-936,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-0_car_garage_nodoors.mdl" "StevenTechno's Buildings 2.0" "Car Garage Nodoors" 1 "NULL" "-268, 936,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-0_car_garage_nodoors.mdl" "StevenTechno's Buildings 2.0" "Car Garage Nodoors" 2 "NULL" "-268,-936,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-1_office_building.mdl" "StevenTechno's Buildings 2.0" "Office Building" 1 "NULL" "-268, 1224,4.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-1_office_building.mdl" "StevenTechno's Buildings 2.0" "Office Building" 2 "NULL" "-268,-1224,4.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-1_office_building_nodoors.mdl" "StevenTechno's Buildings 2.0" "Office Building Nodoors" 1 "NULL" "-268, 1224,4.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-1_office_building_nodoors.mdl" "StevenTechno's Buildings 2.0" "Office Building Nodoors" 2 "NULL" "-268,-1224,4.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-2_lgbt_club_a.mdl" "StevenTechno's Buildings 2.0" "Lgbt Club A" 1 "NULL" "-268, 936,4.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-2_lgbt_club_a.mdl" "StevenTechno's Buildings 2.0" "Lgbt Club A" 2 "NULL" "-268,-936,4.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-2_lgbt_club_a_nodoors.mdl" "StevenTechno's Buildings 2.0" "Lgbt Club A Nodoors" 1 "NULL" "-268, 936,4.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-2_lgbt_club_a_nodoors.mdl" "StevenTechno's Buildings 2.0" "Lgbt Club A Nodoors" 2 "NULL" "-268,-936,4.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-3_strip_club_a.mdl" "StevenTechno's Buildings 2.0" "Strip Club A" 1 "NULL" "-268, 1080,1.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-3_strip_club_a.mdl" "StevenTechno's Buildings 2.0" "Strip Club A" 2 "NULL" "-268,-1080,1.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-3_strip_club_a_nodoors.mdl" "StevenTechno's Buildings 2.0" "Strip Club A Nodoors" 1 "NULL" "-268, 1080,1.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-3_strip_club_a_nodoors.mdl" "StevenTechno's Buildings 2.0" "Strip Club A Nodoors" 2 "NULL" "-268,-1080,1.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-4_gas_stop.mdl" "StevenTechno's Buildings 2.0" "Gas Stop" 1 "NULL" "-268, 792,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-4_gas_stop.mdl" "StevenTechno's Buildings 2.0" "Gas Stop" 2 "NULL" "-268,-792,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-4_gas_stop_nodoors.mdl" "StevenTechno's Buildings 2.0" "Gas Stop Nodoors" 1 "NULL" "-268, 792,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-4_gas_stop_nodoors.mdl" "StevenTechno's Buildings 2.0" "Gas Stop Nodoors" 2 "NULL" "-268,-792,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-5_pc_shop.mdl" "StevenTechno's Buildings 2.0" "Pc Shop" 1 "NULL" "-268, 576,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-5_pc_shop.mdl" "StevenTechno's Buildings 2.0" "Pc Shop" 2 "NULL" "-268,-576,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-5_pc_shop_nodoors.mdl" "StevenTechno's Buildings 2.0" "Pc Shop Nodoors" 1 "NULL" "-268, 576,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-5_pc_shop_nodoors.mdl" "StevenTechno's Buildings 2.0" "Pc Shop Nodoors" 2 "NULL" "-268,-576,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-6_gun_shop.mdl" "StevenTechno's Buildings 2.0" "Gun Shop" 1 "NULL" "-268, 684,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-6_gun_shop.mdl" "StevenTechno's Buildings 2.0" "Gun Shop" 2 "NULL" "-268,-684,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-6_gun_shop_nodoors.mdl" "StevenTechno's Buildings 2.0" "Gun Shop Nodoors" 1 "NULL" "-268, 684,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-6_gun_shop_nodoors.mdl" "StevenTechno's Buildings 2.0" "Gun Shop Nodoors" 2 "NULL" "-268,-684,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-7_bank.mdl" "StevenTechno's Buildings 2.0" "Bank" 1 "NULL" "-268, 792,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-7_bank.mdl" "StevenTechno's Buildings 2.0" "Bank" 2 "NULL" "-268,-792,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-7_bank_nodoors.mdl" "StevenTechno's Buildings 2.0" "Bank Nodoors" 1 "NULL" "-268, 792,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-7_bank_nodoors.mdl" "StevenTechno's Buildings 2.0" "Bank Nodoors" 2 "NULL" "-268,-792,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-8_parking_garage.mdl" "StevenTechno's Buildings 2.0" "Parking Garage" 1 "NULL" "-268, 784,3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-8_parking_garage.mdl" "StevenTechno's Buildings 2.0" "Parking Garage" 2 "NULL" "-268,-800,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-9_school_house.mdl" "StevenTechno's Buildings 2.0" "School House" 1 "NULL" "-268, 1328,1.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-9_school_house.mdl" "StevenTechno's Buildings 2.0" "School House" 2 "NULL" "-268,-1336,1.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-9_school_house_nodoors.mdl" "StevenTechno's Buildings 2.0" "School House Nodoors" 1 "NULL" "-268, 1328,1.0625" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/public/2-9_school_house_nodoors.mdl" "StevenTechno's Buildings 2.0" "School House Nodoors" 2 "NULL" "-268,-1336,1.0625" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 1 "NULL" "0,860,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 2 "NULL" "-428,1288,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 3 "NULL" "-2148,1288,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 4 "NULL" "-2576,860,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 5 "NULL" "-2576,-860,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 6 "NULL" "-2148,-1288,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 7 "NULL" "-428,-1288,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-0_skyscraper_a.mdl" "StevenTechno's Buildings 2.0" "Skyscraper A" 8 "NULL" "0,-860,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 1 "NULL" "0,860,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 2 "NULL" "-428,1288,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 3 "NULL" "-2148,1288,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 4 "NULL" "-2576,860,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 5 "NULL" "-2576,-860,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 6 "NULL" "-2148,-1288,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 7 "NULL" "-428,-1288,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-1_skyscraper_b.mdl" "StevenTechno's Buildings 2.0" "Skyscraper B" 8 "NULL" "0,-860,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 1 "NULL" "76,1584,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 2 "NULL" "-356,2016,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 3 "NULL" "-2516,2016,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 4 "NULL" "-2948,1584,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 5 "NULL" "-2948,-1584,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 6 "NULL" "-2516,-2016,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 7 "NULL" "-356,-2016,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-2_skyscraper_c.mdl" "StevenTechno's Buildings 2.0" "Skyscraper C" 8 "NULL" "76,-1584,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 1 "NULL" "-1,1008,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 2 "NULL" "-433,1440,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 3 "NULL" "-2449,1440,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 4 "NULL" "-2881,1008,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 5 "NULL" "-2881,-1008,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 6 "NULL" "-2449,-1440,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 7 "NULL" "-433,-1440,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-3_skyscraper_d.mdl" "StevenTechno's Buildings 2.0" "Skyscraper D" 8 "NULL" "-1,-1008,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 1 "NULL" "-1,1008,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 2 "NULL" "-433,1440,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 3 "NULL" "-2449,1440,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 4 "NULL" "-2881,1008,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 5 "NULL" "-2881,-1008,3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 6 "NULL" "-2449,-1440,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 7 "NULL" "-433,-1440,3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/buildingspack2/skyscraper/3-4_skyscraper_e.mdl" "StevenTechno's Buildings 2.0" "Skyscraper E" 8 "NULL" "-1,-1008,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/connectors/2-0_single_to_double_connector.mdl" "StevenTechno's Buildings 2.0" "Single To Double Connector" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/connectors/2-0_single_to_double_connector.mdl" "StevenTechno's Buildings 2.0" "Single To Double Connector" 2 "NULL" "-576,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-0_double_lane_x1.mdl" "StevenTechno's Buildings 2.0" "Double Lane X1" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-0_double_lane_x1.mdl" "StevenTechno's Buildings 2.0" "Double Lane X1" 2 "NULL" "-72,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-1_double_lane_x2.mdl" "StevenTechno's Buildings 2.0" "Double Lane X2" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-1_double_lane_x2.mdl" "StevenTechno's Buildings 2.0" "Double Lane X2" 2 "NULL" "-144,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-2_double_lane_x4.mdl" "StevenTechno's Buildings 2.0" "Double Lane X4" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-2_double_lane_x4.mdl" "StevenTechno's Buildings 2.0" "Double Lane X4" 2 "NULL" "-288,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-3_double_lane_x8.mdl" "StevenTechno's Buildings 2.0" "Double Lane X8" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-3_double_lane_x8.mdl" "StevenTechno's Buildings 2.0" "Double Lane X8" 2 "NULL" "-576,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-4_double_lane_x16.mdl" "StevenTechno's Buildings 2.0" "Double Lane X16" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-4_double_lane_x16.mdl" "StevenTechno's Buildings 2.0" "Double Lane X16" 2 "NULL" "-1152,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-5_double_lane_x32.mdl" "StevenTechno's Buildings 2.0" "Double Lane X32" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-5_double_lane_x32.mdl" "StevenTechno's Buildings 2.0" "Double Lane X32" 2 "NULL" "-2304,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-6_double_lane_x64.mdl" "StevenTechno's Buildings 2.0" "Double Lane X64" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-6_double_lane_x64.mdl" "StevenTechno's Buildings 2.0" "Double Lane X64" 2 "NULL" "-4608,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-7_double_lane_x128.mdl" "StevenTechno's Buildings 2.0" "Double Lane X128" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_lane/1-7_double_lane_x128.mdl" "StevenTechno's Buildings 2.0" "Double Lane X128" 2 "NULL" "-9216,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-0_intersect_double_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane A" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-0_intersect_double_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane A" 2 "NULL" "-628 , 628, 3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-0_intersect_double_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane A" 3 "NULL" "-1256, 0, 3.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-0_intersect_double_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane A" 4 "NULL" "-628 ,-628, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-1_intersect_double_lane_b.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane B" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-1_intersect_double_lane_b.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane B" 2 "NULL" "-628 , 628, 3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-1_intersect_double_lane_b.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane B" 3 "NULL" "-628 ,-628, 3.03125" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-2_intersect_double_lane_c.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane C" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-2_intersect_double_lane_c.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane C" 2 "NULL" "-628 , 628, 3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-3_intersect_double_lane_d.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane D" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-3_intersect_double_lane_d.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane D" 2 "NULL" "-628,-628, 3.03125" "0, -90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-4_intersect_double_lane_e.mdl" "StevenTechno's Buildings 2.0" "Intersect Double Lane E" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-5_turn_double_lane_a.mdl" "StevenTechno's Buildings 2.0" "Turn Double Lane A" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-5_turn_double_lane_a.mdl" "StevenTechno's Buildings 2.0" "Turn Double Lane A" 2 "NULL" "-628,628,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-6_turn_double_lane_b.mdl" "StevenTechno's Buildings 2.0" "Turn Double Lane B" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-6_turn_double_lane_b.mdl" "StevenTechno's Buildings 2.0" "Turn Double Lane B" 2 "NULL" "-2860,2860,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-7_turn_double_lane_c.mdl" "StevenTechno's Buildings 2.0" "Turn Double Lane C" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/double_turns/4-7_turn_double_lane_c.mdl" "StevenTechno's Buildings 2.0" "Turn Double Lane C" 2 "NULL" "-5164,5164,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-0_highway_entrance_type_a_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type A A" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-0_highway_entrance_type_a_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type A A" 2 "NULL" "-2716, 556, 3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-0_highway_entrance_type_a_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type A A" 3 "NULL" "-5432,0,3.03125" "0, 180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-0_highway_entrance_type_a_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type A A" 4 "NULL" "-2716,-556, 3.03125" "0, -90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-10_highway_x64.mdl" "StevenTechno's Buildings 2.0" "Highway X64" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-10_highway_x64.mdl" "StevenTechno's Buildings 2.0" "Highway X64" 2 "NULL" "-4608,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-11_highway_x128.mdl" "StevenTechno's Buildings 2.0" "Highway X128" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-11_highway_x128.mdl" "StevenTechno's Buildings 2.0" "Highway X128" 2 "NULL" "-9216,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-1_highway_entrance_type_a_b.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type A B" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-1_highway_entrance_type_a_b.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type A B" 2 "NULL" "-2580, 0, 3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-2_highway_entrance_type_b_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type B A" 1 "NULL" "0,-4,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-2_highway_entrance_type_b_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type B A" 2 "NULL" "-2304, 1148, 315.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-2_highway_entrance_type_b_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type B A" 3 "NULL" "-4608,-4,3.03125" "0, 180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-2_highway_entrance_type_b_a.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type B A" 4 "NULL" "-2304,-1156, 315.03125" "0, -90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-3_highway_entrance_type_b_b.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type B B" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-3_highway_entrance_type_b_b.mdl" "StevenTechno's Buildings 2.0" "Highway Entrance Type B B" 2 "NULL" "-2736, 0, 315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-4_highway_blank_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Blank X1" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-4_highway_blank_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Blank X1" 2 "NULL" "-72,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-4_highway_dash_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Dash X1" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-4_highway_dash_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Dash X1" 2 "NULL" "-72,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-5_highway_x2.mdl" "StevenTechno's Buildings 2.0" "Highway X2" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-5_highway_x2.mdl" "StevenTechno's Buildings 2.0" "Highway X2" 2 "NULL" "-144,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-6_highway_x4.mdl" "StevenTechno's Buildings 2.0" "Highway X4" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-6_highway_x4.mdl" "StevenTechno's Buildings 2.0" "Highway X4" 2 "NULL" "-288,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-7_highway_x8.mdl" "StevenTechno's Buildings 2.0" "Highway X8" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-7_highway_x8.mdl" "StevenTechno's Buildings 2.0" "Highway X8" 2 "NULL" "-576,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-8_highway_x16.mdl" "StevenTechno's Buildings 2.0" "Highway X16" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-8_highway_x16.mdl" "StevenTechno's Buildings 2.0" "Highway X16" 2 "NULL" "-1152,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-9_highway_x32.mdl" "StevenTechno's Buildings 2.0" "Highway X32" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway/5-9_highway_x32.mdl" "StevenTechno's Buildings 2.0" "Highway X32" 2 "NULL" "-2304,0,315.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-0_highway_blank_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Blank X1" 1 "NULL" "0,0,91.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-0_highway_blank_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Blank X1" 2 "NULL" "-72,0,91.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-0_highway_dash_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Dash X1" 1 "NULL" "0,0,91.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-0_highway_dash_x1.mdl" "StevenTechno's Buildings 2.0" "Highway Dash X1" 2 "NULL" "-72,0,91.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-1_highway_x2.mdl" "StevenTechno's Buildings 2.0" "Highway X2" 1 "NULL" "0,0,91.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-1_highway_x2.mdl" "StevenTechno's Buildings 2.0" "Highway X2" 2 "NULL" "-144,0,91.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-2_highway_x8.mdl" "StevenTechno's Buildings 2.0" "Highway X8" 1 "NULL" "0,0,91.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-2_highway_x8.mdl" "StevenTechno's Buildings 2.0" "Highway X8" 2 "NULL" "-576,0,91.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-3_highway_x32.mdl" "StevenTechno's Buildings 2.0" "Highway X32" 1 "NULL" "0,0,91.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-3_highway_x32.mdl" "StevenTechno's Buildings 2.0" "Highway X32" 2 "NULL" "-2304,0,91.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-4_highway_x64.mdl" "StevenTechno's Buildings 2.0" "Highway X64" 1 "NULL" "0,0,91.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-4_highway_x64.mdl" "StevenTechno's Buildings 2.0" "Highway X64" 2 "NULL" "-4608,0,91.03125" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-5_highway_turn_a.mdl" "StevenTechno's Buildings 2.0" "Highway Turn A" 1 "NULL" "0,-82,90.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-5_highway_turn_a.mdl" "StevenTechno's Buildings 2.0" "Highway Turn A" 2 "NULL" "-628,546,90.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-6_highway_turn_b.mdl" "StevenTechno's Buildings 2.0" "Highway Turn B" 1 "NULL" "0,0,91.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_bridge/6-6_highway_turn_b.mdl" "StevenTechno's Buildings 2.0" "Highway Turn B" 2 "NULL" "-2860,2860,91.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_turns/6-0_highway_turn_a.mdl" "StevenTechno's Buildings 2.0" "Highway Turn A" 1 "NULL" "0,-82,314.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_turns/6-0_highway_turn_a.mdl" "StevenTechno's Buildings 2.0" "Highway Turn A" 2 "NULL" "-628,546,314.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_turns/6-1_highway_turn_b.mdl" "StevenTechno's Buildings 2.0" "Highway Turn B" 1 "NULL" "0,0,315.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/highway_turns/6-1_highway_turn_b.mdl" "StevenTechno's Buildings 2.0" "Highway Turn B" 2 "NULL" "-2860,2860,315.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-0_single_lane_x1.mdl" "StevenTechno's Buildings 2.0" "Single Lane X1" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-0_single_lane_x1.mdl" "StevenTechno's Buildings 2.0" "Single Lane X1" 2 "NULL" "-72,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-1_single_lane_x2.mdl" "StevenTechno's Buildings 2.0" "Single Lane X2" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-1_single_lane_x2.mdl" "StevenTechno's Buildings 2.0" "Single Lane X2" 2 "NULL" "-144,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-2_single_lane_x4.mdl" "StevenTechno's Buildings 2.0" "Single Lane X4" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-2_single_lane_x4.mdl" "StevenTechno's Buildings 2.0" "Single Lane X4" 2 "NULL" "-288,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-3_single_lane_x8.mdl" "StevenTechno's Buildings 2.0" "Single Lane X8" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-3_single_lane_x8.mdl" "StevenTechno's Buildings 2.0" "Single Lane X8" 2 "NULL" "-576,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-4_single_lane_x16.mdl" "StevenTechno's Buildings 2.0" "Single Lane X16" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-4_single_lane_x16.mdl" "StevenTechno's Buildings 2.0" "Single Lane X16" 2 "NULL" "-1152,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-5_single_lane_x32.mdl" "StevenTechno's Buildings 2.0" "Single Lane X32" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-5_single_lane_x32.mdl" "StevenTechno's Buildings 2.0" "Single Lane X32" 2 "NULL" "-2304,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-6_single_lane_x64.mdl" "StevenTechno's Buildings 2.0" "Single Lane X64" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-6_single_lane_x64.mdl" "StevenTechno's Buildings 2.0" "Single Lane X64" 2 "NULL" "-4608,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-7_single_lane_x128_phys.mdl" "StevenTechno's Buildings 2.0" "Single Lane X128 Phys" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_lane/0-7_single_lane_x128_phys.mdl" "StevenTechno's Buildings 2.0" "Single Lane X128 Phys" 2 "NULL" "-9216,0,3.03125" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-0_intersect_single_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane A" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-0_intersect_single_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane A" 2 "NULL" "-432, 432, 3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-0_intersect_single_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane A" 3 "NULL" "-864, 0, 3.03125" "0, 180,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-0_intersect_single_lane_a.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane A" 4 "NULL" "-432,-432, 3.03125" "0, -90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-1_intersect_single_lane_b.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane B" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-1_intersect_single_lane_b.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane B" 2 "NULL" "-436, 432, 3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-1_intersect_single_lane_b.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane B" 3 "NULL" "-436,-432, 3.03125" "0, -90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-2_intersect_single_lane_c.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane C" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-2_intersect_single_lane_c.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane C" 2 "NULL" "-436, 432, 3.03125" "0, 90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-3_intersect_single_lane_d.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane D" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-3_intersect_single_lane_d.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane D" 2 "NULL" "-436,-432, 3.03125" "0, -90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-4_intersect_single_lane_e.mdl" "StevenTechno's Buildings 2.0" "Intersect Single Lane E" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-5_turn_single_lane_a.mdl" "StevenTechno's Buildings 2.0" "Turn Single Lane A" 1 "NULL" " 0, -4,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-5_turn_single_lane_a.mdl" "StevenTechno's Buildings 2.0" "Turn Single Lane A" 2 "NULL" "-428,424,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-6_turn_single_lane_b.mdl" "StevenTechno's Buildings 2.0" "Turn Single Lane B" 1 "NULL" "0,0,3.03125" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/roads_pack/single_turns/3-6_turn_single_lane_b.mdl" "StevenTechno's Buildings 2.0" "Turn Single Lane B" 2 "NULL" "-1508,1508,3.03125" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/jump/jumphigh.mdl" "Trackmania United Props" "Jumphigh" 1 "NULL" "-242.82343,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/jump/jumplow.mdl" "Trackmania United Props" "Jumplow" 1 "NULL" "-242.82343,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/checkpoint.mdl" "Trackmania United Props" "Checkpoint" 1 "NULL" " 480,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/checkpoint.mdl" "Trackmania United Props" "Checkpoint" 2 "NULL" "-480,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/checkpointground.mdl" "Trackmania United Props" "Checkpointground" 1 "NULL" "-180,0,0" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/endingpoint.mdl" "Trackmania United Props" "Endingpoint" 1 "NULL" "255,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/endingpoint.mdl" "Trackmania United Props" "Endingpoint" 2 "NULL" "-255,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/loopleft.mdl" "Trackmania United Props" "Loopleft" 1 "NULL" "31.69263,15,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/loopleft.mdl" "Trackmania United Props" "Loopleft" 2 "NULL" "31.69263,-1905,2574.34" "0,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/loopright.mdl" "Trackmania United Props" "Loopright" 1 "NULL" "28.85986,-15,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/loopright.mdl" "Trackmania United Props" "Loopright" 2 "NULL" "28.85986,1905,2574.34" "0,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/misc/startingpoint.mdl" "Trackmania United Props" "Startingpoint" 1 "NULL" "-477.88706,0.09363,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/dipmiddle.mdl" "Trackmania United Props" "Dipmiddle" 1 "NULL" " 477.1748,0,65.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/dipmiddle.mdl" "Trackmania United Props" "Dipmiddle" 2 "NULL" "-482.8252,0,65.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/obstaclenomiddle.mdl" "Trackmania United Props" "Obstaclenomiddle" 1 "NULL" " 477.1748,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/obstaclenomiddle.mdl" "Trackmania United Props" "Obstaclenomiddle" 2 "NULL" "-482.8252,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/obstaclex.mdl" "Trackmania United Props" "Obstaclex" 1 "NULL" " 477.1748,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/obstaclex.mdl" "Trackmania United Props" "Obstaclex" 2 "NULL" "-482.8252,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/pillardouble.mdl" "Trackmania United Props" "Pillardouble" 1 "NULL" " 477.1748,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/pillardouble.mdl" "Trackmania United Props" "Pillardouble" 2 "NULL" "-482.8252,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/pillarmiddle.mdl" "Trackmania United Props" "Pillarmiddle" 1 "NULL" " 477.1748,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/pillarmiddle.mdl" "Trackmania United Props" "Pillarmiddle" 2 "NULL" "-482.8252,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/pillartriple.mdl" "Trackmania United Props" "Pillartriple" 1 "NULL" " 477.1748,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/obstacle/pillartriple.mdl" "Trackmania United Props" "Pillartriple" 2 "NULL" "-482.8252,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/straight/boost.mdl" "Trackmania United Props" "Boost" 1 "NULL" " 478.86475,0,5.65527" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/straight/boost.mdl" "Trackmania United Props" "Boost" 2 "NULL" "-481.13525,0,5.65527" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/straight/straightstart.mdl" "Trackmania United Props" "Straightstart" 1 "NULL" "-122.82617,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/straight/straightx1.mdl" "Trackmania United Props" "Straightx1" 1 "NULL" " 480,0,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/straight/straightx1.mdl" "Trackmania United Props" "Straightx1" 2 "NULL" "-480,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/straight/trackstart.mdl" "Trackmania United Props" "Trackstart" 1 "NULL" "-9.6377,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/90big.mdl" "Trackmania United Props" "90big" 1 "NULL" "-2378.70115,-984.12146,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/90big.mdl" "Trackmania United Props" "90big" 2 "NULL" "981.29665,2375.87769,5.65723" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/90med.mdl" "Trackmania United Props" "90med" 1 "NULL" "700.11916,1697.05518,5.65723" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/90med.mdl" "Trackmania United Props" "90med" 2 "NULL" "-1699.87913,-702.94385,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/90small.mdl" "Trackmania United Props" "90small" 1 "NULL" "418.94192,1018.23267,5.65723" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/90small.mdl" "Trackmania United Props" "90small" 2 "NULL" "-1021.05686,-421.76636,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/l.mdl" "Trackmania United Props" "L" 1 "NULL" "-391.19399,-91.63025,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/l.mdl" "Trackmania United Props" "L" 2 "NULL" "88.80608,388.36523,5.65723" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/sbigleft.mdl" "Trackmania United Props" "Sbigleft" 1 "NULL" "1983.89588,1142.77014,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/sbigleft.mdl" "Trackmania United Props" "Sbigleft" 2 "NULL" "-1856.09961,-777.21912,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/sbigright.mdl" "Trackmania United Props" "Sbigright" 1 "NULL" " 1983.89088,-1142.76953,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/sbigright.mdl" "Trackmania United Props" "Sbigright" 2 "NULL" "-1856.09950,777.21912,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/smedleft.mdl" "Trackmania United Props" "Smedleft" 1 "NULL" " 1351.56785,517.28467,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/smedleft.mdl" "Trackmania United Props" "Smedleft" 2 "NULL" "-1528.42796,-442.71533,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/smedright.mdl" "Trackmania United Props" "Smedright" 1 "NULL" "1430.14109,-565.99805,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/smedright.mdl" "Trackmania United Props" "Smedright" 2 "NULL" "-1449.85471,394.00171,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/ssmallleft.mdl" "Trackmania United Props" "Ssmallleft" 1 "NULL" "958.12136,480.43057,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/ssmallleft.mdl" "Trackmania United Props" "Ssmallleft" 2 "NULL" "-961.83547,-479.56793,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/ssmallright.mdl" "Trackmania United Props" "Ssmallright" 1 "NULL" "958.12327,-530.2124,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/ssmallright.mdl" "Trackmania United Props" "Ssmallright" 2 "NULL" "-961.83323,429.78589,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/t.mdl" "Trackmania United Props" "T" 1 "NULL" "13.46277,465.00085,5.65723" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/t.mdl" "Trackmania United Props" "T" 2 "NULL" "-465.00076,-14.71875,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/t.mdl" "Trackmania United Props" "T" 3 "NULL" "492.17401,-14.99945,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/x.mdl" "Trackmania United Props" "X" 1 "NULL" "477.174,0.00024,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/x.mdl" "Trackmania United Props" "X" 2 "NULL" "-2.69753,-479.99927,5.65723" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/x.mdl" "Trackmania United Props" "X" 3 "NULL" "-482.82501,0,5.65723" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/x.mdl" "Trackmania United Props" "X" 4 "NULL" "-2.82444,479.99878,5.65723" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/yin.mdl" "Trackmania United Props" "Yin" 1 "NULL" "-31.29919,0,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/yin.mdl" "Trackmania United Props" "Yin" 2 "NULL" "1888.66163,-960,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/yin.mdl" "Trackmania United Props" "Yin" 3 "NULL" "1888.66163,960,5.65723" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/yout.mdl" "Trackmania United Props" "Yout" 1 "NULL" "-27.11389,0,5.65723" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/yout.mdl" "Trackmania United Props" "Yout" 2 "NULL" "1412.886,-1440,5.65723" "0,-90,0" "NULL" +TRACKASSEMBLY_PIECES "models/nokillnando/trackmania/ground/turns/yout.mdl" "Trackmania United Props" "Yout" 3 "NULL" "1412.886,1440,5.65723" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/support/support_a.mdl" "Transrapid" "Support A" 1 "NULL" "0,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_1024.mdl" "Transrapid" "Straight 1024" 1 "NULL" " 512,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_1024.mdl" "Transrapid" "Straight 1024" 2 "NULL" "-512,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_1024_support.mdl" "Transrapid" "Straight 1024 Support" 1 "NULL" " 512,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_1024_support.mdl" "Transrapid" "Straight 1024 Support" 2 "NULL" "-512,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_128.mdl" "Transrapid" "Straight 128" 1 "NULL" " 64,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_128.mdl" "Transrapid" "Straight 128" 2 "NULL" "-64,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_2048.mdl" "Transrapid" "Straight 2048" 1 "NULL" " 1024,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_2048.mdl" "Transrapid" "Straight 2048" 2 "NULL" "-1024,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_2048_support.mdl" "Transrapid" "Straight 2048 Support" 1 "NULL" " 1024,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_2048_support.mdl" "Transrapid" "Straight 2048 Support" 2 "NULL" "-1024,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_256.mdl" "Transrapid" "Straight 256" 1 "NULL" " 128,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_256.mdl" "Transrapid" "Straight 256" 2 "NULL" "-128,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_4096.mdl" "Transrapid" "Straight 4096" 1 "NULL" " 2048,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_4096.mdl" "Transrapid" "Straight 4096" 2 "NULL" "-2048,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_4096_support.mdl" "Transrapid" "Straight 4096 Support" 1 "NULL" " 2048,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_4096_support.mdl" "Transrapid" "Straight 4096 Support" 2 "NULL" "-2048,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_512.mdl" "Transrapid" "Straight 512" 1 "NULL" " 256,0,3.984" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/ron/maglev/track/straight/straight_512.mdl" "Transrapid" "Straight 512" 2 "NULL" "-256,0,3.984" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/funnel.mdl" "XQM Ball Rails" "Funnel" 1 "NULL" "2.206, 0.003, 4.282" "90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/loop_left.mdl" "XQM Ball Rails" "Loop Left" 1 "NULL" "13.7315, 41.726, -0.968" "0,22.5,-2.2585" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/loop_left.mdl" "XQM Ball Rails" "Loop Left" 2 "NULL" "-13.7315, -41.726, -0.968" "0,-157.5,-2.2585" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/loop_right.mdl" "XQM Ball Rails" "Loop Right" 1 "NULL" "13.864, -41.787, -0.953" "0,-22.5,2.433" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/loop_right.mdl" "XQM Ball Rails" "Loop Right" 2 "NULL" "-13.562, 41.789, -0.952" "0,157.5,2.433" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_15.mdl" "XQM Ball Rails" "Slope Down 15" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_15.mdl" "XQM Ball Rails" "Slope Down 15" 2 "NULL" "-20.245, -0.018, -4.13" "15,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_30.mdl" "XQM Ball Rails" "Slope Down 30" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_30.mdl" "XQM Ball Rails" "Slope Down 30" 2 "NULL" "-32.078, 0.022, -9.114" "30,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_45.mdl" "XQM Ball Rails" "Slope Down 45" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_45.mdl" "XQM Ball Rails" "Slope Down 45" 2 "NULL" "-42.144, -0.011, -16.998" "45,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_90.mdl" "XQM Ball Rails" "Slope Down 90" 1 "NULL" "38, 0.019, 30.42" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_down_90.mdl" "XQM Ball Rails" "Slope Down 90" 2 "NULL" "-30.418, -0.009, -37.98" "90,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_15.mdl" "XQM Ball Rails" "Slope Up 15" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_15.mdl" "XQM Ball Rails" "Slope Up 15" 2 "NULL" "-15.521, 0.014, -1.009" "-15,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_30.mdl" "XQM Ball Rails" "Slope Up 30" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_30.mdl" "XQM Ball Rails" "Slope Up 30" 2 "NULL" "-22.871, -0.019, 2.152" "-30,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_45.mdl" "XQM Ball Rails" "Slope Up 45" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_45.mdl" "XQM Ball Rails" "Slope Up 45" 2 "NULL" "-29.149, 0.006, 7.109" "-45,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_90.mdl" "XQM Ball Rails" "Slope Up 90" 1 "NULL" "6.004, 0.005, 15.322" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/slope_up_90.mdl" "XQM Ball Rails" "Slope Up 90" 2 "NULL" "-44.066, -0.011, 65.001" "-90,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_1.mdl" "XQM Ball Rails" "Straight 1" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_1.mdl" "XQM Ball Rails" "Straight 1" 2 "NULL" "-6, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_16.mdl" "XQM Ball Rails" "Straight 16" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_16.mdl" "XQM Ball Rails" "Straight 16" 2 "NULL" "-186, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_2.mdl" "XQM Ball Rails" "Straight 2" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_2.mdl" "XQM Ball Rails" "Straight 2" 2 "NULL" "-18, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_4.mdl" "XQM Ball Rails" "Straight 4" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_4.mdl" "XQM Ball Rails" "Straight 4" 2 "NULL" "-42, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_8.mdl" "XQM Ball Rails" "Straight 8" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/straight_8.mdl" "XQM Ball Rails" "Straight 8" 2 "NULL" "-90, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_1.mdl" "XQM Ball Rails" "Tunnel 1" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_1.mdl" "XQM Ball Rails" "Tunnel 1" 2 "NULL" "-6, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_16.mdl" "XQM Ball Rails" "Tunnel 16" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_16.mdl" "XQM Ball Rails" "Tunnel 16" 2 "NULL" "-186, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_2.mdl" "XQM Ball Rails" "Tunnel 2" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_2.mdl" "XQM Ball Rails" "Tunnel 2" 2 "NULL" "-18, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_4.mdl" "XQM Ball Rails" "Tunnel 4" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_4.mdl" "XQM Ball Rails" "Tunnel 4" 2 "NULL" "-42, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_8.mdl" "XQM Ball Rails" "Tunnel 8" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/tunnel_8.mdl" "XQM Ball Rails" "Tunnel 8" 2 "NULL" "-90, 0, -2.25" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_15.mdl" "XQM Ball Rails" "Turn 15" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_15.mdl" "XQM Ball Rails" "Turn 15" 2 "NULL" "-17.591, 3.105, -2.25, -1.009" "0,165,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_180.mdl" "XQM Ball Rails" "Turn 180" 1 "NULL" "52.789, 44.753, -2.273" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_180.mdl" "XQM Ball Rails" "Turn 180" 2 "NULL" "-52.808, 44.743, -2.238" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_30.mdl" "XQM Ball Rails" "Turn 30" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_30.mdl" "XQM Ball Rails" "Turn 30" 2 "NULL" "-28.676, 7.705, -2.252" "0,150,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_45.mdl" "XQM Ball Rails" "Turn 45" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_45.mdl" "XQM Ball Rails" "Turn 45" 2 "NULL" "-38.2, 15.001, -2.261" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_90.mdl" "XQM Ball Rails" "Turn 90" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/turn_90.mdl" "XQM Ball Rails" "Turn 90" 2 "NULL" "-58.848, 56.855, -2.255" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_45_left.mdl" "XQM Ball Rails" "Twist 45 Left" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_45_left.mdl" "XQM Ball Rails" "Twist 45 Left" 2 "NULL" "-90, 0, -2.25" "0,180,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_45_right.mdl" "XQM Ball Rails" "Twist 45 Right" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_45_right.mdl" "XQM Ball Rails" "Twist 45 Right" 2 "NULL" "-90, 0, -2.25" "0,180,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_90_left.mdl" "XQM Ball Rails" "Twist 90 Left" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_90_left.mdl" "XQM Ball Rails" "Twist 90 Left" 2 "NULL" "-186, 0, -2.25" "0,180,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_90_right.mdl" "XQM Ball Rails" "Twist 90 Right" 1 "NULL" "6, 0, -2.25" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/rails/twist_90_right.mdl" "XQM Ball Rails" "Twist 90 Right" 2 "NULL" "-186, 0, -2.25" "0,180,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_1.mdl" "XQM Coaster" "Bank Start Left 1" 1 "NULL" "150.199, 0.032, 4.885" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_1.mdl" "XQM Coaster" "Bank Start Left 1" 2 "NULL" "-150.168, -0.014, 4.881" "0,180,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_2.mdl" "XQM Coaster" "Bank Start Left 2" 1 "NULL" "300.199, -0.011, 4.895" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_2.mdl" "XQM Coaster" "Bank Start Left 2" 2 "NULL" "-300.198, 0.032, 4.914" "0,180,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_3.mdl" "XQM Coaster" "Bank Start Left 3" 1 "NULL" "449.378, -0.025, 4.893" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_3.mdl" "XQM Coaster" "Bank Start Left 3" 2 "NULL" "-449.801, 0.018, 4.896" "0,180,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_4.mdl" "XQM Coaster" "Bank Start Left 4" 1 "NULL" "599.802, -0.013, 4.883" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_left_4.mdl" "XQM Coaster" "Bank Start Left 4" 2 "NULL" "-600.198, -0.015, 4.902" "0,-180,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_1.mdl" "XQM Coaster" "Bank Start Right 1" 1 "NULL" "149.7, -0.005, 4.88" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_1.mdl" "XQM Coaster" "Bank Start Right 1" 2 "NULL" "-149.7, 0.024, 4.865" "0,180,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_2.mdl" "XQM Coaster" "Bank Start Right 2" 1 "NULL" "299.790,-0.021,4.885" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_2.mdl" "XQM Coaster" "Bank Start Right 2" 2 "NULL" "-299.790,0.007,4.862" "0,180,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_3.mdl" "XQM Coaster" "Bank Start Right 3" 1 "NULL" "449.8, -0.018, 4.896" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_3.mdl" "XQM Coaster" "Bank Start Right 3" 2 "NULL" "-449.802, -0.003, 4.853" "0,-180,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_4.mdl" "XQM Coaster" "Bank Start Right 4" 1 "NULL" "600.194, -0.017, 4.888" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_start_right_4.mdl" "XQM Coaster" "Bank Start Right 4" 2 "NULL" "-600.199, 0.025, 4.872" "0,180,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_1.mdl" "XQM Coaster" "Bank Turn 180 1" 1 "NULL" "73.8, 14.45, 4.887" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_1.mdl" "XQM Coaster" "Bank Turn 180 1" 2 "NULL" "73.46, -372.816, 4.902" "0,0,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_2.mdl" "XQM Coaster" "Bank Turn 180 2" 1 "NULL" "146.8, 28.715, 4.888" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_2.mdl" "XQM Coaster" "Bank Turn 180 2" 2 "NULL" "147.376, -737.938, 4.911" "0,0,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_3.mdl" "XQM Coaster" "Bank Turn 180 3" 1 "NULL" "220.191, 43.001, 4.907" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_3.mdl" "XQM Coaster" "Bank Turn 180 3" 2 "NULL" "220.813, -1105.46, 4.883" "0,0,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_4.mdl" "XQM Coaster" "Bank Turn 180 4" 1 "NULL" "293.308, -1472.996, 4.916" "0,0,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_180_4.mdl" "XQM Coaster" "Bank Turn 180 4" 2 "NULL" "292.8, 57.26, 4.89" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_1.mdl" "XQM Coaster" "Bank Turn 45 1" 1 "NULL" "74.199, 14.457, 4.888" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_1.mdl" "XQM Coaster" "Bank Turn 45 1" 2 "NULL" "-63.081, -42.297, 4.912" "0,-135,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_2.mdl" "XQM Coaster" "Bank Turn 45 2" 1 "NULL" "147.199, 28.717, 4.886" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_2.mdl" "XQM Coaster" "Bank Turn 45 2" 2 "NULL" "-124.087, -83.935, 4.901" "0,-135,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_3.mdl" "XQM Coaster" "Bank Turn 45 3" 1 "NULL" "219.8, 42.98, 4.887" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_3.mdl" "XQM Coaster" "Bank Turn 45 3" 2 "NULL" "-185.808, -125.258, 4.908" "0,-135,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_4.mdl" "XQM Coaster" "Bank Turn 45 4" 1 "NULL" "292.799, 57.249, 4.89" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_45_4.mdl" "XQM Coaster" "Bank Turn 45 4" 2 "NULL" "-247.727, -166.794, 4.908" "0,-135,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_1.mdl" "XQM Coaster" "Bank Turn 90 1" 1 "NULL" "73.8, 14.448, 4.895" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_1.mdl" "XQM Coaster" "Bank Turn 90 1" 2 "NULL" "-119.757, -178.862, 4.909" "0,-90,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_2.mdl" "XQM Coaster" "Bank Turn 90 2" 1 "NULL" "147.2, 28.719, 4.887" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_2.mdl" "XQM Coaster" "Bank Turn 90 2" 2 "NULL" "-235.985, -355.128, 4.904" "0,-90,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_3.mdl" "XQM Coaster" "Bank Turn 90 3" 1 "NULL" "220.199, 42.985, 4.89" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_3.mdl" "XQM Coaster" "Bank Turn 90 3" 2 "NULL" "-353.929, -531.719, 4.91" "0,-90,-45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_4.mdl" "XQM Coaster" "Bank Turn 90 4" 1 "NULL" "292.790,57.259,4.881" "0,0,45" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/bank_turn_90_4.mdl" "XQM Coaster" "Bank Turn 90 4" 2 "NULL" "-471.864,-707.923,4.910" "0,-90.00,-45.00" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_1.mdl" "XQM Coaster" "Slope 225 1" 1 "NULL" "75.790,-0.013,-2.414" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_1.mdl" "XQM Coaster" "Slope 225 1" 2 "NULL" "-70.806,-0.003,26.580" "-22.5,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_2.mdl" "XQM Coaster" "Slope 225 2" 1 "NULL" "149.8, -0.013, -9.62" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_2.mdl" "XQM Coaster" "Slope 225 2" 2 "NULL" "-141.814, 0.004, 48.442" "-22.5,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_3.mdl" "XQM Coaster" "Slope 225 3" 1 "NULL" "225.199, -0.016, -16.814" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_3.mdl" "XQM Coaster" "Slope 225 3" 2 "NULL" "-214.187, 0.006, 70.463" "-22.5,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_4.mdl" "XQM Coaster" "Slope 225 4" 1 "NULL" "298.8, -0.013, -24.02" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_4.mdl" "XQM Coaster" "Slope 225 4" 2 "NULL" "-285.799, 0.019, 92.158" "-22.5,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_1.mdl" "XQM Coaster" "Slope 225 Down 1" 1 "NULL" " -73.800, -0.013, 11.999" " 0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_1.mdl" "XQM Coaster" "Slope 225 Down 1" 2 "NULL" " 72.814, -0.013, -16.992" "22.5,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_2.mdl" "XQM Coaster" "Slope 225 Down 2" 1 "NULL" "-148.626, -0.013, 19.510" " 0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_2.mdl" "XQM Coaster" "Slope 225 Down 2" 2 "NULL" " 134.806, -0.011, -36.762" "22.5,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_3.mdl" "XQM Coaster" "Slope 225 Down 3" 1 "NULL" "-224.899, 0.010, 25.763" " 0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_3.mdl" "XQM Coaster" "Slope 225 Down 3" 2 "NULL" " 202.547, -0.014, -57.473" "22.5,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_4.mdl" "XQM Coaster" "Slope 225 Down 4" 1 "NULL" "-300.319, 0.017, 32.110" " 0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_225_down_4.mdl" "XQM Coaster" "Slope 225 Down 4" 2 "NULL" " 268.600, 0.052, -77.783" "22.5,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_1.mdl" "XQM Coaster" "Slope 45 1" 1 "NULL" "74.8, -0.013, -9.758" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_1.mdl" "XQM Coaster" "Slope 45 1" 2 "NULL" "-59.846, 0.021, 45.855" "-45,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_2.mdl" "XQM Coaster" "Slope 45 2" 1 "NULL" "-148.199, 0.021, -24.085" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_2.mdl" "XQM Coaster" "Slope 45 2" 2 "NULL" "121.828, -0.004, 88.131" "-45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_3.mdl" "XQM Coaster" "Slope 45 3" 1 "NULL" "-221.204, 0.005, -38.364" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_3.mdl" "XQM Coaster" "Slope 45 3" 2 "NULL" "183.612, -0.018, 129.084" "-45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_4.mdl" "XQM Coaster" "Slope 45 4" 1 "NULL" "-293.8, -0.013, -52.661" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_4.mdl" "XQM Coaster" "Slope 45 4" 2 "NULL" "245.168, -0.007, 170.857" "-45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_1.mdl" "XQM Coaster" "Slope 45 Down 1" 1 "NULL" "-71.199, -0.013, 18.809" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_1.mdl" "XQM Coaster" "Slope 45 Down 1" 2 "NULL" " 63.815, -0.021, -37.126" "45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_2.mdl" "XQM Coaster" "Slope 45 Down 2" 1 "NULL" "-144.8, -0.013, 33.103" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_2.mdl" "XQM Coaster" "Slope 45 Down 2" 2 "NULL" "125.217, -0.014, -78.778" "45,0,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_3.mdl" "XQM Coaster" "Slope 45 Down 3" 1 "NULL" "217.199, -0.013, 47.332" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_3.mdl" "XQM Coaster" "Slope 45 Down 3" 2 "NULL" "-187.587, 0.003, -120.127" "45,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_4.mdl" "XQM Coaster" "Slope 45 Down 4" 1 "NULL" "290.79, -0.013, 61.604" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_45_down_4.mdl" "XQM Coaster" "Slope 45 Down 4" 2 "NULL" "-249.142, 0.017, -161.855" "45, 180, 0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_1.mdl" "XQM Coaster" "Slope 90 1" 1 "NULL" "75, -0.016, -9.757" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_1.mdl" "XQM Coaster" "Slope 90 1" 2 "NULL" "-115.988, 0.017, 181.075" "-90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_2.mdl" "XQM Coaster" "Slope 90 2" 1 "NULL" "-148.198, -0.013, -24.085" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_2.mdl" "XQM Coaster" "Slope 90 2" 2 "NULL" " 233.158, 0.013, 358.192" "-90, 180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_3.mdl" "XQM Coaster" "Slope 90 3" 1 "NULL" "-221.1, -0.013, -38.366" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_3.mdl" "XQM Coaster" "Slope 90 3" 2 "NULL" "351.2, -0.013, 533.582" "-90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_4.mdl" "XQM Coaster" "Slope 90 4" 1 "NULL" "-293.701, -0.013, -52.661" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_4.mdl" "XQM Coaster" "Slope 90 4" 2 "NULL" "468.482, -0.013, 710.225" "-90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_1.mdl" "XQM Coaster" "Slope 90 Down 1" 1 "NULL" "-70.793, -0.038, 18.807" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_1.mdl" "XQM Coaster" "Slope 90 Down 1" 2 "NULL" "119.415, -0.013, -171.482" "90,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_2.mdl" "XQM Coaster" "Slope 90 Down 2" 1 "NULL" "-144.804, -0.013, 33.103" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_2.mdl" "XQM Coaster" "Slope 90 Down 2" 2 "NULL" "237.418, -0.013, -349.306" "90,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_3.mdl" "XQM Coaster" "Slope 90 Down 3" 1 "NULL" "217.199, -0.013, 47.332" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_3.mdl" "XQM Coaster" "Slope 90 Down 3" 2 "NULL" "-355.101, 0.01, -524.496" "90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_4.mdl" "XQM Coaster" "Slope 90 Down 4" 1 "NULL" "290.8, -0.013, 61.604" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/slope_90_down_4.mdl" "XQM Coaster" "Slope 90 Down 4" 2 "NULL" "-473.228, -0.013, -701.956" "90,0,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_1.mdl" "XQM Coaster" "Special Full Corkscrew Left 1" 1 "NULL" "149.695, -0.02, 4.886" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_1.mdl" "XQM Coaster" "Special Full Corkscrew Left 1" 2 "NULL" "-2249.721, 0.014, 4.888" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_2.mdl" "XQM Coaster" "Special Full Corkscrew Left 2" 1 "NULL" "1350.218, 0.029, 4.883" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_2.mdl" "XQM Coaster" "Special Full Corkscrew Left 2" 2 "NULL" "-3450.199, -0.009, 4.887" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_3.mdl" "XQM Coaster" "Special Full Corkscrew Left 3" 1 "NULL" "2550, -0.013, 4.886" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_3.mdl" "XQM Coaster" "Special Full Corkscrew Left 3" 2 "NULL" "-4650.203, 0.023, 4.886" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_4.mdl" "XQM Coaster" "Special Full Corkscrew Left 4" 1 "NULL" "3749.804, -0.001, 4.888" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_left_4.mdl" "XQM Coaster" "Special Full Corkscrew Left 4" 2 "NULL" "-5849.8, 0.036, 4.888" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_right_1.mdl" "XQM Coaster" "Special Full Corkscrew Right 1" 1 "NULL" "150, -0.013, 4.886" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_right_1.mdl" "XQM Coaster" "Special Full Corkscrew Right 1" 2 "NULL" "-2250, -0.013, 4.886" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_right_3.mdl" "XQM Coaster" "Special Full Corkscrew Right 3" 1 "NULL" "2550.2, -0.012, 4.886" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_right_3.mdl" "XQM Coaster" "Special Full Corkscrew Right 3" 2 "NULL" "-4650.14, -0.013, 4.886" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_right_4.mdl" "XQM Coaster" "Special Full Corkscrew Right 4" 1 "NULL" "3749.790,-0.019,4.879" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_corkscrew_right_4.mdl" "XQM Coaster" "Special Full Corkscrew Right 4" 2 "NULL" "-5849.795, 0.008, 4.884" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_loop_3.mdl" "XQM Coaster" "Special Full Loop 3" 1 "NULL" "14.2, 67.584, -279.931" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_loop_3.mdl" "XQM Coaster" "Special Full Loop 3" 2 "NULL" "-0.172, -67.619, -279.937" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_loop_4.mdl" "XQM Coaster" "Special Full Loop 4" 1 "NULL" "2.16, 89.53, -307.495" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_full_loop_4.mdl" "XQM Coaster" "Special Full Loop 4" 2 "NULL" "-18.191, -72.398, -307.642" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_1.mdl" "XQM Coaster" "Special Half Corkscrew Left 1" 1 "NULL" "150.079, -0.009, 4.878" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_1.mdl" "XQM Coaster" "Special Half Corkscrew Left 1" 2 "NULL" "-1050.198, -0.036, 4.877" "0,180,-180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_2.mdl" "XQM Coaster" "Special Half Corkscrew Left 2" 1 "NULL" "299.8, -0.013, 4.884" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_2.mdl" "XQM Coaster" "Special Half Corkscrew Left 2" 2 "NULL" "-2099.8, -0.013, 4.883" "0,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_3.mdl" "XQM Coaster" "Special Half Corkscrew Left 3" 1 "NULL" "449.801, -0.014, 4.882" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_3.mdl" "XQM Coaster" "Special Half Corkscrew Left 3" 2 "NULL" "-3149.802, -0.028, 4.871" "0,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_4.mdl" "XQM Coaster" "Special Half Corkscrew Left 4" 1 "NULL" "599.801, -0.014, 4.888" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_left_4.mdl" "XQM Coaster" "Special Half Corkscrew Left 4" 2 "NULL" "-4199.8, -0.013, 4.881" "0,-180,-180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_1.mdl" "XQM Coaster" "Special Half Corkscrew Right 1" 1 "NULL" "150.199, 0.013, 4.886" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_1.mdl" "XQM Coaster" "Special Half Corkscrew Right 1" 2 "NULL" "-1050.199, -0.01, 4.886" "0,180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_2.mdl" "XQM Coaster" "Special Half Corkscrew Right 2" 1 "NULL" "1126.907, -0.013, 4.883, 4.9" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_2.mdl" "XQM Coaster" "Special Half Corkscrew Right 2" 2 "NULL" "-1272.492, -0.164, 4.883" "0,-180,-180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_3.mdl" "XQM Coaster" "Special Half Corkscrew Right 3" 1 "NULL" "1349.823, -0.012, 4.883" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_3.mdl" "XQM Coaster" "Special Half Corkscrew Right 3" 2 "NULL" "-2249.7, -0.013, 4.884" "0,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_4.mdl" "XQM Coaster" "Special Half Corkscrew Right 4" 1 "NULL" "1950.199, -0.017, 4.889" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_half_corkscrew_right_4.mdl" "XQM Coaster" "Special Half Corkscrew Right 4" 2 "NULL" "-2850.199, -0.047, 4.88" "0,-180,180" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_2.mdl" "XQM Coaster" "Special Helix Middle 2" 1 "NULL" "189.277, 59.435, 41.118" "0,90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_2.mdl" "XQM Coaster" "Special Helix Middle 2" 2 "NULL" "-192.302, 46.789, -17.492" "22.5,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_3.mdl" "XQM Coaster" "Special Helix Middle 3" 1 "NULL" "-285.755, -96.647, 32.538" "0,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_3.mdl" "XQM Coaster" "Special Helix Middle 3" 2 "NULL" "281.393, -79.204, -55.216" "22.5,-90,90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_4.mdl" "XQM Coaster" "Special Helix Middle 4" 1 "NULL" "322.424, -72.015, 15.907" "0,-90,90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_4.mdl" "XQM Coaster" "Special Helix Middle 4" 2 "NULL" "-419.735, -44.894, 132.706" "-22.5,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_full_2.mdl" "XQM Coaster" "Special Helix Middle Full 2" 1 "NULL" "-207.841, 30.414, 100.219" "-22.5,-90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_full_2.mdl" "XQM Coaster" "Special Helix Middle Full 2" 2 "NULL" "-207.993, 7.31, -17.474" "22.5,90,90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_full_3.mdl" "XQM Coaster" "Special Helix Middle Full 3" 1 "NULL" "281.359, -6.612, 120.391" "-22.5,90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_full_3.mdl" "XQM Coaster" "Special Helix Middle Full 3" 2 "NULL" "281.371, 28.004, -55.354" "22.5,-90,90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_full_4.mdl" "XQM Coaster" "Special Helix Middle Full 4" 1 "NULL" "322.609, 52.146, 251.028" "0,90,-90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_helix_middle_full_4.mdl" "XQM Coaster" "Special Helix Middle Full 4" 2 "NULL" "322.431, 5.79, 15.895" "0,-90,90" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_station.mdl" "XQM Coaster" "Special Station" 1 "NULL" "150.194, -0.045, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_station.mdl" "XQM Coaster" "Special Station" 2 "NULL" "-150.184, -0.045, 4.887" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_left_2.mdl" "XQM Coaster" "Special Sturn Left 2" 1 "NULL" "149.8, 36.553, 4.886" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_left_2.mdl" "XQM Coaster" "Special Sturn Left 2" 2 "NULL" "-149.8, -36.54, 4.886" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_left_3.mdl" "XQM Coaster" "Special Sturn Left 3" 1 "NULL" "225.159, 36.552, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_left_3.mdl" "XQM Coaster" "Special Sturn Left 3" 2 "NULL" "-225.2, -36.559, 4.886" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_left_4.mdl" "XQM Coaster" "Special Sturn Left 4" 1 "NULL" "299.8, 36.623, 4.886" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_left_4.mdl" "XQM Coaster" "Special Sturn Left 4" 2 "NULL" "-299.8, -36.6, 4.886" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_right_2.mdl" "XQM Coaster" "Special Sturn Right 2" 1 "NULL" "150.189, -36.538, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_right_2.mdl" "XQM Coaster" "Special Sturn Right 2" 2 "NULL" "-150.199, 36.554, 4.887" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_right_3.mdl" "XQM Coaster" "Special Sturn Right 3" 1 "NULL" "225.199, -36.549, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_right_3.mdl" "XQM Coaster" "Special Sturn Right 3" 2 "NULL" "-225.099, 36.55, 4.887" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_right_4.mdl" "XQM Coaster" "Special Sturn Right 4" 1 "NULL" "300.2, -36.649, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/special_sturn_right_4.mdl" "XQM Coaster" "Special Sturn Right 4" 2 "NULL" "-300.195, 36.561, 4.887" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_1.mdl" "XQM Coaster" "Straight 1" 1 "NULL" "74.802, -0.013, 4.886, 0" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_1.mdl" "XQM Coaster" "Straight 1" 2 "NULL" "-74.803, -0.013, 4.886" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_2.mdl" "XQM Coaster" "Straight 2" 1 "NULL" "149.805, -0.013, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_2.mdl" "XQM Coaster" "Straight 2" 2 "NULL" "-149.805, -0.013, 4.887" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_3.mdl" "XQM Coaster" "Straight 3" 1 "NULL" "225.206, -0.013, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_3.mdl" "XQM Coaster" "Straight 3" 2 "NULL" "-225.196, -0.013, 4.887" "0,-180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_4.mdl" "XQM Coaster" "Straight 4" 1 "NULL" "300.164, -0.013, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/straight_4.mdl" "XQM Coaster" "Straight 4" 2 "NULL" "-300.189, -0.013, 4.887" "0,180,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_1.mdl" "XQM Coaster" "Turn 180 1" 1 "NULL" "72.8, 367.527, 4.894" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_1.mdl" "XQM Coaster" "Turn 180 1" 2 "NULL" "72.8, -14.286, 4.894" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_2.mdl" "XQM Coaster" "Turn 180 2" 1 "NULL" "146.198, -28.561, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_2.mdl" "XQM Coaster" "Turn 180 2" 2 "NULL" "146.041, 735.053, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_3.mdl" "XQM Coaster" "Turn 180 3" 1 "NULL" "218.767, -42.833, 4.888" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_3.mdl" "XQM Coaster" "Turn 180 3" 2 "NULL" "218.767, 1100.169, 4.91" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_4.mdl" "XQM Coaster" "Turn 180 4" 1 "NULL" "292.283, -57.102, 4.896" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_4.mdl" "XQM Coaster" "Turn 180 4" 2 "NULL" "292.283, 1468.9, 4.896" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_tight_2.mdl" "XQM Coaster" "Turn 180 Tight 2" 1 "NULL" "93.769, 96.842, 4.9" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_tight_2.mdl" "XQM Coaster" "Turn 180 Tight 2" 2 "NULL" "-93.912, 96.841, 4.9" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_tight_3.mdl" "XQM Coaster" "Turn 180 Tight 3" 1 "NULL" "138.58, 144.2, 4.906" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_tight_3.mdl" "XQM Coaster" "Turn 180 Tight 3" 2 "NULL" "-142.846, 144.192, 4.888" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_tight_4.mdl" "XQM Coaster" "Turn 180 Tight 4" 1 "NULL" "184.588, 191.8, 4.905" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_180_tight_4.mdl" "XQM Coaster" "Turn 180 Tight 4" 2 "NULL" "-190.323, 191.8, 4.905" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_1.mdl" "XQM Coaster" "Turn 45 1" 1 "NULL" "73.232, -14.287, 4.894" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_1.mdl" "XQM Coaster" "Turn 45 1" 2 "NULL" "-62.119, 41.771, 4.888" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_2.mdl" "XQM Coaster" "Turn 45 2" 1 "NULL" "145.801, -28.557, 4.893" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_2.mdl" "XQM Coaster" "Turn 45 2" 2 "NULL" "-123.848, 83.091, 4.921" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_3.mdl" "XQM Coaster" "Turn 45 3" 1 "NULL" "218.8, -42.829, 4.899" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_3.mdl" "XQM Coaster" "Turn 45 3" 2 "NULL" "-184.844, 124.707, 4.88" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_4.mdl" "XQM Coaster" "Turn 45 4" 1 "NULL" "292.197, -57.102, 4.896" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_45_4.mdl" "XQM Coaster" "Turn 45 4" 2 "NULL" "-246.823, 166.305, 4.888" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_1.mdl" "XQM Coaster" "Turn 90 1" 1 "NULL" "73.199, -14.286, 4.894" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_1.mdl" "XQM Coaster" "Turn 90 1" 2 "NULL" "-117.904, 176.785, 4.888" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_2.mdl" "XQM Coaster" "Turn 90 2" 1 "NULL" "145.748, -28.566, 4.883" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_2.mdl" "XQM Coaster" "Turn 90 2" 2 "NULL" "-235.851, 352.965, 4.883" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_3.mdl" "XQM Coaster" "Turn 90 3" 1 "NULL" "219.199, -42.829, 4.9" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_3.mdl" "XQM Coaster" "Turn 90 3" 2 "NULL" "-352.072, 529.25, 4.888" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_4.mdl" "XQM Coaster" "Turn 90 4" 1 "NULL" "292.695, -57.102, 4.897" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_4.mdl" "XQM Coaster" "Turn 90 4" 2 "NULL" "-470.379, 706.175, 4.887" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_1.mdl" "XQM Coaster" "Turn 90 Tight 1" 1 "NULL" "68.201, -27.47, 4.907" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_1.mdl" "XQM Coaster" "Turn 90 Tight 1" 2 "NULL" "-27.469, 68.408, 4.907" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_2.mdl" "XQM Coaster" "Turn 90 Tight 2" 1 "NULL" "134.784, -54.932, 4.883" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_2.mdl" "XQM Coaster" "Turn 90 Tight 2" 2 "NULL" "-54.9, 134.79, 4.908" "0, 90, 0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_3.mdl" "XQM Coaster" "Turn 90 Tight 3" 1 "NULL" "203.169, -82.386, 4.885" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_3.mdl" "XQM Coaster" "Turn 90 Tight 3" 2 "NULL" "-82.342, 203.198, 4.884" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_4.mdl" "XQM Coaster" "Turn 90 Tight 4" 1 "NULL" "270.8, -109.856, 4.889" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_90_tight_4.mdl" "XQM Coaster" "Turn 90 Tight 4" 2 "NULL" "-109.812, 270.799, 4.89" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_1.mdl" "XQM Coaster" "Turn Slope 180 1" 1 "NULL" "61.949, -171.786, -85.113" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_1.mdl" "XQM Coaster" "Turn Slope 180 1" 2 "NULL" "61.849, 210.026, 94.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_2.mdl" "XQM Coaster" "Turn Slope 180 2" 1 "NULL" "145.79, -377.307, -51.364" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_2.mdl" "XQM Coaster" "Turn Slope 180 2" 2 "NULL" "145.64, 386.277, 128.636" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_3.mdl" "XQM Coaster" "Turn Slope 180 3" 1 "NULL" "219.186, -560.329, -73.863" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_3.mdl" "XQM Coaster" "Turn Slope 180 3" 2 "NULL" "219.938, 582.673, 106.137" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_4.mdl" "XQM Coaster" "Turn Slope 180 4" 1 "NULL" "292.682, -57.062, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_180_4.mdl" "XQM Coaster" "Turn Slope 180 4" 2 "NULL" "292.882, 1468.926, 184.888" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_1.mdl" "XQM Coaster" "Turn Slope 45 1" 1 "NULL" "73.214, -14.287, 4.889" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_1.mdl" "XQM Coaster" "Turn Slope 45 1" 2 "NULL" "-62.103, 41.809, 49.893" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_2.mdl" "XQM Coaster" "Turn Slope 45 2" 1 "NULL" "145.789, -28.557, 4.888" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_2.mdl" "XQM Coaster" "Turn Slope 45 2" 2 "NULL" "-123.816, 83.09, 49.885" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_3.mdl" "XQM Coaster" "Turn Slope 45 3" 1 "NULL" "218.817, -42.829, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_3.mdl" "XQM Coaster" "Turn Slope 45 3" 2 "NULL" "-184.823, 124.712, 49.888" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_4.mdl" "XQM Coaster" "Turn Slope 45 4" 1 "NULL" "292.295, -57.102, 4.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_45_4.mdl" "XQM Coaster" "Turn Slope 45 4" 2 "NULL" "-246.825, 166.303, 49.887" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_1.mdl" "XQM Coaster" "Turn Slope 90 1" 1 "NULL" "151.949, -115.536, -28.863" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_1.mdl" "XQM Coaster" "Turn Slope 90 1" 2 "NULL" "-39.186, 75.539, 61.137" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_2.mdl" "XQM Coaster" "Turn Slope 90 2" 1 "NULL" "247.052, -129.807, -17.611" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_2.mdl" "XQM Coaster" "Turn Slope 90 2" 2 "NULL" "-134.631, 251.731, 72.387" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_3.mdl" "XQM Coaster" "Turn Slope 90 3" 1 "NULL" "342.55, -166.589, -6.356" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_3.mdl" "XQM Coaster" "Turn Slope 90 3" 2 "NULL" "-228.353, 405.104, 83.627" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_4.mdl" "XQM Coaster" "Turn Slope 90 4" 1 "NULL" "461.445, -180.852, -6.363" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_90_4.mdl" "XQM Coaster" "Turn Slope 90 4" 2 "NULL" "-301.622, 582.445, 83.635" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_1.mdl" "XQM Coaster" "Turn Slope Down 180 1" 1 "NULL" "73.2, -149.286, 128.637" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_1.mdl" "XQM Coaster" "Turn Slope Down 180 1" 2 "NULL" "73.099, 232.527, -51.363" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_2.mdl" "XQM Coaster" "Turn Slope Down 180 2" 1 "NULL" "145.8, -287.306, 117.387" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_2.mdl" "XQM Coaster" "Turn Slope Down 180 2" 2 "NULL" "145.6, 476.307, -62.612" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_3.mdl" "XQM Coaster" "Turn Slope Down 180 3" 1 "NULL" "219.196, -391.579, 117.387" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_3.mdl" "XQM Coaster" "Turn Slope Down 180 3" 2 "NULL" "219.948, 751.399, -62.61" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_4.mdl" "XQM Coaster" "Turn Slope Down 180 4" 1 "NULL" "292.681, -630.852, 117.391" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_180_4.mdl" "XQM Coaster" "Turn Slope Down 180 4" 2 "NULL" "292.833, 895.14, -62.613" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_1.mdl" "XQM Coaster" "Turn Slope Down 45 1" 1 "NULL" "73.199, -14.286, 49.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_1.mdl" "XQM Coaster" "Turn Slope Down 45 1" 2 "NULL" "-62.097, 41.783, 4.886" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_2.mdl" "XQM Coaster" "Turn Slope Down 45 2" 1 "NULL" "145.79, -28.558, 49.879" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_2.mdl" "XQM Coaster" "Turn Slope Down 45 2" 2 "NULL" "-123.833, 83.088, 4.892" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_3.mdl" "XQM Coaster" "Turn Slope Down 45 3" 1 "NULL" "219.197, -42.829, 49.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_3.mdl" "XQM Coaster" "Turn Slope Down 45 3" 2 "NULL" "-185.095, 124.99, 4.888" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_4.mdl" "XQM Coaster" "Turn Slope Down 45 4" 1 "NULL" "292.695, -57.102, 49.887" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_45_4.mdl" "XQM Coaster" "Turn Slope Down 45 4" 2 "NULL" "-247.123, 166.602, 4.888" "0,135,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_1.mdl" "XQM Coaster" "Turn Slope Down 90 1" 1 "NULL" "128.858, -14.281, 72.387" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_1.mdl" "XQM Coaster" "Turn Slope Down 90 1" 2 "NULL" "-61.682, 176.749, -17.61" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_2.mdl" "XQM Coaster" "Turn Slope Down 90 2" 1 "NULL" "179.55, -28.557, 61.136" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_2.mdl" "XQM Coaster" "Turn Slope Down 90 2" 2 "NULL" "-202.131, 352.976, -28.864" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_3.mdl" "XQM Coaster" "Turn Slope Down 90 3" 1 "NULL" "241.3, -42.829, 61.136" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_3.mdl" "XQM Coaster" "Turn Slope Down 90 3" 2 "NULL" "-329.578, 528.859, -28.864" "0,90,0" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_4.mdl" "XQM Coaster" "Turn Slope Down 90 4" 1 "NULL" "292.296, -57.102, 94.89" "NULL" "NULL" +TRACKASSEMBLY_PIECES "models/xqm/coastertrack/turn_slope_down_90_4.mdl" "XQM Coaster" "Turn Slope Down 90 4" 2 "NULL" "-470.372, 705.791, 4.886" "0,90,0" "NULL" diff --git a/data/trackassembly/exp/sv_TRACKASSEMBLY_ADDITIONS.txt b/data/trackassembly/exp/sv_TRACKASSEMBLY_ADDITIONS.txt deleted file mode 100644 index d3a9646f..00000000 --- a/data/trackassembly/exp/sv_TRACKASSEMBLY_ADDITIONS.txt +++ /dev/null @@ -1,8 +0,0 @@ -# StoreExternalDatabase( INS ): 01/22/17 17:15:10 [ LUA ] -# Data settings: MODELBASE,MODELADD,ENTCLASS,LINEID,POSOFF,ANGOFF,MOVETYPE,PHYSINIT,DRSHADOW,PHMOTION,PHYSLEEP,SETSOLID - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/sw_lever.mdl","buttonswitch",1,"-100,125,0","NULL",-1,-1,-1,0,-1,-1}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_r_switcher1.mdl","prop_dynamic",2,"NULL","NULL",6,6,-1,-1,1,6}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_r_switcher2.mdl","prop_dynamic",3,"NULL","NULL",6,6,-1,0,-1,0}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/sw_lever.mdl","buttonswitch",1,"-100,-125,0","0,180,0",-1,-1,-1,0,-1,-1}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_l_switcher1.mdl","prop_dynamic",2,"NULL","NULL",6,6,-1,-1,1,6}) - asmlib.InsertRecord("ADDITIONS", {"models/shinji85/train/rail_l_switcher2.mdl","prop_dynamic",3,"NULL","NULL",6,6,-1,0,-1,0}) diff --git a/data/trackassembly/exp/sv_TRACKASSEMBLY_PHYSPROPERTIES.txt b/data/trackassembly/exp/sv_TRACKASSEMBLY_PHYSPROPERTIES.txt deleted file mode 100644 index edc68261..00000000 --- a/data/trackassembly/exp/sv_TRACKASSEMBLY_PHYSPROPERTIES.txt +++ /dev/null @@ -1,91 +0,0 @@ -# StoreExternalDatabase( INS ): 01/22/17 17:15:10 [ LUA ] -# Data settings: TYPE,LINEID,NAME - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",1,"default"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",2,"default_silent"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",3,"floatingstandable"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",4,"item"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",5,"ladder"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",6,"no_decal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",7,"player"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Special",8,"player_control_clip"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",1,"brick"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",2,"concrete"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",3,"concrete_block"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",4,"gravel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Concrete",5,"rock"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",1,"canister"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",2,"chain"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",3,"chainlink"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",4,"combine_metal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",5,"crowbar"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",6,"floating_metal_barrel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",7,"grenade"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",8,"gunship"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",9,"metal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",10,"metal_barrel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",11,"metal_bouncy"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",12,"Metal_Box"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",13,"metal_seafloorcar"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",14,"metalgrate"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",15,"metalpanel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",16,"metalvent"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",17,"metalvehicle"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",18,"paintcan"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",19,"popcan"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",20,"roller"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",21,"slipperymetal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",22,"solidmetal"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",23,"strider"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Metal",24,"weapon"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",1,"wood"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",2,"Wood_Box"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",3,"Wood_Furniture"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",4,"Wood_Plank"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",5,"Wood_Panel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Wood",6,"Wood_Solid"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",1,"dirt"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",2,"grass"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",3,"gravel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",4,"mud"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",5,"quicksand"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",6,"sand"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",7,"slipperyslime"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Terrain",8,"antlionsand"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Liquid",1,"slime"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Liquid",2,"water"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Liquid",3,"wade"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Frozen",1,"snow"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Frozen",2,"ice"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Frozen",3,"gmod_ice"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",1,"carpet"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",2,"ceiling_tile"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",3,"computer"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Miscellaneous",4,"pottery"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",1,"alienflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",2,"antlion"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",3,"armorflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",4,"bloodyflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",5,"flesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",6,"foliage"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",7,"watermelon"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Organic",8,"zombieflesh"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",1,"jeeptire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",2,"jalopytire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",3,"rubber"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",4,"rubbertire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",5,"slidingrubbertire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",6,"slidingrubbertire_front"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",7,"slidingrubbertire_rear"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",8,"brakingrubbertire"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",9,"tile"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",10,"paper"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",11,"papercup"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",12,"cardboard"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",13,"plaster"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",14,"plastic_barrel"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",15,"plastic_barrel_buoyant"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",16,"Plastic_Box"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",17,"plastic"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",18,"glass"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",19,"glassbottle"}) - asmlib.InsertRecord("PHYSPROPERTIES", {"Manufactured",20,"combine_glass"}) diff --git a/data/trackassembly/exp/sv_TRACKASSEMBLY_PIECES.txt b/data/trackassembly/exp/sv_TRACKASSEMBLY_PIECES.txt deleted file mode 100644 index ff679a57..00000000 --- a/data/trackassembly/exp/sv_TRACKASSEMBLY_PIECES.txt +++ /dev/null @@ -1,2366 +0,0 @@ -# StoreExternalDatabase( INS ): 01/22/17 17:15:09 [ LUA ] -# Data settings: MODEL,TYPE,NAME,LINEID,POINT,ORIGIN,ANGLE,CLASS - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_damaged.mdl","Battleship's abandoned rails","#",2,"","-966.40771,127.97242,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curve_cs_std/curve_cs_std_nodamage.mdl","Battleship's abandoned rails","#",2,"","-966.40771,127.97242,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_damaged.mdl","Battleship's abandoned rails","#",2,"","-1060.13232,139.53517,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver1/curve_r1_nodamage.mdl","Battleship's abandoned rails","#",2,"","-1060.13232,139.53517,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_damaged.mdl","Battleship's abandoned rails","#",2,"","-1086.07532,450.1528,-16.110403","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver11/curve_r11_nodamage.mdl","Battleship's abandoned rails","#",2,"","-1086.07532,450.1528,-16.110403","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_damaged.mdl","Battleship's abandoned rails","#",2,"","-993.86975,130.8159,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver2/curve_r2_nodamage.mdl","Battleship's abandoned rails","#",2,"","-993.86975,130.8159,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_damaged.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_damaged.mdl","Battleship's abandoned rails","#",2,"","-927.61951,122.07793,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_nodamage.mdl","Battleship's abandoned rails","#",1,"","0,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/curver3/curve_r3_nodamage.mdl","Battleship's abandoned rails","#",2,"","-927.61951,122.07793,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_damaged.mdl","Battleship's abandoned rails","#",1,"","64,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_damaged.mdl","Battleship's abandoned rails","#",2,"","-64,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_nodamage.mdl","Battleship's abandoned rails","#",1,"","64,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight1x/straight_1x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-64,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_damaged.mdl","Battleship's abandoned rails","#",1,"","128,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_damaged.mdl","Battleship's abandoned rails","#",2,"","-128,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_nodamage.mdl","Battleship's abandoned rails","#",1,"","128,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight2x/straight_2x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-128,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_damaged.mdl","Battleship's abandoned rails","#",1,"","192,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_damaged.mdl","Battleship's abandoned rails","#",2,"","-192,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_nodamage.mdl","Battleship's abandoned rails","#",1,"","192,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight3x/straight_3x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-192,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_damaged.mdl","Battleship's abandoned rails","#",1,"","256,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_damaged.mdl","Battleship's abandoned rails","#",2,"","-256,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_nodamage.mdl","Battleship's abandoned rails","#",1,"","256,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight4x/straight_4x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-256,0,-16.110403","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_damaged.mdl","Battleship's abandoned rails","#",1,"","512,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_damaged.mdl","Battleship's abandoned rails","#",2,"","-512,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_nodamage.mdl","Battleship's abandoned rails","#",1,"","512,0,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight8x/straight_8x_nodamage.mdl","Battleship's abandoned rails","#",2,"","-512,0,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_damaged.mdl","Battleship's abandoned rails","#",1,"","454.40574,0.01251,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_damaged.mdl","Battleship's abandoned rails","#",2,"","-454.40574,0.01248,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_nodamage.mdl","Battleship's abandoned rails","#",1,"","454.40574,0.01251,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/straight_cs_std/straight_cs_std_nodamage.mdl","Battleship's abandoned rails","#",2,"","-454.40574,0.01248,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_left_std/switch_left_base_std.mdl","Battleship's abandoned rails","#",1,"","512,-0.000545,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_left_std/switch_left_base_std.mdl","Battleship's abandoned rails","#",2,"","-512,-0.000545,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_left_std/switch_left_base_std.mdl","Battleship's abandoned rails","#",3,"","-454.49805,-128.04355,-16.110403","0,-165,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_right_std/switch_right_base_std.mdl","Battleship's abandoned rails","#",1,"","512,3e-005,-16.110403","",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_right_std/switch_right_base_std.mdl","Battleship's abandoned rails","#",2,"","-512,-3e-005,-16.110403","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/craptrax/switch_right_std/switch_right_base_std.mdl","Battleship's abandoned rails","#",3,"","-454.48437,128.0936,-16.110403","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",1,"","83,0,3.015","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",2,"","0.003,83,3.015","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",3,"","-83,0.003,3.015","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/misc/cross.mdl","Bobster's two feet rails","#",4,"","0,-83,3.015","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_1024.mdl","Bobster's two feet rails","#",2,"","249.471,49.621,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_2048.mdl","Bobster's two feet rails","#",2,"","498.941,99.246,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_left_512.mdl","Bobster's two feet rails","#",2,"","124.735,24.812,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_1024.mdl","Bobster's two feet rails","#",2,"","249.471,-49.623,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_2048.mdl","Bobster's two feet rails","#",2,"","498.945,-99.237,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_225_right_512.mdl","Bobster's two feet rails","#",2,"","124.736,-24.811,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_1024.mdl","Bobster's two feet rails","#",2,"","460.962,190.936,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_2048.mdl","Bobster's two feet rails","#",2,"","921.925,381.872,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_left_512.mdl","Bobster's two feet rails","#",2,"","230.481,95.468,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_1024.mdl","Bobster's two feet rails","#",2,"","460.963,-190.936,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_2048.mdl","Bobster's two feet rails","#",2,"","921.925,-381.872,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_45_right_512.mdl","Bobster's two feet rails","#",2,"","230.481,-95.469,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_1024.mdl","Bobster's two feet rails","#",2,"","651.898,651.898,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_2048.mdl","Bobster's two feet rails","#",2,"","1303.797,1303.797,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_left_512.mdl","Bobster's two feet rails","#",2,"","325.949,325.95,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_1024.mdl","Bobster's two feet rails","#",2,"","651.898,-651.899,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_2048.mdl","Bobster's two feet rails","#",2,"","1303.797,-1303.797,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_90_right_512.mdl","Bobster's two feet rails","#",2,"","325.949,-325.949,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_1024.mdl","Bobster's two feet rails","#",2,"","651.899,651.898,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_2048.mdl","Bobster's two feet rails","#",2,"","1303.797,1303.797,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_left_512.mdl","Bobster's two feet rails","#",2,"","325.949,325.949,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_1024.mdl","Bobster's two feet rails","#",2,"","651.926,-651.874,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_2048.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_2048.mdl","Bobster's two feet rails","#",2,"","1303.798,-1303.797,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_bank_90_right_512.mdl","Bobster's two feet rails","#",2,"","325.949,-325.949,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_1024.mdl","Bobster's two feet rails","#",2,"","249.471,49.621,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_left_512.mdl","Bobster's two feet rails","#",2,"","124.735,24.812,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_1024.mdl","Bobster's two feet rails","#",2,"","249.471,-49.623,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_225_right_512.mdl","Bobster's two feet rails","#",2,"","124.736,-24.811,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_1024.mdl","Bobster's two feet rails","#",2,"","460.962,190.936,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_left_512.mdl","Bobster's two feet rails","#",2,"","230.481,95.468,3.016","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_1024.mdl","Bobster's two feet rails","#",2,"","460.963,-190.936,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_45_right_512.mdl","Bobster's two feet rails","#",2,"","230.481,-95.469,3.016","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_1024.mdl","Bobster's two feet rails","#",2,"","651.898,651.898,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_left_512.mdl","Bobster's two feet rails","#",2,"","325.949,325.95,3.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_1024.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_1024.mdl","Bobster's two feet rails","#",2,"","651.898,-651.899,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_512.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/curves/curve_rack_90_right_512.mdl","Bobster's two feet rails","#",2,"","325.949,-325.949,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_1024.mdl","Bobster's two feet rails","#",1,"","512,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_1024.mdl","Bobster's two feet rails","#",2,"","-512,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_128.mdl","Bobster's two feet rails","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_128.mdl","Bobster's two feet rails","#",2,"","-64,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_16.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","8,0,3.017","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_16.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-8,0,3.017","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_2048.mdl","Bobster's two feet rails","#",1,"","1024,0,3.017","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_2048.mdl","Bobster's two feet rails","#",2,"","-1024,0,3.017","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_256.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_256.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_32.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","16,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_32.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-16,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_4096.mdl","Bobster's two feet rails","#",1,"","2048,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_4096.mdl","Bobster's two feet rails","#",2,"","-2048,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_512.mdl","Bobster's two feet rails","#",1,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_512.mdl","Bobster's two feet rails","#",2,"","-256,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_64.mdl","Bobster's two feet rails","#",1,"","32,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_64.mdl","Bobster's two feet rails","#",2,"","-32,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_left.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_left.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_right.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_bank_right.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_1024.mdl","Bobster's two feet rails","#",1,"","512,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_1024.mdl","Bobster's two feet rails","#",2,"","-512,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_128.mdl","Bobster's two feet rails","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_128.mdl","Bobster's two feet rails","#",2,"","-64,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_16.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","8,0,3.017","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_16.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-8,0,3.017","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_256.mdl","Bobster's two feet rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_256.mdl","Bobster's two feet rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_32.mdl","Bobster's two feet rails","#",1,"0,-32,1.5","16,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_32.mdl","Bobster's two feet rails","#",2,"0,32,1.5","-16,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_512.mdl","Bobster's two feet rails","#",1,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_512.mdl","Bobster's two feet rails","#",2,"","-256,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_64.mdl","Bobster's two feet rails","#",1,"","32,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/straight_rack_64.mdl","Bobster's two feet rails","#",2,"","-32,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_switched.mdl","Bobster's two feet rails","#",3,"","262.471,49.622,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_left_unswitched.mdl","Bobster's two feet rails","#",3,"","262.471,49.622,3.016","0,22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_switched.mdl","Bobster's two feet rails","#",3,"","262.472,-49.622,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl","Bobster's two feet rails","#",1,"","0,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl","Bobster's two feet rails","#",2,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/bobsters_trains/rails/2ft/switches/switch_right_unswitched.mdl","Bobster's two feet rails","#",3,"","262.472,-49.622,3.016","0,-22.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube025x025x025.mdl","Develop PHX","x1",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube05x05x05.mdl","Develop PHX","x2",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube075x075x075.mdl","Develop PHX","x3",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/blocks/cube1x1x1.mdl","Develop PHX","x4",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height06/size_1/cube_6x6x6.mdl","Develop Sprops","x1",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height12/size_1/cube_12x12x12.mdl","Develop Sprops","x2",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/non_set/cube_18x18x18.mdl","Develop Sprops","x3",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height24/size_1/cube_24x24x24.mdl","Develop Sprops","x4",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height36/size_1/cube_36x36x36.mdl","Develop Sprops","x5",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/cuboids/height48/size_1/cube_48x48x48.mdl","Develop Sprops","x6",1,"","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/props_c17/furniturewashingmachine001a.mdl","Develop Test","#",1,"","-0.05,0.006,21.934","#@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_c17/furniturewashingmachine001a.mdl","Develop Test","#",2,"","-0.05,0.006,-21.922","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225l.mdl","G Scale Track Pack","#",2,"","-196.060471,-39.081982,1.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/225r.mdl","G Scale Track Pack","#",2,"","-196.060471,39.081982,1.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45l.mdl","G Scale Track Pack","#",2,"","-362,-150,1.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/45r.mdl","G Scale Track Pack","#",2,"","-362,150,1.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90l.mdl","G Scale Track Pack","#",2,"","-512,-512,1.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/90r.mdl","G Scale Track Pack","#",2,"","-512,512,1.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_s.mdl","G Scale Track Pack","#",3,"","-196.060471,-39.081982,1.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_s.mdl","G Scale Track Pack","#",4,"","-136,-78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_s.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/l225_t.mdl","G Scale Track Pack","#",3,"","-196.060471,-39.081982,1.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/l225_t.mdl","G Scale Track Pack","#",4,"","-136,-78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/l225_t.mdl","G Scale Track Pack","#",3,"","-392,-78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0032.mdl","G Scale Track Pack","#",1,"","32,0,2.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0032.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0064.mdl","G Scale Track Pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0064.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0128.mdl","G Scale Track Pack","#",1,"","128,0,5.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0128.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0256.mdl","G Scale Track Pack","#",1,"","256,0,9.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0256.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0512.mdl","G Scale Track Pack","#",1,"","512,0,17.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r0512.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r1024.mdl","G Scale Track Pack","#",1,"","1024,0,33.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ramp313/r1024.mdl","G Scale Track Pack","#",2,"","0,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_s.mdl","G Scale Track Pack","#",3,"","-196.060471,39.081982,1.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_s.mdl","G Scale Track Pack","#",4,"","-136,78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_s.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_s.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_s.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/j/r225_t.mdl","G Scale Track Pack","#",3,"","-196.060471,39.081982,1.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/s/r225_t.mdl","G Scale Track Pack","#",4,"","-136,78,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_t.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/siding/r225_t.mdl","G Scale Track Pack","#",3,"","-392,78,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0008.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0008.mdl","G Scale Track Pack","#",2,"","-8,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0016.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0016.mdl","G Scale Track Pack","#",2,"","-16,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0032.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0032.mdl","G Scale Track Pack","#",2,"","-32,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0032.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0032.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0064.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0064.mdl","G Scale Track Pack","#",2,"","-64,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0064.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0064.mdl","G Scale Track Pack","#",2,"","-64,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0128.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0128.mdl","G Scale Track Pack","#",2,"","-128,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0128.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0128.mdl","G Scale Track Pack","#",2,"","-128,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0256.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0256.mdl","G Scale Track Pack","#",2,"","-256,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0256.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0256.mdl","G Scale Track Pack","#",2,"","-256,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0512.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s0512.mdl","G Scale Track Pack","#",2,"","-512,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0512.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s0512.mdl","G Scale Track Pack","#",2,"","-512,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s1024.mdl","G Scale Track Pack","#",1,"","0,0,25.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/ibeam/s1024.mdl","G Scale Track Pack","#",2,"","-1024,0,25.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s1024.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/straight/s1024.mdl","G Scale Track Pack","#",2,"","-1024,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225l.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225l.mdl","G Scale Track Pack","#",2,"","-392,-78.125595,1.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225r.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/c0512/s225r.mdl","G Scale Track Pack","#",2,"","-392,78.125595,1.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_1.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_1.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_2.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_s_2.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_t.mdl","G Scale Track Pack","#",1,"","0,0,1.016","",""}) - asmlib.InsertRecord("PIECES", {"models/gscale/transition/t0032_q_t.mdl","G Scale Track Pack","#",2,"","-32,0,1.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_225.mdl","Magnum's Rails","#",1,"","-0.01,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_225.mdl","Magnum's Rails","#",2,"","-587.955,-117.702,3.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_45.mdl","Magnum's Rails","#",1,"","-0.012,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_45.mdl","Magnum's Rails","#",2,"","-1087.089,-451.055,3.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_90.mdl","Magnum's Rails","#",1,"","1086.58,450.079,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/curve_90.mdl","Magnum's Rails","#",2,"","-449.475,-1085.92,3.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0032.mdl","Magnum's Rails","#",1,"","16,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0032.mdl","Magnum's Rails","#",2,"","-16,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0064.mdl","Magnum's Rails","#",1,"","32,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0064.mdl","Magnum's Rails","#",2,"","-32,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0128.mdl","Magnum's Rails","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0128.mdl","Magnum's Rails","#",2,"","-64,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0256.mdl","Magnum's Rails","#",1,"","128,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0256.mdl","Magnum's Rails","#",2,"","-128,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0512.mdl","Magnum's Rails","#",1,"","256,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_0512.mdl","Magnum's Rails","#",2,"","-256,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_1024.mdl","Magnum's Rails","#",1,"","512,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_1024.mdl","Magnum's Rails","#",2,"","-512,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_2048.mdl","Magnum's Rails","#",1,"","1024,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/magtrains1ga/straight_2048.mdl","Magnum's Rails","#",2,"","-1024,0,3.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",1,"","64,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",2,"","0,64,1.516","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",3,"","-64,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_cross_128.mdl","Mr.Train's G-Gauge","#",4,"","0,-64,1.516","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_1.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_1.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,3.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_2.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_2.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,4.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_3.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_ramp_3.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_left_22_5.mdl","Mr.Train's G-Gauge","#",1,"","256,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_left_22_5.mdl","Mr.Train's G-Gauge","#",2,"","-256,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_right_22_5.mdl","Mr.Train's G-Gauge","#",1,"","256,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_s_right_22_5.mdl","Mr.Train's G-Gauge","#",2,"","-256,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_1024.mdl","Mr.Train's G-Gauge","#",1,"","512,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_1024.mdl","Mr.Train's G-Gauge","#",2,"","-512,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_128.mdl","Mr.Train's G-Gauge","#",1,"","64,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_128.mdl","Mr.Train's G-Gauge","#",2,"","-64,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_2048.mdl","Mr.Train's G-Gauge","#",1,"","1024,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_2048.mdl","Mr.Train's G-Gauge","#",2,"","-1024,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_256.mdl","Mr.Train's G-Gauge","#",1,"","128,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_256.mdl","Mr.Train's G-Gauge","#",2,"","-128,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_32.mdl","Mr.Train's G-Gauge","#",1,"","16,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_32.mdl","Mr.Train's G-Gauge","#",2,"","-16,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_512.mdl","Mr.Train's G-Gauge","#",1,"","256,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_512.mdl","Mr.Train's G-Gauge","#",2,"","-256,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_64.mdl","Mr.Train's G-Gauge","#",1,"","32,0,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_straight_64.mdl","Mr.Train's G-Gauge","#",2,"","-32,0,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl","Mr.Train's G-Gauge","#",1,"","256,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl","Mr.Train's G-Gauge","#",2,"","0,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_1.mdl","Mr.Train's G-Gauge","#",3,"","-256,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl","Mr.Train's G-Gauge","#",1,"","256,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl","Mr.Train's G-Gauge","#",2,"","0,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_left_2.mdl","Mr.Train's G-Gauge","#",3,"","-256,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl","Mr.Train's G-Gauge","#",1,"","256,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl","Mr.Train's G-Gauge","#",2,"","0,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_1.mdl","Mr.Train's G-Gauge","#",3,"","-256,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl","Mr.Train's G-Gauge","#",1,"","256,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl","Mr.Train's G-Gauge","#",2,"","0,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_1_right_2.mdl","Mr.Train's G-Gauge","#",3,"","-256,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_1.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_left_2.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_1.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",1,"","195.938,39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",2,"","195.938,-39,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",3,"","-195.937,-39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_switch_2_right_2.mdl","Mr.Train's G-Gauge","#",4,"","-195.937,39,1.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_22_5.mdl","Mr.Train's G-Gauge","#",1,"","263.75,248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_22_5.mdl","Mr.Train's G-Gauge","#",2,"","67.855,209.265,1.516","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_45.mdl","Mr.Train's G-Gauge","#",1,"","263.75,248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_45.mdl","Mr.Train's G-Gauge","#",2,"","-98.326,98.323,1.516","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_90.mdl","Mr.Train's G-Gauge","#",1,"","263.75,248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_left_90.mdl","Mr.Train's G-Gauge","#",2,"","-248.25,-263.75,1.516","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_22_5.mdl","Mr.Train's G-Gauge","#",1,"","263.75,-248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_22_5.mdl","Mr.Train's G-Gauge","#",2,"","67.872,-209.299,1.516","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_45.mdl","Mr.Train's G-Gauge","#",1,"","263.75,-248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_45.mdl","Mr.Train's G-Gauge","#",2,"","-98.302,-98.302,1.516","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_90.mdl","Mr.Train's G-Gauge","#",1,"","263.75,-248.25,1.516","",""}) - asmlib.InsertRecord("PIECES", {"models/props/g_gauge/track/g_gauge_track_turn_right_90.mdl","Mr.Train's G-Gauge","#",2,"","-248.25,263.75,1.516","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_1024.mdl","Mr.Train's M-Gauge","#",1,"","512,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_1024.mdl","Mr.Train's M-Gauge","#",2,"","-512,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",1,"","64,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",2,"","0,64,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",3,"","-64,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128_cross.mdl","Mr.Train's M-Gauge","#",4,"","0,-64,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128.mdl","Mr.Train's M-Gauge","#",1,"","64,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_128.mdl","Mr.Train's M-Gauge","#",2,"","-64,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_2048.mdl","Mr.Train's M-Gauge","#",1,"","1024,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_2048.mdl","Mr.Train's M-Gauge","#",2,"","-1024,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_256.mdl","Mr.Train's M-Gauge","#",1,"","128,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_256.mdl","Mr.Train's M-Gauge","#",2,"","-128,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_32.mdl","Mr.Train's M-Gauge","#",1,"","16,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_32.mdl","Mr.Train's M-Gauge","#",2,"","-16,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_4096.mdl","Mr.Train's M-Gauge","#",1,"","2048,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_4096.mdl","Mr.Train's M-Gauge","#",2,"","-2048,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_512.mdl","Mr.Train's M-Gauge","#",1,"","256,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_512.mdl","Mr.Train's M-Gauge","#",2,"","-256,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_64.mdl","Mr.Train's M-Gauge","#",1,"","32,0,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_64.mdl","Mr.Train's M-Gauge","#",2,"","-32,0,0.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024_45.mdl","Mr.Train's M-Gauge","#",1,"","518.5,505.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024_45.mdl","Mr.Train's M-Gauge","#",2,"","-205.608,205.607,0.014","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024.mdl","Mr.Train's M-Gauge","#",1,"","518.5,505.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_1024.mdl","Mr.Train's M-Gauge","#",2,"","-505.5,-518.5,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_256.mdl","Mr.Train's M-Gauge","#",1,"","134.497,121.499,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_256.mdl","Mr.Train's M-Gauge","#",2,"","-121.5,-134.5,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512_45.mdl","Mr.Train's M-Gauge","#",1,"","262.5,-249.497,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512_45.mdl","Mr.Train's M-Gauge","#",2,"","-99.51,-99.507,0.015","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512.mdl","Mr.Train's M-Gauge","#",1,"","262.5,249.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_512.mdl","Mr.Train's M-Gauge","#",2,"","-249.5,-262.5,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768_45.mdl","Mr.Train's M-Gauge","#",1,"","383.625,370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768_45.mdl","Mr.Train's M-Gauge","#",2,"","-149.73,149.729,0.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768.mdl","Mr.Train's M-Gauge","#",1,"","383.625,370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_left_768.mdl","Mr.Train's M-Gauge","#",2,"","-370.625,-383.625,0.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024_45.mdl","Mr.Train's M-Gauge","#",1,"","518.5,-505.498,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024_45.mdl","Mr.Train's M-Gauge","#",2,"","-205.621,-205.618,0.014","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024.mdl","Mr.Train's M-Gauge","#",1,"","518.5,-505.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_1024.mdl","Mr.Train's M-Gauge","#",2,"","-505.5,518.5,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_256.mdl","Mr.Train's M-Gauge","#",1,"","134.5,-121.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_256.mdl","Mr.Train's M-Gauge","#",2,"","-121.5,134.5,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_512.mdl","Mr.Train's M-Gauge","#",1,"","262.5,-249.5,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_512.mdl","Mr.Train's M-Gauge","#",2,"","-249.5,262.5,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768_45.mdl","Mr.Train's M-Gauge","#",1,"","383.625,-370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768_45.mdl","Mr.Train's M-Gauge","#",2,"","-149.758,-149.751,0.012","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768.mdl","Mr.Train's M-Gauge","#",1,"","383.625,-370.625,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_right_768.mdl","Mr.Train's M-Gauge","#",2,"","-370.625,383.625,0.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",1,"","75,-75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",2,"","203,75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",3,"","-75,75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sl.mdl","Mr.Train's M-Gauge","#",4,"","-203,-75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",1,"","203,-75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",2,"","75,75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",3,"","-203,75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover_sr.mdl","Mr.Train's M-Gauge","#",4,"","-75,-75,-2.485","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",1,"","203,-75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",2,"","203,75,-2.484","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",3,"","-203,75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_crossover.mdl","Mr.Train's M-Gauge","#",4,"","-203,-75,-2.484","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_lefthand.mdl","Mr.Train's M-Gauge","#",1,"","0,-10,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_lefthand.mdl","Mr.Train's M-Gauge","#",2,"","-256,-10,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_lefthand.mdl","Mr.Train's M-Gauge","#",3,"","-384,-160,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_righthand.mdl","Mr.Train's M-Gauge","#",1,"","0,10,0.016","",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_righthand.mdl","Mr.Train's M-Gauge","#",2,"","-384,160,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/m_gauge/track/m_gauge_switch_righthand.mdl","Mr.Train's M-Gauge","#",3,"","-256,10,0.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_1024.mdl","PHX Metal","#",1,"","511.754761,-4.7e-005,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_1024.mdl","PHX Metal","#",2,"","-512.240601,-0.050828,9.215","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_128.mdl","PHX Metal","#",1,"","63.75531,0.001953,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_128.mdl","PHX Metal","#",2,"","-64.240356,-0.005125,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_2048.mdl","PHX Metal","#",1,"","1023.755066,0.000642,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_2048.mdl","PHX Metal","#",2,"","-1024.242676,-0.109433,9.215","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_256.mdl","PHX Metal","#",1,"","127.754944,0.001953,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_256.mdl","PHX Metal","#",2,"","-128.245117,-0.012207,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_32.mdl","PHX Metal","#",1,"-0.327,-61.529,8.714","15.755127,0.001953,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_32.mdl","PHX Metal","#",2,"-0.327,61.529,8.714","-16.239746,0.000244,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_4096.mdl","PHX Metal","#",1,"","2047.755249,0.001923,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_4096.mdl","PHX Metal","#",2,"","-2048.240479,-0.225247,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_512.mdl","PHX Metal","#",1,"","255.754791,0.001465,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_512.mdl","PHX Metal","#",2,"","-256.242401,-0.026855,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_64.mdl","PHX Metal","#",1,"","31.999878,0.00196,9.215","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/track_64.mdl","PHX Metal","#",2,"","-32.000275,-0.001469,9.215","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam1.mdl","PHX Monorail Beam","#",1,"","22.411,0.001,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam1.mdl","PHX Monorail Beam","#",2,"","-22.413,0.001,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam2.mdl","PHX Monorail Beam","#",1,"","45.298,0.001,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam2.mdl","PHX Monorail Beam","#",2,"","-46.968,0.001,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam3.mdl","PHX Monorail Beam","#",1,"","93.069,0,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam3.mdl","PHX Monorail Beam","#",2,"","-94.079,0.002,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam4.mdl","PHX Monorail Beam","#",1,"","175.507,0.001,5.002","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/iron_beam4.mdl","PHX Monorail Beam","#",2,"","-201.413,0.001,5.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail3.mdl","PHX Monorail","Straight Long",1,"","0.239949,-934.135559,13.879116","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail3.mdl","PHX Monorail","Straight Long",2,"","0.239705,930.885315,13.87915","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail2.mdl","PHX Monorail","Straight Middle",1,"","0.239726,-462.635468,13.879296","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail2.mdl","PHX Monorail","Straight Middle",2,"","0.239914,464.885315,13.879209","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail1.mdl","PHX Monorail","Straight Short",1,"","229.885559,0.23999,13.87915","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail1.mdl","PHX Monorail","Straight Short",2,"","-228.885254,0.239726,13.87915","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail4.mdl","PHX Monorail","Straight Very Long",1,"","0.239664,-1867.13562,13.879143","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail4.mdl","PHX Monorail","Straight Very Long",2,"","0.239664,1872.885376,13.87915","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve2.mdl","PHX Monorail","Turn 45",1,"","-0.030396,-605.638428,13.881409","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve2.mdl","PHX Monorail","Turn 45",2,"","-428.018524,-428.362335,13.881714","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve.mdl","PHX Monorail","Turn 90",1,"","-0.030518,-605.638184,13.880554","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/monorail_curve.mdl","PHX Monorail","Turn 90",2,"","-605.380859,-0.307583,13.881714","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_16x.mdl","PHX Regular","16x",1,"","2029.797363,0.000133,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_16x.mdl","PHX Regular","16x",2,"","-370.036865,-2e-060,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_1x.mdl","PHX Regular","1x",1,"","79.929352,0,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_1x.mdl","PHX Regular","1x",2,"","-70.05806,6e-006,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_down.mdl","PHX Regular","225 Down",1,"","-75.016,-0.006,64.57","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_down.mdl","PHX Regular","225 Down",2,"","4.096,-0.007,48.791","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_up.mdl","PHX Regular","225 Up",1,"","-75.016,0.007,11.212","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_225_up.mdl","PHX Regular","225 Up",2,"","4.196,0,27.054","@-22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_2x.mdl","PHX Regular","2x",1,"","229.919388,0,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_2x.mdl","PHX Regular","2x",2,"","-70.05806,-6e-006,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_down.mdl","PHX Regular","45 Down",1,"-75.016,-0.002,64.568","-75.013,-0.002,64.568","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_down.mdl","PHX Regular","45 Down",2,"","71.037,-0.018,3.951","@45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_up.mdl","PHX Regular","45 Up",1,"","-75.013,0.007,11.218","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_45_up.mdl","PHX Regular","45 Up",2,"","71.173,0.003,71.909","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_4x.mdl","PHX Regular","4x",1,"","229.919388,3.1e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_4x.mdl","PHX Regular","4x",2,"","-370.037079,-3.2e-005,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_8x.mdl","PHX Regular","8x",1,"","829.878418,3.8e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_8x.mdl","PHX Regular","8x",2,"","-370.036865,-2.5e-005,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",1,"","250.473389,49.613159,11.214844","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",2,"","-349.483032,49.613129,11.214844","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",3,"","162.610229,-162.4935,11.214844","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_x.mdl","PHX Regular","Cross 45",4,"","-261.623718,261.740234,11.214844","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",1,"","74.973145,1e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",2,"","-75.013794,-7e-006,12.548828","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",3,"","-0.022434,74.999878,12.548828","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_crossing.mdl","PHX Regular","Cross 90",4,"","-0.022434,-74.987061,12.548828","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_pass.mdl","PHX Regular","Cross Road",1,"","229.920044,2e-005,11.214844","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_pass.mdl","PHX Regular","Cross Road",2,"","-370.036377,2e-006,11.214844","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_single.mdl","PHX Regular","Single",1,"-0.327,-61.529,8.714","15.451782,1.5e-005,12.548828","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_single.mdl","PHX Regular","Single",2,"-0.327,61.529,8.714","-16.094971,-1e-006,12.548828","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch2.mdl","PHX Regular","Switch Left [X]",1,"","829.880005,-0.001465,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch2.mdl","PHX Regular","Switch Left [X]",2,"","-370.037262,-0.000456,11.218994","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch2.mdl","PHX Regular","Switch Left [X]",3,"","-158.311356,-338.111572,11.218994","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch.mdl","PHX Regular","Switch Right",1,"","829.8797,0.001587,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch.mdl","PHX Regular","Switch Right",2,"","-370.037231,0.000256,11.218994","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_switch.mdl","PHX Regular","Switch Right",3,"","-158.311737,338.107941,11.218994","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn45.mdl","PHX Regular","Turn45",1,"","733.000061,-265.363037,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn45.mdl","PHX Regular","Turn45",2,"","-83.26461,72.744667,11.218994","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn90.mdl","PHX Regular","Turn90",1,"","733.000061,-265.363037,11.218994","",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/tracks/track_turn90.mdl","PHX Regular","Turn90",2,"","-421.363312,889.005493,11.218994","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/big_ramp.mdl","PHX Road","#",1,"","-569.177,-7.199953,-3.075","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/big_ramp.mdl","PHX Road","#",2,"","625.022,-7.199953,472.427","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_curve.mdl","PHX Road","#",1,"","162.813,379.277,1.879","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_curve.mdl","PHX Road","#",2,"","-363.22,-146.757,1.879","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_long.mdl","PHX Road","#",1,"","0,1198.773,1.765","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_long.mdl","PHX Road","#",2,"","0,-1198.773,1.765","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_medium.mdl","PHX Road","#",1,"","0,599.386,1.765","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_medium.mdl","PHX Road","#",2,"","0,-599.386,1.765","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_short.mdl","PHX Road","#",1,"","0,299.693,1.765","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/huge/road_short.mdl","PHX Road","#",2,"","0,-299.693,1.765","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/small_ramp.mdl","PHX Road","#",1,"","-284.589,-3.599976,-1.672","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/misc/small_ramp.mdl","PHX Road","#",2,"","312.608,-3.599976,236.11","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_curve90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/glass/glass_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.081","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve2x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve2x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_plate_curve.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/metal_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_curve90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/windows/window_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle180.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle180.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle360.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle360.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle90.mdl","PHX Tubes Miscellaneous","#",1,"","-0.001,0,3.258","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_angle90.mdl","PHX Tubes Miscellaneous","#",2,"","-0.001,0,0.255","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.081","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve180x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_curve90x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_dome180.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_dome360.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_dome90.mdl","PHX Tubes Miscellaneous","#",1,"","0,0,0.025","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.667,47.543","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.222,33.668,94.993","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle180x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.667,0.093","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,47.538","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x1.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",1,"","0.02,0,95.076","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle360x2.mdl","PHX Tubes Miscellaneous","#",2,"","0.02,0,0.089","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,47.541","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x1.mdl","PHX Tubes Miscellaneous","#",2,"","31.222,33.69,0.095","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",1,"","31.246,33.667,95.083","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/construct/wood/wood_wire_angle90x2.mdl","PHX Tubes Miscellaneous","#",2,"","31.241,33.671,0.183","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/circle4x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1a.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1a.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole1x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x1.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x1.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x2.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole1x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole3.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/plates/platehole3.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4c.mdl","PHX Tubes Plastic","#",1,"","47.45,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4c.mdl","PHX Tubes Plastic","#",2,"","47.45,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4d.mdl","PHX Tubes Plastic","#",1,"","47.45,47.45,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4d.mdl","PHX Tubes Plastic","#",2,"","47.45,47.45,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4.mdl","PHX Tubes Plastic","#",1,"","0,0,1.5","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/platehole4x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-1.5","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2a.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2e.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2x45.mdl","PHX Tubes Plastic","#",1,"0,-47.45,0","0,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/misc/shell2x2x45.mdl","PHX Tubes Plastic","#",2,"-33.552,-33.552,0","0,0,0","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x1.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x2.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3b.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3c.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3d.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x3.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x4.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5b.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5c.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5d.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5.mdl","PHX Tubes Plastic","#",1,"","0,0,237.25","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x5.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6b.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6c.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6d.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6.mdl","PHX Tubes Plastic","#",1,"","0,0,284.7","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x6.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8b.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8c.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8d.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube1x1x8.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",2,"","0,-47.45,0","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",3,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x+.mdl","PHX Tubes Plastic","#",4,"","0,47.45,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025b.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025b.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025c.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025c.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025d.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025d.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025.mdl","PHX Tubes Plastic","#",1,"","0,0,5.93125","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x025.mdl","PHX Tubes Plastic","#",2,"","0,0,-5.93125","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05b.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05b.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05c.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05c.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05d.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05d.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x05.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x16d.mdl","PHX Tubes Plastic","#",1,"","0,0,711.75","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x16d.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x1.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8b.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8b.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8c.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8c.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8d.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8d.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2x8.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xta.mdl","PHX Tubes Plastic","#",1,"","0,0,-23.725","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xta.mdl","PHX Tubes Plastic","#",2,"","0,47.45,23.725","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xta.mdl","PHX Tubes Plastic","#",3,"","0,-47.45,23.725","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xtb.mdl","PHX Tubes Plastic","#",1,"","0,-23.725,0","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xtb.mdl","PHX Tubes Plastic","#",2,"","0,23.725,-47.45","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xt.mdl","PHX Tubes Plastic","#",1,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xt.mdl","PHX Tubes Plastic","#",2,"","0,-47.45,0","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube2x2xt.mdl","PHX Tubes Plastic","#",3,"","0,47.45,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025b.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025c.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025c.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025d.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025d.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x025.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05b.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05b.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05c.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05c.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05d.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05d.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05.mdl","PHX Tubes Plastic","#",1,"","0,0,11.8625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x05.mdl","PHX Tubes Plastic","#",2,"","0,0,-11.8625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16b.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16b.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16c.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16c.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16d.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16d.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16.mdl","PHX Tubes Plastic","#",1,"","0,0,379.6","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x16.mdl","PHX Tubes Plastic","#",2,"","0,0,-379.6","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1b.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1b.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1c.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1c.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1d.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1d.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1.mdl","PHX Tubes Plastic","#",1,"","0,0,23.726","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1.mdl","PHX Tubes Plastic","#",2,"","0,0,-23.726","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1to2x2.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x1to2x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2b.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2b.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2c.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2c.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2d.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2d.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2.mdl","PHX Tubes Plastic","#",1,"","0,0,47.45","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x2.mdl","PHX Tubes Plastic","#",2,"","0,0,-47.45","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3b.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3b.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3c.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3c.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3d.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3d.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3.mdl","PHX Tubes Plastic","#",1,"","0,0,71.175","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x3.mdl","PHX Tubes Plastic","#",2,"","0,0,-71.175","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4b.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4b.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4c.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4c.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4d.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4d.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4.mdl","PHX Tubes Plastic","#",1,"","0,0,94.9","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x4.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5b.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5b.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5c.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5c.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5d.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5d.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5.mdl","PHX Tubes Plastic","#",1,"","0,0,118.625","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x5.mdl","PHX Tubes Plastic","#",2,"","0,0,-118.625","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6b.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6b.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6c.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6c.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6d.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6d.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6.mdl","PHX Tubes Plastic","#",1,"","0,0,142.35","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x6.mdl","PHX Tubes Plastic","#",2,"","0,0,-142.35","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8b.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8b.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8c.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8c.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8d.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8d.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8.mdl","PHX Tubes Plastic","#",1,"","0,0,189.8","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tube4x4x8.mdl","PHX Tubes Plastic","#",2,"","0,0,-189.8","@90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x1x90.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x1x90.mdl","PHX Tubes Plastic","#",2,"","0,23.725,23.725","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90a.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90a.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90b.mdl","PHX Tubes Plastic","#",1,"","-47.45,0,47.45","0,-180,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90b.mdl","PHX Tubes Plastic","#",2,"","0,0,0","@90,-90,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend1x2x90.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90outer.mdl","PHX Tubes Plastic","#",1,"","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90outer.mdl","PHX Tubes Plastic","#",2,"","0,47.45,47.45","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90square.mdl","PHX Tubes Plastic","#",1,"","0,0,-47.451","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend2x2x90square.mdl","PHX Tubes Plastic","#",2,"","0,47.417,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend4x4x90.mdl","PHX Tubes Plastic","#",1,"","0,94.9,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebend4x4x90.mdl","PHX Tubes Plastic","#",2,"","0,0,-94.9","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare2.mdl","PHX Tubes Plastic","#",1,"","0,0,23.725","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare2.mdl","PHX Tubes Plastic","#",2,"","0,-47.45,-23.724","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare.mdl","PHX Tubes Plastic","#",1,"","0,0,23.725","@-90,90,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendinsidesquare.mdl","PHX Tubes Plastic","#",2,"","-47.45,0,-23.724","0,-180,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare2.mdl","PHX Tubes Plastic","#",1,"0,0,47.45","0,0,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare2.mdl","PHX Tubes Plastic","#",2,"0,-47.45,0","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare.mdl","PHX Tubes Plastic","#",1,"0,0,47.45","0,0,0","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/hunter/tubes/tubebendoutsidesquare.mdl","PHX Tubes Plastic","#",2,"0,-47.45,0","0,0,0","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_90deg.mdl","Portal Tubes","#",1,"","64.041,0.049,0.131","",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_90deg.mdl","Portal Tubes","#",2,"","0.002,0.04,-63.904","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_broken.mdl","Portal Tubes","#",1,"","0.009,0,63.896","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_broken.mdl","Portal Tubes","#",2,"","0.008,0.004,-63.897","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_straight.mdl","Portal Tubes","#",1,"","0.009,0,63.896","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_straight.mdl","Portal Tubes","#",2,"","0.008,0.004,-63.897","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_tjoint.mdl","Portal Tubes","#",1,"","-0.014,0.13,96.075","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_tjoint.mdl","Portal Tubes","#",2,"","-0.004,-95.763,0.016","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/props_bts/clear_tube_tjoint.mdl","Portal Tubes","#",3,"","0,96,0.083","0,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/big_jetty.mdl","Random Bridges","#",1,"","0,116.668,57.94","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/big_jetty.mdl","Random Bridges","#",2,"","0,-11.914,57.939","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_128.mdl","Random Bridges","#",1,"","0,67.452,14.326","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_128.mdl","Random Bridges","#",2,"","0,-63.954,14.325","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_256.mdl","Random Bridges","#",1,"","0,131.491,14.199","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_256.mdl","Random Bridges","#",2,"","0,-139.388,14.198","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_384.mdl","Random Bridges","#",1,"","0,199.517,14.302","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_384.mdl","Random Bridges","#",2,"","0,-196.069,14.215","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_128.mdl","Random Bridges","#",1,"","0,67.244,14.323","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_128.mdl","Random Bridges","#",2,"","0,-63.033,14.337","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_256.mdl","Random Bridges","#",1,"","0,131.502,14.339","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_256.mdl","Random Bridges","#",2,"","0,-127.085,14.319","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_384.mdl","Random Bridges","#",1,"","0,199.517,14.332","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_swamp/boardwalk_tall_384.mdl","Random Bridges","#",2,"","0,-196.012,14.318","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_wasteland/bridge_low_res.mdl","Random Bridges","#",1,"","5056,219.145,992.765","",""}) - asmlib.InsertRecord("PIECES", {"models/props_wasteland/bridge_low_res.mdl","Random Bridges","#",2,"","-576,219.145,992.765","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01b.mdl","Random Bridges","#",1,"","910.69,-13.63,403.46","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01b.mdl","Random Bridges","#",2,"","-913.31,-13.63,403.46","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01.mdl","Random Bridges","#",1,"","455.345,-6.815,201.73","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge01.mdl","Random Bridges","#",2,"","-456.655,-6.815,201.73","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge02.mdl","Random Bridges","#",1,"","0,512.155,288","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge02.mdl","Random Bridges","#",2,"","0,-512.212,288","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03a.mdl","Random Bridges","#",1,"","320.89,0,187.742","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03a.mdl","Random Bridges","#",2,"","-320.059,0,187.742","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03b.mdl","Random Bridges","#",1,"","320.89,0,187.741","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03b.mdl","Random Bridges","#",2,"","-320.059,0,187.741","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03c.mdl","Random Bridges","#",1,"","1026.848,0,600.773","",""}) - asmlib.InsertRecord("PIECES", {"models/props_canal/canal_bridge03c.mdl","Random Bridges","#",2,"","-1024.189,0,600.773","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge_b.mdl","Random Bridges","#",1,"","-330.895,0.039,124.673","",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge_b.mdl","Random Bridges","#",2,"","-522.855,0.251,124.671","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge.mdl","Random Bridges","#",1,"","-8.401,0,124.685","",""}) - asmlib.InsertRecord("PIECES", {"models/props_combine/combine_bridge.mdl","Random Bridges","#",2,"","-320,0,124.685","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/bridge.mdl","Random Bridges","Karkar",1,"","62.07,-343.696,208.295","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/bridge.mdl","Random Bridges","Karkar",2,"","62.07,334.44,208.295","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/askari/bridge01_stlve.mdl","Random Bridges","Stlve",1,"","192,0,189.531","",""}) - asmlib.InsertRecord("PIECES", {"models/askari/bridge01_stlve.mdl","Random Bridges","Stlve",2,"","-192,0,189.531","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_2fort/bridgesupports001.mdl","Random Bridges","TF Support",1,"","448,0,-14.268","",""}) - asmlib.InsertRecord("PIECES", {"models/props_2fort/bridgesupports001.mdl","Random Bridges","TF Support",2,"","-448,0,-15.558","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props/tresslebridge.mdl","Random Bridges","#",1,"","374.246,-1.2345,24.849","",""}) - asmlib.InsertRecord("PIECES", {"models/props/tresslebridge.mdl","Random Bridges","#",2,"","-345.367,-1.2345,24.85","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge01.mdl","Random Bridges","#",1,"","0,68.767,14.898","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge01.mdl","Random Bridges","#",2,"","0,-70.316,14.898","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge02.mdl","Random Bridges","#",1,"","5.236,-13.396,11.976","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge02.mdl","Random Bridges","#",2,"","5.236,479.851,11.976","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge03.mdl","Random Bridges","#",1,"","1.436,-12.169,11.136","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge03.mdl","Random Bridges","#",2,"","1.436,480.851,11.136","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge04.mdl","Random Bridges","#",1,"","-2.253,-11.847,10.696","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_viaduct_event/underworld_bridge04.mdl","Random Bridges","#",2,"","-2.253,480.851,10.696","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly_broken_bstk.mdl","Random Bridges","#",1,"","-318.524,0,26.757","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly_broken_bstk.mdl","Random Bridges","#",2,"","244.523,0,3.55","",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly.mdl","Random Bridges","#",1,"","0,318.601,26.783","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/karkar/wooden_bridge_helly.mdl","Random Bridges","#",2,"","0,-240.814,2.85","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",2,"","0,64,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",3,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/90crossing.mdl","Ron's 2ft track pack","#",4,"","0,-64,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_end.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_2_end.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_end.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_end.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_pillar.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/bridges/bridge_pillar.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_2.mdl","Ron's 2ft track pack","Buffer SH2",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_2.mdl","Ron's 2ft track pack","Buffer SH2",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_3.mdl","Ron's 2ft track pack","Buffer SH3",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer_3.mdl","Ron's 2ft track pack","Buffer SH3",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/buffer.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_1.mdl","Ron's 2ft track pack","#",2,"","-391.846,-77.978,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_2.mdl","Ron's 2ft track pack","#",2,"","-439.352,-87.36,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_3.mdl","Ron's 2ft track pack","#",2,"","-486.814,-96.707,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_left_4.mdl","Ron's 2ft track pack","#",2,"","-532.889,-105.687,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_1.mdl","Ron's 2ft track pack","#",2,"","-391.846,77.978,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_2.mdl","Ron's 2ft track pack","#",2,"","-439.352,87.36,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_3.mdl","Ron's 2ft track pack","#",2,"","-486.814,96.707,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_225_right_4.mdl","Ron's 2ft track pack","#",2,"","-532.866,105.763,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_1.mdl","Ron's 2ft track pack","#",2,"","-724.122,-299.876,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_2.mdl","Ron's 2ft track pack","#",2,"","-811.77,-336.23,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_3.mdl","Ron's 2ft track pack","#",2,"","-899.503,-372.497,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_left_4.mdl","Ron's 2ft track pack","#",2,"","-987.115,-408.885,6.016","0,-135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_1.mdl","Ron's 2ft track pack","#",2,"","-724.122,299.876,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_2.mdl","Ron's 2ft track pack","#",2,"","-811.77,336.23,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_3.mdl","Ron's 2ft track pack","#",2,"","-899.503,372.497,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_45_right_4.mdl","Ron's 2ft track pack","#",2,"","-987.115,408.885,6.016","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/curve_90_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024_sided.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024_sided.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128_sided.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128_sided.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256_sided.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256_sided.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32_sided.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32_sided.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512_sided.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512_sided.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64_sided.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64_sided.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided_m.mdl","Ron's 2ft track pack","Embankment Bridge Sided Mirrored",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided_m.mdl","Ron's 2ft track pack","Embankment Bridge Sided Mirrored",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge_sided.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_bridge.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_1.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_2.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_2.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_3.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_3.mdl","Ron's 2ft track pack","#",2,"","-1272,-1272,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_4.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/embankment/embankment_curve_90_sided_m_4.mdl","Ron's 2ft track pack","#",2,"","-1396,-1396,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/left/junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/left/junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/left/junction.mdl","Ron's 2ft track pack","#",3,"","-77.994,391.842,6.016","0,112.5,0","r2ftp_junction_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/right/junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/right/junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/junctions/right/junction.mdl","Ron's 2ft track pack","#",3,"","77.994,391.842,6.016","0,67.5,0","r2ftp_junction_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_switched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_switched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_switched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,-77.994,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_unswitched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_unswitched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/left_unswitched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,-77.994,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/njunctions/n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_n_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_n_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/left/n_junction.mdl","Ron's 2ft track pack","#",3,"","-124,704,6.016","0,90,0","r2ftp_junction_n_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_n_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_n_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/n_junctions/right/n_junction.mdl","Ron's 2ft track pack","#",3,"","124,704,6.016","0,90,0","r2ftp_junction_n_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/passenger_crossing.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/passenger_crossing.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",1,"","512,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",2,"","512,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",3,"","-512,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_2_track.mdl","Ron's 2ft track pack","#",4,"","-512,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","512,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","512,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-512,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-512,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024_roof.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_bench.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256_roof.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",1,"","256,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",2,"","256,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",3,"","-256,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_2_track.mdl","Ron's 2ft track pack","#",4,"","-256,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","256,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","256,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-256,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-256,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512_roof.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp_roof.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_ramp.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_end.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","128,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","128,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-128,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-128,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp_roof.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_ramp.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",1,"","64,-124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",2,"","64,124,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",3,"","-64,124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof_2_track.mdl","Ron's 2ft track pack","#",4,"","-64,-124,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start_roof.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/station/platform_start.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_1.mdl","Ron's 2ft track pack","#",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 1024 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_1024_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 1024 Embankment Sided Mirrored 1",2,"","-1024,0,70.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_1.mdl","Ron's 2ft track pack","#",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 128 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_128_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 128 Embankment Sided Mirrored 1",2,"","-128,0,14.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_1.mdl","Ron's 2ft track pack","#",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 256 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_256_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 256 Embankment Sided Mirrored 1",2,"","-256,0,22.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_1.mdl","Ron's 2ft track pack","#",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 32 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_32_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 32 Embankment Sided Mirrored 1",2,"","-32,0,8.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_1.mdl","Ron's 2ft track pack","#",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 512 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_512_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 512 Embankment Sided Mirrored 1",2,"","-512,0,38.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 64 Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_64_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp 64 Embankment Sided Mirrored 1",2,"","-64,0,10.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_1.mdl","Ron's 2ft track pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_1.mdl","Ron's 2ft track pack","#",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_1.mdl","Ron's 2ft track pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_1.mdl","Ron's 2ft track pack","#",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp End Embankment Sided Mirrored 1",1,"","64,0,3.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_end_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp End Embankment Sided Mirrored 1",2,"","0,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_1.mdl","Ron's 2ft track pack","#",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp Start Embankment Sided Mirrored 1",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/ramps/ramp_start_embankment_sided_m_1.mdl","Ron's 2ft track pack","Ramp Start Embankment Sided Mirrored 1",2,"","-64,0,9.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/rerailer.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/rerailer.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_switched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_switched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_switched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,77.994,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_unswitched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_unswitched_1.mdl","Ron's 2ft track pack","#",2,"","-384,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/junctions/right_unswitched_1.mdl","Ron's 2ft track pack","#",3,"","-391.842,77.994,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_middle.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_middle.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_side.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing_side.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/road_crossings/road_crossing.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_left.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_left.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_right.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/curves/s_curve_right.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_switched.mdl","Ron's 2ft track pack","#",4,"","-320,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",4,"","-320,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_switched.mdl","Ron's 2ft track pack","#",4,"","-320,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-384,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/sjunctions/s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",4,"","-320,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",3,"","-124,704,6.016","0,90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/left/s_junction.mdl","Ron's 2ft track pack","#",4,"","-124,320,6.016","0,-90,0","r2ftp_junction_s_left"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",2,"","0,384,6.016","0,90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",3,"","124,704,6.016","0,90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/s_junctions/right/s_junction.mdl","Ron's 2ft track pack","#",4,"","124,320,6.016","0,-90,0","r2ftp_junction_s_right"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed_open_both.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed_open_left.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed_open_right.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/shed.mdl","Ron's 2ft track pack","#",1,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_128.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_128.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_256.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_256.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",1,"","16,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",2,"","16,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",3,"","-16,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32_2tracks.mdl","Ron's 2ft track pack","#",4,"","-16,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_320_junction.mdl","Ron's 2ft track pack","#",1,"","160,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_320_junction.mdl","Ron's 2ft track pack","#",2,"","-160,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_32.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_64.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/straight/straight_64.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_closed.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_closed.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_opened.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_barrier_opened.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_damaged.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/misc/track_damaged.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_grass.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_grass.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_street.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_1024_street.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_grass.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_grass.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_street.mdl","Ron's 2ft track pack","#",1,"","64,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_128_street.mdl","Ron's 2ft track pack","#",2,"","-64,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_grass.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_grass.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_street.mdl","Ron's 2ft track pack","#",1,"","128,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_256_street.mdl","Ron's 2ft track pack","#",2,"","-128,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_grass.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_grass.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_32_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_grass.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_grass.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_street.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_512_street.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_grass.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_grass.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_street.mdl","Ron's 2ft track pack","#",1,"","32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_64_street.mdl","Ron's 2ft track pack","#",2,"","-32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_grass.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_grass.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_buffer_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_grass.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_grass.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_street.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_1_street.mdl","Ron's 2ft track pack","#",2,"","-1024,-1024,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_grass.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_grass.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_street.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_curve_90_2_street.mdl","Ron's 2ft track pack","#",2,"","-1148,-1148,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_normal.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_normal.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_grass_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_n_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_normal_street.mdl","Ron's 2ft track pack","#",1,"","16,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_normal_street.mdl","Ron's 2ft track pack","#",2,"","-16,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_switched.mdl","Ron's 2ft track pack","#",4,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_left_unswitched.mdl","Ron's 2ft track pack","#",4,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_switched.mdl","Ron's 2ft track pack","#",4,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",2,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_s_junction_right_unswitched.mdl","Ron's 2ft track pack","#",4,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass_m.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass_m.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_station_grass.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_switched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/tram/tram_x_junction_unswitched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_big.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_big.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",1,"","96,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",2,"","0,96,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",3,"","-96,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",4,"","0,-96,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",5,"","32,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",6,"","0,32,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",7,"","-32,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow_base_90.mdl","Ron's 2ft track pack","#",8,"","0,-32,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow.mdl","Ron's 2ft track pack","#",1,"","0,32,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_narrow.mdl","Ron's 2ft track pack","#",2,"","0,-32,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",1,"","192,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",2,"","0,192,6.016","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",3,"","-192,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",4,"","0,-192,6.016","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",5,"","64,0,10.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",6,"","0,64,10.516","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",7,"","-64,0,10.516","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small_base_90.mdl","Ron's 2ft track pack","#",8,"","0,-64,10.516","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small.mdl","Ron's 2ft track pack","#",1,"","64,0,10.516","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/turntable/turntable_small.mdl","Ron's 2ft track pack","#",2,"","-64,0,10.516","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_1024.mdl","Ron's 2ft track pack","#",1,"","512,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_1024.mdl","Ron's 2ft track pack","#",2,"","-512,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_512.mdl","Ron's 2ft track pack","#",1,"","256,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/viaduct/viaduct_512.mdl","Ron's 2ft track pack","#",2,"","-256,0,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_switched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",1,"","0,-62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",2,"","0,62,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",3,"","-704,62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/xjunctions/x_junction_unswitched.mdl","Ron's 2ft track pack","#",4,"","-704,-62,6.016","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",1,"","62,0,6.016","0,-90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",2,"","62,704,6.016","0,90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",3,"","-62,704,6.016","0,90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/x_junctions/x_junction.mdl","Ron's 2ft track pack","#",4,"","-62,0,6.016","0,-90,0","r2ftp_junction_x"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_switched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_switched_1.mdl","Ron's 2ft track pack","#",2,"","-391.763031,78.046341,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_switched_1.mdl","Ron's 2ft track pack","#",3,"","-391.812866,-77.926048,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_unswitched_1.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_unswitched_1.mdl","Ron's 2ft track pack","#",2,"","-391.763031,78.046341,6.016","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/yjunction/y_junction_unswitched_1.mdl","Ron's 2ft track pack","#",3,"","-391.812866,-77.926048,6.016","0,-157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/y_junctions/y_junction.mdl","Ron's 2ft track pack","#",1,"","0,0,6.016","0,-90,0","r2ftp_junction_y"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/y_junctions/y_junction.mdl","Ron's 2ft track pack","#",2,"","77.969124,391.794891,6.016","0,67.5,0","r2ftp_junction_y"}) - asmlib.InsertRecord("PIECES", {"models/ron/2ft/luajunctions/y_junctions/y_junction.mdl","Ron's 2ft track pack","#",3,"","-77.969093,391.794952,6.016","0,112.5,0","r2ftp_junction_y"}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/1.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/1.mdl","Ron's Minitrain Props","#",2,"","-1,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/2.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/2.mdl","Ron's Minitrain Props","#",2,"","-2,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/4.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/4.mdl","Ron's Minitrain Props","#",2,"","-4,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/8.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/straight/8.mdl","Ron's Minitrain Props","#",2,"","-8,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/bridge.mdl","Ron's Minitrain Props","#",1,"","0,64,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/bridge.mdl","Ron's Minitrain Props","#",2,"","0,-64,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1024.mdl","Ron's Minitrain Props","#",1,"","0,512,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1024.mdl","Ron's Minitrain Props","#",2,"","0,-512,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_128.mdl","Ron's Minitrain Props","#",1,"","0,64,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_128.mdl","Ron's Minitrain Props","#",2,"","0,-64,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_16.mdl","Ron's Minitrain Props","#",1,"","0,8,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_16.mdl","Ron's Minitrain Props","#",2,"","0,-8,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1.mdl","Ron's Minitrain Props","#",1,"","0,0.5,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_1.mdl","Ron's Minitrain Props","#",2,"","0,-0.5,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_1.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_1.mdl","Ron's Minitrain Props","#",2,"","10.542684747187,53.001655382565,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_2.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_2.mdl","Ron's Minitrain Props","#",2,"","12.826298771848,64.482158353518,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_3.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_3.mdl","Ron's Minitrain Props","#",2,"","15.10991279651,75.96266132447,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_4.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_4.mdl","Ron's Minitrain Props","#",2,"","17.393526821171,87.443164295423,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_5.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_5.mdl","Ron's Minitrain Props","#",2,"","19.677140845832,98.923667266376,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_6.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_225_6.mdl","Ron's Minitrain Props","#",2,"","21.960754870494,110.40417023733,33","0,67.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_256.mdl","Ron's Minitrain Props","#",1,"","0,128,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_256.mdl","Ron's Minitrain Props","#",2,"","0,-128,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_2.mdl","Ron's Minitrain Props","#",1,"","0,1,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_2.mdl","Ron's Minitrain Props","#",2,"","0,-1,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_32.mdl","Ron's Minitrain Props","#",1,"","0,16,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_32.mdl","Ron's Minitrain Props","#",2,"","0,-16,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_1.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_1.mdl","Ron's Minitrain Props","#",2,"","40.565710805663,97.934289194337,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_2.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_2.mdl","Ron's Minitrain Props","#",2,"","49.352507370067,119.14749262993,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_3.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_3.mdl","Ron's Minitrain Props","#",2,"","58.13930393447,140.36069606553,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_4.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_4.mdl","Ron's Minitrain Props","#",2,"","66.926100498874,161.57389950113,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_5.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_5.mdl","Ron's Minitrain Props","#",2,"","75.712897063277,182.78710293672,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_6.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_45_6.mdl","Ron's Minitrain Props","#",2,"","84.499693627681,204.00030637232,33","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_4.mdl","Ron's Minitrain Props","#",1,"","0,2,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_4.mdl","Ron's Minitrain Props","#",2,"","0,-2,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_512.mdl","Ron's Minitrain Props","#",1,"","0,256,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_512.mdl","Ron's Minitrain Props","#",2,"","0,-256,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_64.mdl","Ron's Minitrain Props","#",1,"","0,32,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_64.mdl","Ron's Minitrain Props","#",2,"","0,-32,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_8.mdl","Ron's Minitrain Props","#",1,"","0,4,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/straight/elevation_8.mdl","Ron's Minitrain Props","#",2,"","0,-4,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_1.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_1.mdl","Ron's Minitrain Props","#",2,"","138.5,138.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_2.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_2.mdl","Ron's Minitrain Props","#",2,"","168.5,168.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_3.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_3.mdl","Ron's Minitrain Props","#",2,"","198.5,198.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_4.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_4.mdl","Ron's Minitrain Props","#",2,"","228.5,228.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_5.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_5.mdl","Ron's Minitrain Props","#",2,"","258.5,258.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_6.mdl","Ron's Minitrain Props","#",1,"","0,0,33","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/curves/elevation_90_6.mdl","Ron's Minitrain Props","#",2,"","288.5,288.5,33","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_128.mdl","Ron's Minitrain Props","#",1,"","0,0,1","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_128.mdl","Ron's Minitrain Props","#",2,"","0,144,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_256.mdl","Ron's Minitrain Props","#",1,"","0,0,1","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_256.mdl","Ron's Minitrain Props","#",2,"","0,272,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_512.mdl","Ron's Minitrain Props","#",1,"","0,0,1","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/elevations/ramps/elevation_ramp_512.mdl","Ron's Minitrain Props","#",2,"","0,528,33","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/scenery/tunnel_64.mdl","Ron's Minitrain Props","#",1,"","0,8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/minitrains/scenery/tunnel_64.mdl","Ron's Minitrain Props","#",2,"","-64,8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h03.mdl","SProps","225 Down",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h03.mdl","SProps","225 Down",2,"","-1264.663,0,-247.177","@22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h02.mdl","SProps","225 Up",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h02.mdl","SProps","225 Up",2,"","-1258.828,0,261.268","@-22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h01.mdl","SProps","Ramp",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_h01.mdl","SProps","Ramp",2,"","-2525.98,0,503.58","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/rerailer.mdl","SProps","#",1,"-1088.178,0,19.886","-1280.383,0,7.618","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s01.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s01.mdl","SProps","#",2,"","-162,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s02.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s02.mdl","SProps","#",2,"","-324,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s03.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s03.mdl","SProps","#",2,"","-486,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s04.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s04.mdl","SProps","#",2,"","-648,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s05.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s05.mdl","SProps","#",2,"","-1296.002,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s06.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_s06.mdl","SProps","#",2,"","-2592.002,0,7.624","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_01.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_01.mdl","SProps","#",2,"","-825,825,7.624","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_02.mdl","SProps","#",1,"","0,0,7.624","",""}) - asmlib.InsertRecord("PIECES", {"models/sprops/trans/train/track_t90_02.mdl","SProps","#",2,"","-1650,1650.0009765625,7.624","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_bumper.mdl","Shinji85's Rails","Bumper",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_csfix.mdl","Shinji85's Rails","Counter Switch Fix",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_csfix.mdl","Shinji85's Rails","Counter Switch Fix",2,"","-115.18847,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cs.mdl","Shinji85's Rails","Counter Switch",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cs.mdl","Shinji85's Rails","Counter Switch",2,"","-908.81165,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cxfix.mdl","Shinji85's Rails","Counter X Fix",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cxfix.mdl","Shinji85's Rails","Counter X Fix",2,"","-149.48648,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cx.mdl","Shinji85's Rails","Counter X",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cx.mdl","Shinji85's Rails","Counter X",2,"","-362.51361,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",2,"","-512,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",3,"","-256,-256,7.346","0,270,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_cross_4x.mdl","Shinji85's Rails","Cross 4x",4,"","-256,256,7.346","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_cc.mdl","Shinji85's Rails","Curve Cc",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_cc.mdl","Shinji85's Rails","Curve Cc",2,"","-966.40515,128,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r11.mdl","Shinji85's Rails","Curve R11",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r11.mdl","Shinji85's Rails","Curve R11",2,"","-1086.11584,449.88458,7.346","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r12.mdl","Shinji85's Rails","Curve R12",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r12.mdl","Shinji85's Rails","Curve R12",2,"","-905.09656,374.90414,7.346","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r13.mdl","Shinji85's Rails","Curve R13",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r13.mdl","Shinji85's Rails","Curve R13",2,"","-724.07727,299.92276,7.346","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r1.mdl","Shinji85's Rails","Curve R1",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r1.mdl","Shinji85's Rails","Curve R1",2,"","-1060.12341,139.56763,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r2.mdl","Shinji85's Rails","Curve R2",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r2.mdl","Shinji85's Rails","Curve R2",2,"","-993.86572,130.84471,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r3.mdl","Shinji85's Rails","Curve R3",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_curve_r3.mdl","Shinji85's Rails","Curve R3",2,"","-927.60797,122.1218,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",1,"","0,128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",2,"","-512,128,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",3,"","0,-128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_4x_crossing.mdl","Shinji85's Rails","Double 4x Crossing",4,"","-512,-128,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_bumper.mdl","Shinji85's Rails","Double Bumper",1,"","0,128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_double_bumper.mdl","Shinji85's Rails","Double Bumper",2,"","0,-128,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_l_switch.mdl","Shinji85's Rails","L Switch",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_l_switch.mdl","Shinji85's Rails","L Switch",2,"","-1024,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_l_switch.mdl","Shinji85's Rails","L Switch",3,"","-966.40515,-128,7.346","0,195,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_r_switch.mdl","Shinji85's Rails","R Switch",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_r_switch.mdl","Shinji85's Rails","R Switch",2,"","-1024,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_r_switch.mdl","Shinji85's Rails","R Switch",3,"","-966.40515,128,7.346","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_16x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_16x.mdl","Shinji85's Rails","#",2,"","-2048,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_1x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_1x.mdl","Shinji85's Rails","#",2,"","-128,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_2x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_2x.mdl","Shinji85's Rails","#",2,"","-256,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x_crossing.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x_crossing.mdl","Shinji85's Rails","#",2,"","-512,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_4x.mdl","Shinji85's Rails","#",2,"","-512,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_8x.mdl","Shinji85's Rails","#",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_8x.mdl","Shinji85's Rails","#",2,"","-1024,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",1,"","0,0,7.346","",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",2,"","-494.55,0,7.346","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",3,"","-33.129,-123.63866,7.346","0,-30,0",""}) - asmlib.InsertRecord("PIECES", {"models/shinji85/train/rail_x_junction.mdl","Shinji85's Rails","X Junction",4,"","-461.42175,123.63649,7.346","0,150,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/sw_buffer_stop.mdl","SligWolf's Minis","Buffer Stop",1,"","9.43,-8.011,-1.001","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_22-5.mdl","SligWolf's Minis","#",2,"","-53.014,2.013,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_45.mdl","SligWolf's Minis","#",2,"","-97.956,32.044,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_90.mdl","SligWolf's Minis","#",2,"","-138.51,130,1","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_big.mdl","SligWolf's Minis","#",2,"","-277.01,268.511,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_medium.mdl","SligWolf's Minis","#",2,"","-195.966,72.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_1_s_small.mdl","SligWolf's Minis","#",2,"","-105.994,12.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_22-5.mdl","SligWolf's Minis","#",2,"","-64.492,4.307,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_45.mdl","SligWolf's Minis","#",2,"","-119.15,40.853,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_90.mdl","SligWolf's Minis","#",2,"","-168.51,160,0.996","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_big.mdl","SligWolf's Minis","#",2,"","-336.99,328.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_medium.mdl","SligWolf's Minis","#",2,"","-237.966,90.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_2_s_small.mdl","SligWolf's Minis","#",2,"","-128.994,17.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_22-5.mdl","SligWolf's Minis","#",2,"","-75.965,6.599,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_45.mdl","SligWolf's Minis","#",2,"","-140.368,49.631,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_90.mdl","SligWolf's Minis","#",2,"","-198.51,190,0.995","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_big.mdl","SligWolf's Minis","#",2,"","-397.033,388.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_medium.mdl","SligWolf's Minis","#",2,"","-280.966,107.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_3_s_small.mdl","SligWolf's Minis","#",2,"","-151.994,21.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_22-5.mdl","SligWolf's Minis","#",2,"","-87.437,8.904,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_45.mdl","SligWolf's Minis","#",2,"","-161.567,58.434,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_90.mdl","SligWolf's Minis","#",2,"","-228.51,220,0.994","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_big.mdl","SligWolf's Minis","#",2,"","-456.991,448.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_medium.mdl","SligWolf's Minis","#",2,"","-322.966,125.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_4_s_small.mdl","SligWolf's Minis","#",2,"","-174.994,26.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_22-5.mdl","SligWolf's Minis","#",2,"","-98.913,11.205,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_45.mdl","SligWolf's Minis","#",2,"","-182.769,67.232,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_90.mdl","SligWolf's Minis","#",2,"","-258.51,250,0.994","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_big.mdl","SligWolf's Minis","#",2,"","-516.985,508.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_medium.mdl","SligWolf's Minis","#",2,"","-365.991,142.507,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_5_s_small.mdl","SligWolf's Minis","#",2,"","-197.994,31.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_22-5.mdl","SligWolf's Minis","#",1,"","-0.005,-8.505,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_22-5.mdl","SligWolf's Minis","#",2,"","-110.405,13.455,1","0,157.5,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_45.mdl","SligWolf's Minis","#",1,"","-0.004,-8.506,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_45.mdl","SligWolf's Minis","#",2,"","-203.983,76.019,1","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_90.mdl","SligWolf's Minis","#",1,"","-0.011,-8.5,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_90.mdl","SligWolf's Minis","#",2,"","-288.51,280,0.993","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_big.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_big.mdl","SligWolf's Minis","#",2,"","-576.985,568.521,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_medium.mdl","SligWolf's Minis","#",1,"","-0.007,-8.504,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_medium.mdl","SligWolf's Minis","#",2,"","-407.99,160.51,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_small.mdl","SligWolf's Minis","#",1,"","-0.007,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/curve_6_s_small.mdl","SligWolf's Minis","#",2,"","-220.994,35.497,1","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/rerailer.mdl","SligWolf's Minis","Rerailer Double",1,"","190,-0.005,1.02","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/rerailer.mdl","SligWolf's Minis","Rerailer Double",2,"","-190,-0.005,1.02","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_1024.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_1024.mdl","SligWolf's Minis","#",2,"","-1024,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_128.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_128.mdl","SligWolf's Minis","#",2,"","-128,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_16.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_16.mdl","SligWolf's Minis","#",2,"","-16,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_256.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_256.mdl","SligWolf's Minis","#",2,"","-256,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_32.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_32.mdl","SligWolf's Minis","#",2,"","-32,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_512.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_512.mdl","SligWolf's Minis","#",2,"","-512,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_64.mdl","SligWolf's Minis","#",1,"","0,-8.507,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_64.mdl","SligWolf's Minis","#",2,"","-64,-8.507,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_128.mdl","SligWolf's Minis","#",1,"","8,-8.508,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_128.mdl","SligWolf's Minis","#",2,"","-136,-8.506,33","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_256.mdl","SligWolf's Minis","#",1,"","8,-8.508,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_256.mdl","SligWolf's Minis","#",2,"","-264,-8.506,33","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_512.mdl","SligWolf's Minis","#",1,"","8,-8.508,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/straight_diagonal_512.mdl","SligWolf's Minis","#",2,"","-520,-8.506,33","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",1,"","16,21.512,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",2,"","-144,21.513,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",3,"","16,-8.515,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_left.mdl","SligWolf's Minis","#",4,"","-144,-8.514,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",1,"","16,21.512,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",2,"","-144,21.513,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",3,"","16,-8.515,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch_double_right.mdl","SligWolf's Minis","#",4,"","-144,-8.514,1","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch.mdl","SligWolf's Minis","Switch Y",1,"","-128,-23.512,0.998","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch.mdl","SligWolf's Minis","Switch Y",2,"","0,-8.509,1","",""}) - asmlib.InsertRecord("PIECES", {"models/minitrains/switch.mdl","SligWolf's Minis","Switch Y",3,"","-128,6.493,0.998","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_3.mdl","SligWolf's Rerailers","Long Double",1,"-258.249,-0.01,-0.002","219.415,0,-5.409","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_3.mdl","SligWolf's Rerailers","Long Double",2,"-3124.199,-0.01,2.997","-3601.869,-0.377,-5.416","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/sw_rerailer_3.mdl","SligWolf's Rerailers","Long Single",1,"-190.553,0,25.193","211.414,0.015,-5.395","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_2.mdl","SligWolf's Rerailers","Middle Double",1,"-265.554,0,3.031","219.412,0,-5.407","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_2.mdl","SligWolf's Rerailers","Middle Double",2,"-1882.106,0,3.031","-2367.072,0,-5.412","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/sw_rerailer_2.mdl","SligWolf's Rerailers","Middle Single",1,"-190.553,0,25.193","211.414,0.015,-5.395","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_1.mdl","SligWolf's Rerailers","Short Double",1,"-221.409,0,3.031","219.412,0,-5.411","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/rerailer/rerailer_1.mdl","SligWolf's Rerailers","Short Double",2,"-1103.05,0,0.009","-1543.871,0,-5.411","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/props_phx/trains/sw_rerailer_1.mdl","SligWolf's Rerailers","Short Single",1,"-190.553,0,25.193","211.414,0.015,-5.395","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrclooping.mdl","Sligwof's Railcar","Loop 180",1,"","810,-252.447,-0.005","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrclooping.mdl","Sligwof's Railcar","Loop 180",2,"","-809.999,136.997,-0.002","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcloopingspecial.mdl","Sligwof's Railcar","LoopSwitch 180",1,"","927.001,-194.403,-0.036","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcloopingspecial.mdl","Sligwof's Railcar","LoopSwitch 180",2,"","-809.999,137.003,350.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcloopingspecial.mdl","Sligwof's Railcar","LoopSwitch 180",3,"","-809.999,-527.972,350.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcramp.mdl","Sligwof's Railcar","Ramp 45",1,"","1000,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrcramp.mdl","Sligwof's Railcar","Ramp 45",2,"","-641.92,0,269.672","@-45,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrctraffic_lights.mdl","Sligwof's Railcar","Start Lights",1,"","0,-152.532,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrctraffic_lights.mdl","Sligwof's Railcar","Start Lights",2,"","0,152.554,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrctraffic_lights.mdl","Sligwof's Railcar","Start Lights",3,"","0,0,0.042","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccross.mdl","Sligwof's Railcar","Switcher Cross",1,"","500,0,0","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccross.mdl","Sligwof's Railcar","Switcher Cross",2,"","-2673,0,0","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",1,"","890,748.009,2.994","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",2,"","890,451.998,2.994","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",3,"","890,-452.001,2.974","",""}) - asmlib.InsertRecord("PIECES", {"models/swrcs/swrccurve001.mdl","Sligwof's Railcar","U-Turn",4,"","890,-748.027,2.974","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_i.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982285,-19.999878,83.837341","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.427399,-19.999756,5.118835","@52.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small_i.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982788,27.999634,83.837219","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.439621,28.012085,5.100098","@52.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982788,27.999634,83.837219","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow_small.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.439621,28.012085,5.100098","@52.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow.mdl","Sligwolf's Mini hover tracks","#",1,"","157.982285,-19.999878,83.837341","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_bow.mdl","Sligwolf's Mini hover tracks","#",2,"","-27.427399,-19.999756,5.118835","@52.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_i.mdl","Sligwolf's Mini hover tracks","#",1,"","0.000144,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_i.mdl","Sligwolf's Mini hover tracks","#",2,"","101.823288,53.82341,5.81","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s_i.mdl","Sligwolf's Mini hover tracks","#",1,"","203.999725,12.000124,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s_i.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000274,96.000008,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s.mdl","Sligwolf's Mini hover tracks","#",1,"","203.999496,-12.000174,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45_s.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000535,-95.999512,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45.mdl","Sligwolf's Mini hover tracks","#",1,"","0.000114,-95.999878,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_45.mdl","Sligwolf's Mini hover tracks","#",2,"","101.823112,-53.823227,5.81","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90_i.mdl","Sligwolf's Mini hover tracks","#",1,"","144,-47.999886,5.81","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90_i.mdl","Sligwolf's Mini hover tracks","#",2,"","6.1e-005,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90.mdl","Sligwolf's Mini hover tracks","#",1,"","144,47.999947,5.81","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_1_90.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000122,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_i.mdl","Sligwolf's Mini hover tracks","#",1,"","237.587646,-2.412163,5.81","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_i.mdl","Sligwolf's Mini hover tracks","#",2,"","6.1e-005,95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s_i.mdl","Sligwolf's Mini hover tracks","#",1,"","475.999908,-99.999756,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s_i.mdl","Sligwolf's Mini hover tracks","#",2,"","0.0001,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s.mdl","Sligwolf's Mini hover tracks","#",1,"","475.999939,99.999634,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45_s.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000108,-95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45.mdl","Sligwolf's Mini hover tracks","#",1,"","237.587524,2.412376,5.81","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_45.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000122,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90_i.mdl","Sligwolf's Mini hover tracks","#",1,"","335.999756,-239.999954,5.81","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90_i.mdl","Sligwolf's Mini hover tracks","#",2,"","6.9e-005,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90.mdl","Sligwolf's Mini hover tracks","#",1,"","335.999756,239.999954,5.81","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_2_90.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000122,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_i.mdl","Sligwolf's Mini hover tracks","#",1,"","373.352448,-58.647461,5.81","0,-45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_i.mdl","Sligwolf's Mini hover tracks","#",2,"","9.2e-005,96,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s_i.mdl","Sligwolf's Mini hover tracks","#",1,"","745.999939,-214,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s_i.mdl","Sligwolf's Mini hover tracks","#",2,"","9.2e-005,96,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s.mdl","Sligwolf's Mini hover tracks","#",1,"","745.999939,214.000244,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45_s.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000107,-95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45.mdl","Sligwolf's Mini hover tracks","#",1,"","373.352264,58.647644,5.81","0,45,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_45.mdl","Sligwolf's Mini hover tracks","#",2,"","0.000107,-95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90_i.mdl","Sligwolf's Mini hover tracks","#",1,"","9.2e-005,95.999756,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90_i.mdl","Sligwolf's Mini hover tracks","#",2,"","527.999756,-431.999878,5.81","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90.mdl","Sligwolf's Mini hover tracks","#",1,"","0.000107,-95.999756,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_curve_3_90.mdl","Sligwolf's Mini hover tracks","#",2,"","528,431.999939,5.81","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter_i.mdl","Sligwolf's Mini hover tracks","#",1,"","-25.99988,-19.999998,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter_i.mdl","Sligwolf's Mini hover tracks","#",2,"","198.190018,-20,229.959763","@-90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter.mdl","Sligwolf's Mini hover tracks","#",1,"","-25.99988,-19.999998,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop_quarter.mdl","Sligwolf's Mini hover tracks","#",2,"","198.190018,-20,229.959763","@-90,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1i.mdl","Sligwolf's Mini hover tracks","#",1,"","103.999817,-136,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1i.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999939,-32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1.mdl","Sligwolf's Mini hover tracks","#",1,"","104.00061,136.000061,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop1.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999908,32.000008,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2i.mdl","Sligwolf's Mini hover tracks","#",1,"","103.999939,-227.999084,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2i.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999878,-19.999634,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2.mdl","Sligwolf's Mini hover tracks","#",1,"","103.999878,227.998291,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_loop2.mdl","Sligwolf's Mini hover tracks","#",2,"","-103.999939,19.998779,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_i.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,-20,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_i.mdl","Sligwolf's Mini hover tracks","#",2,"","157.184906,-20,83.365128","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small_i.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,28,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small_i.mdl","Sligwolf's Mini hover tracks","#",2,"","157.1996,28,83.378784","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,28,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp_small.mdl","Sligwolf's Mini hover tracks","#",2,"","157.1996,28,83.378784","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp.mdl","Sligwolf's Mini hover tracks","#",1,"","-26,-20,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_ramp.mdl","Sligwolf's Mini hover tracks","#",2,"","157.184906,-20,83.365128","@-52.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_long.mdl","Sligwolf's Mini hover tracks","#",1,"","312,32,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_long.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_mid.mdl","Sligwolf's Mini hover tracks","#",1,"","208,32,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_mid.mdl","Sligwolf's Mini hover tracks","#",2,"","-208,32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_small.mdl","Sligwolf's Mini hover tracks","#",1,"","104,32,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x4_small.mdl","Sligwolf's Mini hover tracks","#",2,"","-104,32,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_long.mdl","Sligwolf's Mini hover tracks","#",1,"","312,-16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_long.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,-16,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_mid.mdl","Sligwolf's Mini hover tracks","#",1,"","208,-16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_mid.mdl","Sligwolf's Mini hover tracks","#",2,"","-208,-16,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_small.mdl","Sligwolf's Mini hover tracks","#",1,"","104,-16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_small.mdl","Sligwolf's Mini hover tracks","#",2,"","-104,-16,5.81","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter_i.mdl","Sligwolf's Mini hover tracks","#",1,"","104,-80,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,-30,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter_i.mdl","Sligwolf's Mini hover tracks","#",3,"","-312,-130,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter.mdl","Sligwolf's Mini hover tracks","#",1,"","-104,80,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter.mdl","Sligwolf's Mini hover tracks","#",2,"","312,30,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_splitter.mdl","Sligwolf's Mini hover tracks","#",3,"","312,130,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4_i.mdl","Sligwolf's Mini hover tracks","#",1,"","104,16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4.mdl","Sligwolf's Mini hover tracks","#",1,"","104,16,5.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_straight_x8_to_x4.mdl","Sligwolf's Mini hover tracks","#",2,"","-312,16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4_i.mdl","Sligwolf's Mini hover tracks","#",1,"","52,32,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,32,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4.mdl","Sligwolf's Mini hover tracks","#",1,"","52,32,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x4.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,32,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8_i.mdl","Sligwolf's Mini hover tracks","#",1,"","52,-16,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8_i.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,-16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8.mdl","Sligwolf's Mini hover tracks","#",1,"","52,-16,1.81","",""}) - asmlib.InsertRecord("PIECES", {"models/sligwolf/minihover/hover_trackend_x8.mdl","Sligwolf's Mini hover tracks","#",2,"","-52,-16,5.81","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_0apartments_0.mdl","StephenTechno's Buildings","Apartments 0",1,"","-268,612.001,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_0apartments_0.mdl","StephenTechno's Buildings","Apartments 0",2,"","-268,-612,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_1apartments_1.mdl","StephenTechno's Buildings","Apartments 1",1,"","-268,1248,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_1apartments_1.mdl","StephenTechno's Buildings","Apartments 1",2,"","-268,-1200,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_3apartments_3.mdl","StephenTechno's Buildings","Apartments 3",1,"","-268.008,574.913,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/housing/3_3apartments_3.mdl","StephenTechno's Buildings","Apartments 3",2,"","-268,-577,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_4bank.mdl","StephenTechno's Buildings","Bank",1,"","-268,504,2.031232","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_4bank.mdl","StephenTechno's Buildings","Bank",2,"","-268,-504,2.031232","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_1club_lgbt.mdl","StephenTechno's Buildings","Club Lgbt",1,"","-268,720,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_1club_lgbt.mdl","StephenTechno's Buildings","Club Lgbt",2,"","-268,-720,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_1garage.mdl","StephenTechno's Buildings","Garage",1,"","-268,698,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_1garage.mdl","StephenTechno's Buildings","Garage",2,"","-268,-598,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_a.mdl","StephenTechno's Buildings","Gas Station A",1,"","-268,604,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_a.mdl","StephenTechno's Buildings","Gas Station A",2,"","-268,-620,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_b.mdl","StephenTechno's Buildings","Gas Station B",1,"","-268,612,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_1gas_station_b.mdl","StephenTechno's Buildings","Gas Station B",2,"","-268,-612,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_3gunshop.mdl","StephenTechno's Buildings","Gunshop",1,"","-268,504.001,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_3gunshop.mdl","StephenTechno's Buildings","Gunshop",2,"","-268,-504,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16fence.mdl","StephenTechno's Buildings","#",1,"","-268,575,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16fence.mdl","StephenTechno's Buildings","#",2,"","-268,-577.002,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16.mdl","StephenTechno's Buildings","#",1,"","-268,575,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot16x16.mdl","StephenTechno's Buildings","#",2,"","-268,-577.002,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32fence.mdl","StephenTechno's Buildings","#",1,"","-268,1152.002,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32fence.mdl","StephenTechno's Buildings","#",2,"","-267.999,-1151.292,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32.mdl","StephenTechno's Buildings","#",1,"","-268,1152.002,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot32x32.mdl","StephenTechno's Buildings","#",2,"","-267.999,-1151.292,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8fence.mdl","StephenTechno's Buildings","#",1,"","-268,288,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8fence.mdl","StephenTechno's Buildings","#",2,"","-268,-287.996,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8.mdl","StephenTechno's Buildings","#",1,"","-268,288,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/emptylots/lot8x8.mdl","StephenTechno's Buildings","#",2,"","-268,-287.996,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_0office.mdl","StephenTechno's Buildings","Office",1,"","-267.986,616.053,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/schultz/stores/4_0office.mdl","StephenTechno's Buildings","Office",2,"","-268,-608,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_2pcshop.mdl","StephenTechno's Buildings","Pcshop",1,"","-268,432,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/stores/4_2pcshop.mdl","StephenTechno's Buildings","Pcshop",2,"","-268,-432,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_1road_dl_sdw_1x1.mdl","StephenTechno's Buildings","Road Dl Sdw 1x1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_1road_dl_sdw_1x1.mdl","StephenTechno's Buildings","Road Dl Sdw 1x1",2,"","-72,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_2road_dl_sdw_1x2.mdl","StephenTechno's Buildings","Road Dl Sdw 1x2",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_2road_dl_sdw_1x2.mdl","StephenTechno's Buildings","Road Dl Sdw 1x2",2,"","-144,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_10road_dl_sdw_1x32.mdl","StephenTechno's Buildings","Road Dl Sdw 1x32",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_10road_dl_sdw_1x32.mdl","StephenTechno's Buildings","Road Dl Sdw 1x32",2,"","-2304,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_3road_dl_sdw_1x3.mdl","StephenTechno's Buildings","Road Dl Sdw 1x3",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_3road_dl_sdw_1x3.mdl","StephenTechno's Buildings","Road Dl Sdw 1x3",2,"","-216,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_4road_dl_sdw_1x4.mdl","StephenTechno's Buildings","Road Dl Sdw 1x4",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_4road_dl_sdw_1x4.mdl","StephenTechno's Buildings","Road Dl Sdw 1x4",2,"","-288,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_5road_dl_sdw_1x5.mdl","StephenTechno's Buildings","Road Dl Sdw 1x5",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_5road_dl_sdw_1x5.mdl","StephenTechno's Buildings","Road Dl Sdw 1x5",2,"","-360,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_13road_intersection_2w.mdl","StephenTechno's Buildings","Road Intersection 2w",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_13road_intersection_2w.mdl","StephenTechno's Buildings","Road Intersection 2w",2,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl","StephenTechno's Buildings","Road Intersection 3w",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl","StephenTechno's Buildings","Road Intersection 3w",2,"","-340,340,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_12road_intersection_3w.mdl","StephenTechno's Buildings","Road Intersection 3w",3,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",2,"","-340,340,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",3,"","-680,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_11road_intersection_4w.mdl","StephenTechno's Buildings","Road Intersection 4w",4,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_14road_intersection_deadend.mdl","StephenTechno's Buildings","Road Intersection Deadend",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_15road_intersection_turn1.mdl","StephenTechno's Buildings","Road Intersection Turn1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_15road_intersection_turn1.mdl","StephenTechno's Buildings","Road Intersection Turn1",2,"","-340,-340,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_16road_intersection_turn2_16.mdl","StephenTechno's Buildings","Road Intersection Turn",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadswsidewalk/2_16road_intersection_turn2_16.mdl","StephenTechno's Buildings","Road Intersection Turn",2,"","-1564,1564,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",2,"","-1632,1152,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",3,"","-2304,1152,315.031616","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",4,"","-2976,1152,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",5,"","-2976.007,-1151.975,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",6,"","-2304,-1152,315.031616","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",7,"","-1632,-1152,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy_ramp_1.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 1",8,"","-4608,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",1,"","0,-671.994,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",2,"","0,0,315.031616","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",3,"","0,671.995,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_2.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp 2",4,"","-4608,0,315.031616","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",1,"","0,-671.994,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",2,"","0,0,315.031616","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",3,"","0,671.995,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_1roadsdwhwy_ramp_stop.mdl","StephenTechno's Buildings","Roadsdwhwy Ramp Stop",4,"","-4160,0,15.202","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_7roadsdwhwy_turn1.mdl","StephenTechno's Buildings","Roadsdwhwy Turn1",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_7roadsdwhwy_turn1.mdl","StephenTechno's Buildings","Roadsdwhwy Turn1",2,"","-1692,1692,316.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_4roadsdwhwy1x16.mdl","StephenTechno's Buildings","Roadsdwhwy1x16",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_4roadsdwhwy1x16.mdl","StephenTechno's Buildings","Roadsdwhwy1x16",2,"","-1152,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy1x1.mdl","StephenTechno's Buildings","Roadsdwhwy1x1",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_0roadsdwhwy1x1.mdl","StephenTechno's Buildings","Roadsdwhwy1x1",2,"","-72,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_5roadsdwhwy1x32.mdl","StephenTechno's Buildings","Roadsdwhwy1x32",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_5roadsdwhwy1x32.mdl","StephenTechno's Buildings","Roadsdwhwy1x32",2,"","-2304,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_2roadsdwhwy1x4.mdl","StephenTechno's Buildings","Roadsdwhwy1x4",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_2roadsdwhwy1x4.mdl","StephenTechno's Buildings","Roadsdwhwy1x4",2,"","-288,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_6roadsdwhwy1x64.mdl","StephenTechno's Buildings","Roadsdwhwy1x64",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_6roadsdwhwy1x64.mdl","StephenTechno's Buildings","Roadsdwhwy1x64",2,"","-4608,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_3roadsdwhwy1x8.mdl","StephenTechno's Buildings","Roadsdwhwy1x8",1,"","0,0,316.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_3roadsdwhwy1x8.mdl","StephenTechno's Buildings","Roadsdwhwy1x8",2,"","-576,0,316.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_10roadsdwhwybridge1x16.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x16",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_10roadsdwhwybridge1x16.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x16",2,"","-1152,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_11roadsdwhwybridge1x32.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x32",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_11roadsdwhwybridge1x32.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x32",2,"","-2304,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_8roadsdwhwybridge1x4.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x4",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_8roadsdwhwybridge1x4.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x4",2,"","-288,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_12roadsdwhwybridge1x64.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x64",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_12roadsdwhwybridge1x64.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x64",2,"","-4608,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_9roadsdwhwybridge1x8.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x8",1,"","0,0,60.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwhighway/1_9roadsdwhwybridge1x8.mdl","StephenTechno's Buildings","Roadsdwhwybridge1x8",2,"","-576,0,60.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_13roadsdwsidewalk_int_2way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 2way",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_13roadsdwsidewalk_int_2way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 2way",2,"","-540,540,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 3way",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 3way",2,"","-540,540,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_12roadsdwsidewalk_int_3way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 3way",3,"","-540,-540,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",2,"","-540,540,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",3,"","-1080,0,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_11roadsdwsidewalk_int_4way.mdl","StephenTechno's Buildings","Roadsdwsidewalk Int 4way",4,"","-540,-540,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_14roadsdwsidewalk_turn_1.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 1",1,"","0,-4,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_14roadsdwsidewalk_turn_1.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 1",2,"","-540,-544,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_15roadsdwsidewalk_turn_2.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 2",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_15roadsdwsidewalk_turn_2.mdl","StephenTechno's Buildings","Roadsdwsidewalk Turn 2",2,"","-1692,1692,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_9roadsdwsidewalk1x16.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x16",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_9roadsdwsidewalk1x16.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x16",2,"","-1152,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_1roadsdwsidewalk1x1.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x1",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_1roadsdwsidewalk1x1.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x1",2,"","-72,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_2roadsdwsidewalk1x2.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x2",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_2roadsdwsidewalk1x2.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x2",2,"","-144,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_10roadsdwsidewalk1x32.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x32",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_10roadsdwsidewalk1x32.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x32",2,"","-2304,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_3roadsdwsidewalk1x3.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x3",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_3roadsdwsidewalk1x3.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x3",2,"","-216,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_4roadsdwsidewalk1x4.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x4",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_4roadsdwsidewalk1x4.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x4",2,"","-288,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_5roadsdwsidewalk1x5.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x5",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_5roadsdwsidewalk1x5.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x5",2,"","-360,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_6roadsdwsidewalk1x6.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x6",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_6roadsdwsidewalk1x6.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x6",2,"","-432,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_7roadsdwsidewalk1x7.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x7",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_7roadsdwsidewalk1x7.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x7",2,"","-504,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_8roadsdwsidewalk1x8.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x8",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_8roadsdwsidewalk1x8.mdl","StephenTechno's Buildings","Roadsdwsidewalk1x8",2,"","-576,0,3.03125","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_0roadsdwsidewalktransfer.mdl","StephenTechno's Buildings","Roadsdwsidewalktransfer",1,"","0,0,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/roadsdwsidewalk/0_0roadsdwsidewalktransfer.mdl","StephenTechno's Buildings","Roadsdwsidewalktransfer",2,"","-376,0,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",1,"","0,-916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",2,"","0,916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",3,"","-340,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",4,"","-2172,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",5,"","-2512,916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",6,"","-2512,-916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",7,"","-2172,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_2skyscraper1.mdl","StephenTechno's Buildings","Skyscraper1",8,"","-340,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",1,"","0,-916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",2,"","0,916,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",3,"","-340,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",4,"","-2172,1256,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",5,"","-2512,916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",6,"","-2512,-916,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",7,"","-2172,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_3skyscraper2.mdl","StephenTechno's Buildings","Skyscraper2",8,"","-340,-1256,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",1,"","0,-1492,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",2,"","0,1492,3.03125","",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",3,"","-340,1832,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",4,"","-2172,1832,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",5,"","-2512,1492,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",6,"","-2512,-1492,3.03125","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",7,"","-2172,-1832,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/misc/6_4skyscraper3.mdl","StephenTechno's Buildings","Skyscraper3",8,"","-340,-1832,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_2stripclub.mdl","StephenTechno's Buildings","Stripclub",1,"","-268,736,3.03125","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/buildingspack/recreational/5_2stripclub.mdl","StephenTechno's Buildings","Stripclub",2,"","-268,-736,3.03125","0,-90,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024_support.mdl","Transrapid","#",1,"","512,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024_support.mdl","Transrapid","#",2,"","-512,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024.mdl","Transrapid","#",1,"","512,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_1024.mdl","Transrapid","#",2,"","-512,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_128.mdl","Transrapid","#",1,"","64,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_128.mdl","Transrapid","#",2,"","-64,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048_support.mdl","Transrapid","#",1,"","1024,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048_support.mdl","Transrapid","#",2,"","-1024,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048.mdl","Transrapid","#",1,"","1024,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_2048.mdl","Transrapid","#",2,"","-1024,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_256.mdl","Transrapid","#",1,"","128,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_256.mdl","Transrapid","#",2,"","-128,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096_support.mdl","Transrapid","#",1,"","2048,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096_support.mdl","Transrapid","#",2,"","-2048,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096.mdl","Transrapid","#",1,"","2048,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_4096.mdl","Transrapid","#",2,"","-2048,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_512.mdl","Transrapid","#",1,"","256,0,3.984","",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/track/straight/straight_512.mdl","Transrapid","#",2,"","-256,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/ron/maglev/support/support_a.mdl","Transrapid","#",1,"","0,0,3.984","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/funnel.mdl","XQM Ball Rails","#",1,"","2.206,0.003,4.282","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_left.mdl","XQM Ball Rails","#",1,"","13.7315,41.726,-0.968","0,22.5,-2.2585",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_left.mdl","XQM Ball Rails","#",2,"","-13.7315,-41.726,-0.968","0,-157.5,-2.2585",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_right.mdl","XQM Ball Rails","#",1,"","13.864,-41.787,-0.953","0,-22.5,2.433",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/loop_right.mdl","XQM Ball Rails","#",2,"","-13.562,41.789,-0.952","0,157.5,2.433",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_15.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_15.mdl","XQM Ball Rails","#",2,"","-20.245,-0.018,-4.13","@15,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_30.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_30.mdl","XQM Ball Rails","#",2,"","-32.078,0.022,-9.114","@30,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_45.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_45.mdl","XQM Ball Rails","#",2,"","-42.144,-0.011,-16.998","@45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_90.mdl","XQM Ball Rails","#",1,"","38,0.019,30.42","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_down_90.mdl","XQM Ball Rails","#",2,"","-30.418,-0.009,-37.98","@90,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_15.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_15.mdl","XQM Ball Rails","#",2,"","-15.521,0.014,-1.009","@-15,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_30.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_30.mdl","XQM Ball Rails","#",2,"","-22.871,-0.019,2.152","@-30,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_45.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_45.mdl","XQM Ball Rails","#",2,"","-29.149,0.006,7.109","@-45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_90.mdl","XQM Ball Rails","#",1,"","6.004,0.005,15.322","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/slope_up_90.mdl","XQM Ball Rails","#",2,"","-44.066,-0.011,65.001","@-90,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_16.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_16.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_1.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_1.mdl","XQM Ball Rails","#",2,"","-6,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_2.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_2.mdl","XQM Ball Rails","#",2,"","-18,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_4.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_4.mdl","XQM Ball Rails","#",2,"","-42,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_8.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/straight_8.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_16.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_16.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_1.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_1.mdl","XQM Ball Rails","#",2,"","-6,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_2.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_2.mdl","XQM Ball Rails","#",2,"","-18,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_4.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_4.mdl","XQM Ball Rails","#",2,"","-42,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_8.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/tunnel_8.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_15.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_15.mdl","XQM Ball Rails","#",2,"","-17.591,3.105,-2.25","0,165,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_180.mdl","XQM Ball Rails","#",1,"","52.789,44.753,-2.273","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_180.mdl","XQM Ball Rails","#",2,"","-52.808,44.743,-2.238","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_30.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_30.mdl","XQM Ball Rails","#",2,"","-28.676,7.705,-2.252","0,150,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_45.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_45.mdl","XQM Ball Rails","#",2,"","-38.2,15.001,-2.261","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_90.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/turn_90.mdl","XQM Ball Rails","#",2,"","-58.848,56.855,-2.255","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_left.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_left.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_right.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_45_right.mdl","XQM Ball Rails","#",2,"","-90,0,-2.25","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_left.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_left.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_right.mdl","XQM Ball Rails","#",1,"","6,0,-2.25","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/rails/twist_90_right.mdl","XQM Ball Rails","#",2,"","-186,0,-2.25","0,180,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_1.mdl","XQM Coaster","#",1,"","150.199,0.032,4.885","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_1.mdl","XQM Coaster","#",2,"","-150.168,-0.014,4.881","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_2.mdl","XQM Coaster","#",1,"","300.199,-0.011,4.895","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_2.mdl","XQM Coaster","#",2,"","-300.198,0.032,4.914","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_3.mdl","XQM Coaster","#",1,"","449.378,-0.025,4.893","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_3.mdl","XQM Coaster","#",2,"","-449.801,0.018,4.896","0,180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_4.mdl","XQM Coaster","#",1,"","599.802,-0.013,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_left_4.mdl","XQM Coaster","#",2,"","-600.198,-0.015,4.902","0,-180,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_1.mdl","XQM Coaster","#",1,"","149.7,-0.005,4.88","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_1.mdl","XQM Coaster","#",2,"","-149.7,0.024,4.865","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_2.mdl","XQM Coaster","#",1,"","299.79,-0.021,4.885","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_2.mdl","XQM Coaster","#",2,"","-299.79,0.007,4.862","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_3.mdl","XQM Coaster","#",1,"","449.8,-0.018,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_3.mdl","XQM Coaster","#",2,"","-449.802,-0.003,4.853","0,-180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_4.mdl","XQM Coaster","#",1,"","600.194,-0.017,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_start_right_4.mdl","XQM Coaster","#",2,"","-600.199,0.025,4.872","0,180,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_1.mdl","XQM Coaster","#",1,"","73.8,14.45,4.887","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_1.mdl","XQM Coaster","#",2,"","73.46,-372.816,4.902","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_2.mdl","XQM Coaster","#",1,"","146.8,28.715,4.888","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_2.mdl","XQM Coaster","#",2,"","147.376,-737.938,4.911","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_3.mdl","XQM Coaster","#",1,"","220.191,43.001,4.907","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_3.mdl","XQM Coaster","#",2,"","220.813,-1105.46,4.883","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_4.mdl","XQM Coaster","#",1,"","293.308,-1472.996,4.916","0,0,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_180_4.mdl","XQM Coaster","#",2,"","292.8,57.26,4.89","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_1.mdl","XQM Coaster","#",1,"","74.199,14.457,4.888","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_1.mdl","XQM Coaster","#",2,"","-63.081,-42.297,4.912","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_2.mdl","XQM Coaster","#",1,"","147.199,28.717,4.886","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_2.mdl","XQM Coaster","#",2,"","-124.087,-83.935,4.901","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_3.mdl","XQM Coaster","#",1,"","219.8,42.98,4.887","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_3.mdl","XQM Coaster","#",2,"","-185.808,-125.258,4.908","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_4.mdl","XQM Coaster","#",1,"","292.799,57.249,4.89","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_45_4.mdl","XQM Coaster","#",2,"","-247.727,-166.794,4.908","0,-135,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_1.mdl","XQM Coaster","#",1,"","73.8,14.448,4.895","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_1.mdl","XQM Coaster","#",2,"","-119.757,-178.862,4.909","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_2.mdl","XQM Coaster","#",1,"","147.2,28.719,4.887","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_2.mdl","XQM Coaster","#",2,"","-235.985,-355.128,4.904","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_3.mdl","XQM Coaster","#",1,"","220.199,42.985,4.89","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_3.mdl","XQM Coaster","#",2,"","-353.929,-531.719,4.91","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_4.mdl","XQM Coaster","#",1,"","292.79,57.259,4.881","0,0,45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/bank_turn_90_4.mdl","XQM Coaster","#",2,"","-471.864,-707.923,4.91","0,-90,-45",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_1.mdl","XQM Coaster","#",1,"","75.79,-0.013,-2.414","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_1.mdl","XQM Coaster","#",2,"","-70.806,0,26.58","@-22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_2.mdl","XQM Coaster","#",1,"","149.8,-0.013,-9.62","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_2.mdl","XQM Coaster","#",2,"","-141.814,0.004,48.442","@-22.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_3.mdl","XQM Coaster","#",1,"","225.199,-0.016,-16.814","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_3.mdl","XQM Coaster","#",2,"","-214.187,0.006,70.463","@-22.5,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_4.mdl","XQM Coaster","#",1,"","298.8,-0.013,-24.02","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_4.mdl","XQM Coaster","#",2,"","-285.799,0.019,92.158","@-22.5,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_1.mdl","XQM Coaster","#",1,"","-73.8,-0.013,11.999","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_1.mdl","XQM Coaster","#",2,"","72.814,-0.013,-16.992","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_2.mdl","XQM Coaster","#",1,"","-148.626,-0.013,19.51","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_2.mdl","XQM Coaster","#",2,"","134.806,-0.011,-36.762","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_3.mdl","XQM Coaster","#",1,"","-224.899,0.01,25.763","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_3.mdl","XQM Coaster","#",2,"","202.547,-0.014,-57.473","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_4.mdl","XQM Coaster","#",1,"","-300.319,0.017,32.11","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_225_down_4.mdl","XQM Coaster","#",2,"","268.6,0.052,-77.783","@22.5,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_1.mdl","XQM Coaster","#",1,"","74.8,-0.013,-9.758","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_1.mdl","XQM Coaster","#",2,"","-59.846,0.021,45.855","@-45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_2.mdl","XQM Coaster","#",1,"","-148.199,0.021,-24.085","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_2.mdl","XQM Coaster","#",2,"","121.828,-0.004,88.131","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_3.mdl","XQM Coaster","#",1,"","-221.204,0.005,-38.364","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_3.mdl","XQM Coaster","#",2,"","183.612,-0.018,129.084","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_4.mdl","XQM Coaster","#",1,"","-293.8,-0.013,-52.661","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_4.mdl","XQM Coaster","#",2,"","245.168,-0.007,170.857","@-45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_1.mdl","XQM Coaster","#",1,"","-71.199,-0.013,18.809","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_1.mdl","XQM Coaster","#",2,"","63.815,-0.021,-37.126","@45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_2.mdl","XQM Coaster","#",1,"","-144.8,-0.013,33.103","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_2.mdl","XQM Coaster","#",2,"","125.217,-0.014,-78.778","@45,0,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_3.mdl","XQM Coaster","#",1,"","217.199,-0.013,47.332","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_3.mdl","XQM Coaster","#",2,"","-187.587,0.003,-120.127","@45,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_4.mdl","XQM Coaster","#",1,"","290.79,-0.013,61.604","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_45_down_4.mdl","XQM Coaster","#",2,"","-249.142,0.017,-161.855","@45,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_1.mdl","XQM Coaster","#",1,"","75,-0.016,-9.757","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_1.mdl","XQM Coaster","#",2,"","-115.988,0.017,181.075","@-90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_2.mdl","XQM Coaster","#",1,"","-148.198,-0.013,-24.085","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_2.mdl","XQM Coaster","#",2,"","233.158,0.013,358.192","@-90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_3.mdl","XQM Coaster","#",1,"","-221.1,-0.013,-38.366","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_3.mdl","XQM Coaster","#",2,"","351.2,-0.013,533.582","@-90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_4.mdl","XQM Coaster","#",1,"","-293.701,-0.013,-52.661","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_4.mdl","XQM Coaster","#",2,"","468.482,-0.013,710.225","@-90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_1.mdl","XQM Coaster","#",1,"","-70.793,-0.038,18.807","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_1.mdl","XQM Coaster","#",2,"","119.415,-0.013,-171.482","@90,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_2.mdl","XQM Coaster","#",1,"","-144.804,-0.013,33.103","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_2.mdl","XQM Coaster","#",2,"","237.418,-0.013,-349.306","@90,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_3.mdl","XQM Coaster","#",1,"","217.199,-0.013,47.332","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_3.mdl","XQM Coaster","#",2,"","-355.101,0.01,-524.496","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_4.mdl","XQM Coaster","#",1,"","290.8,-0.013,61.604","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/slope_90_down_4.mdl","XQM Coaster","#",2,"","-473.228,-0.013,-701.956","@90,0,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_1.mdl","XQM Coaster","#",1,"","149.695,-0.02,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_1.mdl","XQM Coaster","#",2,"","-2249.721,0.014,4.888","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_2.mdl","XQM Coaster","#",1,"","1350.218,0.029,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_2.mdl","XQM Coaster","#",2,"","-3450.199,-0.009,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_3.mdl","XQM Coaster","#",1,"","2550,-0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_3.mdl","XQM Coaster","#",2,"","-4650.203,0.023,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_4.mdl","XQM Coaster","#",1,"","3749.804,-0.001,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_left_4.mdl","XQM Coaster","#",2,"","-5849.8,0.036,4.888","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_1.mdl","XQM Coaster","#",1,"","150,-0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_1.mdl","XQM Coaster","#",2,"","-2250,-0.013,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_3.mdl","XQM Coaster","#",1,"","2550.2,-0.012,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_3.mdl","XQM Coaster","#",2,"","-4650.14,-0.013,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_4.mdl","XQM Coaster","#",1,"","3749.79,-0.019,4.879","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_corkscrew_right_4.mdl","XQM Coaster","#",2,"","-5849.795,0.008,4.884","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_3.mdl","XQM Coaster","#",1,"","14.2,67.584,-279.931","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_3.mdl","XQM Coaster","#",2,"","-0.172,-67.619,-279.937","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_4.mdl","XQM Coaster","#",1,"","2.16,89.53,-307.495","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_full_loop_4.mdl","XQM Coaster","#",2,"","-18.191,-72.398,-307.642","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_1.mdl","XQM Coaster","#",1,"","150.079,-0.009,4.878","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_1.mdl","XQM Coaster","#",2,"","-1050.198,-0.036,4.877","0,180,-180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_2.mdl","XQM Coaster","#",1,"","299.8,-0.013,4.884","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_2.mdl","XQM Coaster","#",2,"","-2099.8,-0.013,4.883","0,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_3.mdl","XQM Coaster","#",1,"","449.801,-0.014,4.882","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_3.mdl","XQM Coaster","#",2,"","-3149.802,-0.028,4.871","0,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_4.mdl","XQM Coaster","#",1,"","599.801,-0.014,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_left_4.mdl","XQM Coaster","#",2,"","-4199.8,-0.013,4.881","0,-180,-180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_1.mdl","XQM Coaster","#",1,"","150.199,0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_1.mdl","XQM Coaster","#",2,"","-1050.199,-0.01,4.886","0,180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_2.mdl","XQM Coaster","#",1,"","1126.907,-0.013,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_2.mdl","XQM Coaster","#",2,"","-1272.492,-0.164,4.883","0,-180,-180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_3.mdl","XQM Coaster","#",1,"","1349.823,-0.012,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_3.mdl","XQM Coaster","#",2,"","-2249.7,-0.013,4.884","0,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_4.mdl","XQM Coaster","#",1,"","1950.199,-0.017,4.889","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_half_corkscrew_right_4.mdl","XQM Coaster","#",2,"","-2850.199,-0.047,4.88","0,-180,180",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_2.mdl","XQM Coaster","#",1,"","189.277,59.435,41.118","0,90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_2.mdl","XQM Coaster","#",2,"","-192.302,46.789,-17.492","@22.5,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_3.mdl","XQM Coaster","#",1,"","-285.755,-96.647,32.538","0,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_3.mdl","XQM Coaster","#",2,"","281.393,-79.204,-55.216","@22.5,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_4.mdl","XQM Coaster","#",1,"","322.424,-72.015,15.907","0,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_4.mdl","XQM Coaster","#",2,"","-419.735,-44.894,132.706","@-22.5,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_2.mdl","XQM Coaster","#",1,"","-207.841,30.414,100.219","@-22.5,-90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_2.mdl","XQM Coaster","#",2,"","-207.993,7.31,-17.474","@22.5,90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_3.mdl","XQM Coaster","#",1,"","281.359,-6.612,120.391","@-22.5,90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_3.mdl","XQM Coaster","#",2,"","281.371,28.004,-55.354","@22.5,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_4.mdl","XQM Coaster","#",1,"","322.609,52.146,251.028","0,90,-90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_helix_middle_full_4.mdl","XQM Coaster","#",2,"","322.431,5.79,15.895","0,-90,90",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_station.mdl","XQM Coaster","#",1,"","150.194,-0.045,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_station.mdl","XQM Coaster","#",2,"","-150.184,-0.045,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_2.mdl","XQM Coaster","#",1,"","149.8,36.553,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_2.mdl","XQM Coaster","#",2,"","-149.8,-36.54,4.886","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_3.mdl","XQM Coaster","#",1,"","225.159,36.552,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_3.mdl","XQM Coaster","#",2,"","-225.2,-36.559,4.886","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_4.mdl","XQM Coaster","#",1,"","299.8,36.623,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_left_4.mdl","XQM Coaster","#",2,"","-299.8,-36.6,4.886","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_2.mdl","XQM Coaster","#",1,"","150.189,-36.538,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_2.mdl","XQM Coaster","#",2,"","-150.199,36.554,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_3.mdl","XQM Coaster","#",1,"","225.199,-36.549,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_3.mdl","XQM Coaster","#",2,"","-225.099,36.55,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_4.mdl","XQM Coaster","#",1,"","300.2,-36.649,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/special_sturn_right_4.mdl","XQM Coaster","#",2,"","-300.195,36.561,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_1.mdl","XQM Coaster","#",1,"","74.802,-0.013,4.886","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_1.mdl","XQM Coaster","#",2,"","-74.803,-0.013,4.886","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_2.mdl","XQM Coaster","#",1,"","149.805,-0.013,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_2.mdl","XQM Coaster","#",2,"","-149.805,-0.013,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_3.mdl","XQM Coaster","#",1,"","225.206,-0.013,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_3.mdl","XQM Coaster","#",2,"","-225.196,-0.013,4.887","0,-180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_4.mdl","XQM Coaster","#",1,"","300.164,-0.013,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/straight_4.mdl","XQM Coaster","#",2,"","-300.189,-0.013,4.887","0,180,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_1.mdl","XQM Coaster","#",1,"","72.8,367.527,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_1.mdl","XQM Coaster","#",2,"","72.8,-14.286,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_2.mdl","XQM Coaster","#",1,"","146.198,-28.561,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_2.mdl","XQM Coaster","#",2,"","146.041,735.053,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_3.mdl","XQM Coaster","#",1,"","218.767,-42.833,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_3.mdl","XQM Coaster","#",2,"","218.767,1100.169,4.91","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_4.mdl","XQM Coaster","#",1,"","292.283,-57.102,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_4.mdl","XQM Coaster","#",2,"","292.283,1468.9,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_2.mdl","XQM Coaster","#",1,"","93.769,96.842,4.9","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_2.mdl","XQM Coaster","#",2,"","-93.912,96.841,4.9","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_3.mdl","XQM Coaster","#",1,"","138.58,144.2,4.906","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_3.mdl","XQM Coaster","#",2,"","-142.846,144.192,4.888","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_4.mdl","XQM Coaster","#",1,"","184.588,191.8,4.905","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_180_tight_4.mdl","XQM Coaster","#",2,"","-190.323,191.8,4.905","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_1.mdl","XQM Coaster","#",1,"","73.232,-14.287,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_1.mdl","XQM Coaster","#",2,"","-62.119,41.771,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_2.mdl","XQM Coaster","#",1,"","145.801,-28.557,4.893","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_2.mdl","XQM Coaster","#",2,"","-123.848,83.091,4.921","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_3.mdl","XQM Coaster","#",1,"","218.8,-42.829,4.899","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_3.mdl","XQM Coaster","#",2,"","-184.844,124.707,4.88","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_4.mdl","XQM Coaster","#",1,"","292.197,-57.102,4.896","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_45_4.mdl","XQM Coaster","#",2,"","-246.823,166.305,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_1.mdl","XQM Coaster","#",1,"","73.199,-14.286,4.894","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_1.mdl","XQM Coaster","#",2,"","-117.904,176.785,4.888","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_2.mdl","XQM Coaster","#",1,"","145.748,-28.566,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_2.mdl","XQM Coaster","#",2,"","-235.851,352.965,4.883","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_3.mdl","XQM Coaster","#",1,"","219.199,-42.829,4.9","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_3.mdl","XQM Coaster","#",2,"","-352.072,529.25,4.888","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_4.mdl","XQM Coaster","#",1,"","292.695,-57.102,4.897","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_4.mdl","XQM Coaster","#",2,"","-470.379,706.175,4.887","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_1.mdl","XQM Coaster","#",1,"","68.201,-27.47,4.907","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_1.mdl","XQM Coaster","#",2,"","-27.469,68.408,4.907","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_2.mdl","XQM Coaster","#",1,"","134.784,-54.932,4.883","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_2.mdl","XQM Coaster","#",2,"","-54.9,134.79,4.908","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_3.mdl","XQM Coaster","#",1,"","203.169,-82.386,4.885","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_3.mdl","XQM Coaster","#",2,"","-82.342,203.198,4.884","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_4.mdl","XQM Coaster","#",1,"","270.8,-109.856,4.889","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_90_tight_4.mdl","XQM Coaster","#",2,"","-109.812,270.799,4.89","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_1.mdl","XQM Coaster","#",1,"","61.949,-171.786,-85.113","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_1.mdl","XQM Coaster","#",2,"","61.849,210.026,94.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_2.mdl","XQM Coaster","#",1,"","145.79,-377.307,-51.364","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_2.mdl","XQM Coaster","#",2,"","145.64,386.277,128.636","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_3.mdl","XQM Coaster","#",1,"","219.186,-560.329,-73.863","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_3.mdl","XQM Coaster","#",2,"","219.938,582.673,106.137","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_4.mdl","XQM Coaster","#",1,"","292.682,-57.062,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_180_4.mdl","XQM Coaster","#",2,"","292.882,1468.926,184.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_1.mdl","XQM Coaster","#",1,"","73.214,-14.287,4.889","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_1.mdl","XQM Coaster","#",2,"","-62.103,41.809,49.893","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_2.mdl","XQM Coaster","#",1,"","145.789,-28.557,4.888","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_2.mdl","XQM Coaster","#",2,"","-123.816,83.09,49.885","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_3.mdl","XQM Coaster","#",1,"","218.817,-42.829,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_3.mdl","XQM Coaster","#",2,"","-184.823,124.712,49.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_4.mdl","XQM Coaster","#",1,"","292.295,-57.102,4.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_45_4.mdl","XQM Coaster","#",2,"","-246.825,166.303,49.887","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_1.mdl","XQM Coaster","#",1,"","151.949,-115.536,-28.863","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_1.mdl","XQM Coaster","#",2,"","-39.186,75.539,61.137","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_2.mdl","XQM Coaster","#",1,"","247.052,-129.807,-17.611","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_2.mdl","XQM Coaster","#",2,"","-134.631,251.731,72.387","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_3.mdl","XQM Coaster","#",1,"","342.55,-166.589,-6.356","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_3.mdl","XQM Coaster","#",2,"","-228.353,405.104,83.627","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_4.mdl","XQM Coaster","#",1,"","461.445,-180.852,-6.363","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_90_4.mdl","XQM Coaster","#",2,"","-301.622,582.445,83.635","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_1.mdl","XQM Coaster","#",1,"","73.2,-149.286,128.637","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_1.mdl","XQM Coaster","#",2,"","73.099,232.527,-51.363","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_2.mdl","XQM Coaster","#",1,"","145.8,-287.306,117.387","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_2.mdl","XQM Coaster","#",2,"","145.6,476.307,-62.612","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_3.mdl","XQM Coaster","#",1,"","219.196,-391.579,117.387","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_3.mdl","XQM Coaster","#",2,"","219.948,751.399,-62.61","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_4.mdl","XQM Coaster","#",1,"","292.681,-630.852,117.391","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_180_4.mdl","XQM Coaster","#",2,"","292.833,895.14,-62.613","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_1.mdl","XQM Coaster","#",1,"","73.199,-14.286,49.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_1.mdl","XQM Coaster","#",2,"","-62.097,41.783,4.886","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_2.mdl","XQM Coaster","#",1,"","145.79,-28.558,49.879","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_2.mdl","XQM Coaster","#",2,"","-123.833,83.088,4.892","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_3.mdl","XQM Coaster","#",1,"","219.197,-42.829,49.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_3.mdl","XQM Coaster","#",2,"","-185.095,124.99,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_4.mdl","XQM Coaster","#",1,"","292.695,-57.102,49.887","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_45_4.mdl","XQM Coaster","#",2,"","-247.123,166.602,4.888","0,135,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_1.mdl","XQM Coaster","#",1,"","128.858,-14.281,72.387","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_1.mdl","XQM Coaster","#",2,"","-61.682,176.749,-17.61","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_2.mdl","XQM Coaster","#",1,"","179.55,-28.557,61.136","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_2.mdl","XQM Coaster","#",2,"","-202.131,352.976,-28.864","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_3.mdl","XQM Coaster","#",1,"","241.3,-42.829,61.136","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_3.mdl","XQM Coaster","#",2,"","-329.578,528.859,-28.864","0,90,0",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_4.mdl","XQM Coaster","#",1,"","292.296,-57.102,94.89","",""}) - asmlib.InsertRecord("PIECES", {"models/xqm/coastertrack/turn_slope_down_90_4.mdl","XQM Coaster","#",2,"","-470.372,705.791,4.886","0,90,0",""}) diff --git a/data/trackassembly/exp/z_autorun_[anyone_s_horrible_trackpack].txt b/data/trackassembly/exp/z_autorun_[anyone_s_horrible_trackpack].txt deleted file mode 100644 index eec0f4e1..00000000 --- a/data/trackassembly/exp/z_autorun_[anyone_s_horrible_trackpack].txt +++ /dev/null @@ -1,373 +0,0 @@ ---[[ - * The purpose of this Lua file is to add your track pack pieces to the - * track assembly tool, so they can appear in the tool selection menu. - * Why the name starts with /z/ you may ask. When Gmod loads the game - * it goes trough all the Lua addons alphabetically. - * That means your file name ( The file you are reading right now ) - * must be greater alphabetically than /trackasmlib/, so the API of the - * module can be loaded before you can use it like seen below. -]]-- - --- Local reference to the module. -local asmlib = trackasmlib - --- Change this to your addon name. -local myAddon = "Anyone's Horrible Trackpack" -- Your addon name goes here - ---[[ - * Change this if you want to use different in-game type - * You can also use multiple types myType1, myType2, - * myType3, ... myType/n when your addon contains - * multiple model packs. -]]-- -local myType = myAddon -- The type your addon resides in the tool with - ---[[ - * For actually produce an error you can replace the /print/ - * statement with one of following API calls: - * http://wiki.garrysmod.com/page/Global/error - * http://wiki.garrysmod.com/page/Global/Error - * http://wiki.garrysmod.com/page/Global/ErrorNoHalt -]] -local myError = ErrorNoHalt - --- This is used for addon relation prefix. Fingers away from it -local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix - --- This is the script path. It tells TA who wants to add these models --- Do not touch this also, it is used for debugging -local myScript = tostring(debug.getinfo(1).source or "N/A") - myScript = "@"..myScript:gsub("^%W+", ""):gsub("\\","/") ---[[ - * This function defines what happens when there is an error present - * Usually you can tell Gmod that you want it to generate an error - * and throw the message to the log also. In this case you will not - * have to change the function name in lots of places - * when you need it to do something else. ---]] -local function myThrowError(vMesg) - local sMesg = tostring(vMesg) -- Make sure the message is string - if(asmlib) then asmlib.LogInstance(sMesg) end -- Output the message into the logs - myError(myScript.." > ("..myAddon.."): "..sMesg) -- Generate an error in the console ( optional ) -end - -if(asmlib) then - -- Store a reference to disable symbol - local gsMissDB = asmlib.GetOpVar("MISS_NOSQL") - local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU") - local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE") - local gsFormPF = asmlib.GetOpVar("FORM_PREFIXDSV") - - -- This is the path to your DSV - local myDsv = asmlib.GetOpVar("DIRPATH_BAS").. - asmlib.GetOpVar("DIRPATH_DSV").. - gsFormPF:format(myPrefix, gsToolPF.."PIECES") - - --[[ - * This flag is used when the track pieces list needs to be processed. - * It generally represents the locking file persistence flag. It is - * bound to finding a "PIECES" DSV external database for the prefix - * of your addon. You can use it for boolean value deciding whenever - * or not to run certain events. For example you can stop exporting - * your local database every time Gmod loads, but then the user will - * skip the available updates of your addon until he/she deletes the DSVs. - ]]-- - local myFlag = file.Exists(myDsv, "DATA") - - -- Tell TA what custom script we just called don't touch it - asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}") - - --[[ - * Register the addon to the workshop ID list. Apply the ID of your addon here! - * This is needed so TA user can open GUI to your addon webpage. - * Open your workshop addon with any brawser then copy the visited URL - * https://steamcommunity.com/sharedfiles/filedetails/?id=287012681 - * This URL is used as an example obtained from the TA workshop link - * You only need the number at the end. Write it down as a string below. - ]] - asmlib.WorkshopID(myAddon , "2194528273") - - --[[ - * Register the addon to the auto-load prefix list when the - * PIECES file is missing. The auto-load list is located in - * (/garrysmod/data/trackassembly/set/trackasmlib_dsv.txt) - * a.k.a the DATA folder of Garry's mod. - * - * @bSuccess = RegisterDSV(sProg, sPref, sDelim) - * sProg > The program which registered the DSV - * sPref > The external data prefix to be added ( default instance prefix ) - * sDelim > The delimiter to be used for processing ( default tab ) - * bSkip > Skip addition for the DSV prefix if exists ( default `false` ) - ]]-- - asmlib.LogInstance("RegisterDSV start <"..myPrefix..">") - if(myFlag) then -- Your DSV must be registered only once when loading for the first time - asmlib.LogInstance("RegisterDSV skip <"..myPrefix..">") - else -- If the locking file is not located that means this is the first run of your script - if(not asmlib.RegisterDSV(myScript, myPrefix)) then -- Register the DSV prefix and check for error - myThrowError("Failed to register DSV") -- Throw the error if fails - end -- Third argument is the delimiter. The default tab is used - asmlib.LogInstance("RegisterDSV done <"..myPrefix..">") - end - - --[[ - * This is used if you want to make internal categories for your addon - * You must make a function as a string under the hash of your addon - * The function must take only one argument and that is the model - * For every sub-category of your track pieces, you must return a table - * with that much elements or return a /nil/ value to add the piece to - * the root of your branch. You can also return a second value if you - * want to override the track piece name. If you need to use categories - * for multiple track types, just put their hashes in the table below - * and make every track point to its dedicated category handler. - ]]-- - local myCategory = { - [myType] = {Txt = [[function(m) - local n = m:gsub("models/anytracks/","") - local r = n:match("^%a+"); n = n:gsub("%.mdl","") - n = n:gsub(r, ""):sub(2, -1); return r, n end - ]]} - } - - --[[ - * This logic statement is needed for reporting the error in the console if the - * process fails. - * - @ bSuccess = ExportCategory(nInd, tData, sPref) - * nInd > The index equal indent format to be stored with ( generally = 3 ) - * tData > The category functional definition you want to use to divide your stuff with - * sPref > An export file custom prefix. For synchronizing - * it must be related to your addon ( default is instance prefix ) - ]]-- - asmlib.LogInstance("ExportCategory start <"..myPrefix..">") - if(CLIENT) then -- Category handling is client side only - if(not asmlib.IsEmpty(myCategory)) then - if(not asmlib.ExportCategory(3, myCategory, myPrefix)) then - myThrowError("Failed to synchronize category") - end; asmlib.LogInstance("ExportCategory done <"..myPrefix..">") - else asmlib.LogInstance("ExportCategory skip <"..myPrefix..">") end - else asmlib.LogInstance("ExportCategory server <"..myPrefix..">") end - - --[[ - * Create a table and populate it as shown below - * In the square brackets goes your MODEL, - * and then for every active point, you must have one array of - * strings, where the elements match the following data settings. - * You can use the disable event /#/ to make TA auto-fill - * the value provided and you can also add multiple track types myType[1-n]. - * If you need to use piece origin/angle with model attachment, you must use - * the attachment extraction event /!/. The model attachment format is - * /!/ and it depends what attachment name you gave it when you - * created the model. If you need TA to extract the origin/angle from an attachment named - * /test/ for example, you just need to put the string /!test/ in the origin/angle column for that model. - * {MODEL, TYPE, NAME, LINEID, POINT, ORIGIN, ANGLE, CLASS} - * MODEL > This string contains the path to your /*.mdl/ file. It is mandatory and - * taken in pairs with LINEID, it forms the unique identifier of every record. - * When used in /DSV/ mode ( like seen below ) is is used as a hash index. - * TYPE > This string is the name of the type your stuff will reside in the panel. - * Disabling this, makes it use the value of the /DEFAULT_TYPE/ variable. - * If it is empty uses the string /TYPE/, so make sure you fill this. - * NAME > This is the name of your track piece. Put /#/ here to be auto-generated from - * the model ( from the last slash to the file extension ). - * LINEID > This is the ID of the point that can be selected for building. They must be - * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. - * Use that to swap the active points around by only moving the desired row up or down. - * For the example table definition below, the line ID in the database will be the same. - * POINT > This is the local position vector that TA searches and selects the related - * ORIGIN for. An empty string is treated as taking the ORIGIN. - * Disabling this using the disable event makes it hidden when the active point is searched for - * ORIGIN > This is the origin relative to which the next track piece position is calculated - * An empty string is treated as {0,0,0}. Disabling this makes it non-selectable by the holder - * You can also fill it with attachment event /!/ followed by your attachment name. - * ANGLE > This is the angle relative to which the forward and up vectors are calculated. - * An empty string is treated as {0,0,0}. Disabling this also makes it use {0,0,0} - * You can also fill it with attachment event /!/ followed by your attachment name. - * CLASS > This string is populated up when your entity class is not /prop_physics/ but something else - * used by ents.Create of the gmod ents API library. Keep this empty if your stuff is a normal prop. - ]]-- - local myPieces = { - ["models/anytracks/straight/hs_32.mdl"] = { - {myType, "Hs 32", gsSymOff, " 30,0,4", "0, 16,4", "0, 90,0", gsMissDB}, - {myType, "Hs 32", gsSymOff, "-30,0,4", "0,-16,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_64.mdl"] = { - {myType, "Hs 64", gsSymOff, gsMissDB, "0, 32,4", "0, 90,0", gsMissDB}, - {myType, "Hs 64", gsSymOff, gsMissDB, "0,-32,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_128.mdl"] = { - {myType, "Hs 128", gsSymOff, gsMissDB, "0, 64,4", "0, 90,0", gsMissDB}, - {myType, "Hs 128", gsSymOff, gsMissDB, "0,-64,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_256.mdl"] = { - {myType, "Hs 256", gsSymOff, gsMissDB, "0, 128,4", "0, 90,0", gsMissDB}, - {myType, "Hs 256", gsSymOff, gsMissDB, "0,-128,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_512.mdl"] = { - {myType, "Hs 512", gsSymOff, gsMissDB, "0, 256,4", "0, 90,0", gsMissDB}, - {myType, "Hs 512", gsSymOff, gsMissDB, "0,-256,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_1024.mdl"] = { - {myType, "Hs 1024", gsSymOff, gsMissDB, "0, 512,4", "0, 90,0", gsMissDB}, - {myType, "Hs 1024", gsSymOff, gsMissDB, "0,-512,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_2048.mdl"] = { - {myType, "Hs 2048", gsSymOff, gsMissDB, "0, 1024,4", "0, 90,0", gsMissDB}, - {myType, "Hs 2048", gsSymOff, gsMissDB, "0,-1024,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_4096.mdl"] = { - {myType, "Hs 4096", gsSymOff, gsMissDB, "0, 2048,4", "0, 90,0", gsMissDB}, - {myType, "Hs 4096", gsSymOff, gsMissDB, "0,-2048,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/hs_8192.mdl"] = { - {myType, "Hs 8192", gsSymOff, gsMissDB, "0, 4096,4", "0, 90,0", gsMissDB}, - {myType, "Hs 8192", gsSymOff, gsMissDB, "0,-4096,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_32.mdl"] = { - {myType, "S 32", gsSymOff, " 30,0,4", "0, 16,4", "0, 90,0", gsMissDB}, - {myType, "S 32", gsSymOff, "-30,0,4", "0,-16,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_64.mdl"] = { - {myType, "S 64", gsSymOff, gsMissDB, "0, 32,4", "0, 90,0", gsMissDB}, - {myType, "S 64", gsSymOff, gsMissDB, "0,-32,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_128.mdl"] = { - {myType, "S 128", gsSymOff, gsMissDB, "0, 64,4", "0, 90,0", gsMissDB}, - {myType, "S 128", gsSymOff, gsMissDB, "0,-64,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_256.mdl"] = { - {myType, "S 256", gsSymOff, gsMissDB, "0, 128,4", "0, 90,0", gsMissDB}, - {myType, "S 256", gsSymOff, gsMissDB, "0,-128,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_512.mdl"] = { - {myType, "S 512", gsSymOff, gsMissDB, "0, 256,4", "0, 90,0", gsMissDB}, - {myType, "S 512", gsSymOff, gsMissDB, "0,-256,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_1024.mdl"] = { - {myType, "S 1024", gsSymOff, gsMissDB, "0, 512,4", "0, 90,0", gsMissDB}, - {myType, "S 1024", gsSymOff, gsMissDB, "0,-512,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_2048.mdl"] = { - {myType, "S 2048", gsSymOff, gsMissDB, "0, 1024,4", "0, 90,0", gsMissDB}, - {myType, "S 2048", gsSymOff, gsMissDB, "0,-1024,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_4096.mdl"] = { - {myType, "S 4096", gsSymOff, gsMissDB, "0, 2048,4", "0, 90,0", gsMissDB}, - {myType, "S 4096", gsSymOff, gsMissDB, "0,-2048,4", "0,-90,0", gsMissDB} - }, - ["models/anytracks/straight/s_8192.mdl"] = { - {myType, "S 8192", gsSymOff, gsMissDB, "0, 4096,4", "0, 90,0", gsMissDB}, - {myType, "S 8192", gsSymOff, gsMissDB, "0,-4096,4", "0,-90,0", gsMissDB} - } - } - - --[[ - * This logic statement is needed for reporting the error in the console if the - * process fails. - * - @ bSuccess = SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) - * sTable > The table you want to sync - * tData > A data table like the one described above - * bRepl > If set to /true/, makes the API replace the repeating models with - these of your addon. This is nice when you are constantly updating your track packs - If set to /false/ keeps the current model in the - database and ignores yours if they are the same file. - * sPref > An export file custom prefix. For synchronizing it must be related to your addon - * sDelim > The delimiter used by the server/client ( default is a tab symbol ) - * - @ bSuccess = TranslateDSV(sTable, sPref, sDelim) - * sTable > The table you want to translate to Lua script - * sPref > An export file custom prefix. For synchronizing it must be related to your addon - * sDelim > The delimiter used by the server/client ( default is a tab symbol ) - ]]-- - if(not asmlib.IsEmpty(myPieces)) then - asmlib.LogInstance("SynchronizeDSV start <"..myPrefix..">") - if(not asmlib.SynchronizeDSV("PIECES", myPieces, true, myPrefix)) then - myThrowError("Failed to synchronize track pieces") - else -- You are saving me from all the work for manually generating these - asmlib.LogInstance("TranslateDSV start <"..myPrefix..">") - if(not asmlib.TranslateDSV("PIECES", myPrefix)) then - myThrowError("Failed to translate DSV into Lua") end - asmlib.LogInstance("TranslateDSV done <"..myPrefix..">") - end -- Now we have Lua inserts and DSV - end - - --[[ - * Create a table and populate it as shown below - * In the square brackets goes your MODELBASE, - * and then for every active point, you must have one array of - * strings and numbers, where the elements match the following data settings. - * {MODELBASE, MODELADD, ENTCLASS, LINEID, POSOFF, ANGOFF, MOVETYPE, PHYSINIT, DRSHADOW, PHMOTION, PHYSLEEP, SETSOLID} - * MODELBASE > This string contains the path to your base /*.mdl/ file the additions are gonna be attached to. - * It is mandatory and taken in pairs with LINEID, it forms the unique identifier of every record. - * When used in /DSV/ mode ( like seen below ) is is used as a hash index. - * MODELADD > This is the /*.mdl/ path of the addition entity. It is mandatory and cannot be disabled. - * ENTCLASS > This is the class of the addition entity. It is mandatory and cannot be disabled. - * LINEID > This is the ID of the point that can be selected for building. They must be - * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. - * Use that to swap the active points around by only moving the desired row up or down. - * For the example table definition below, the line ID in the database will be the same. - * POSOFF > This is the local position vector offset that TA uses to place the addition relative to MODELBASE. - * A NULL, empty, disabled or not available string is treated as taking {0,0,0}. - * ANGOFF > This is the local angle offset that TA uses to place the addition. - * A NULL, empty, disabled or not available string is treated as taking {0,0,0}. - * MOVETYPE > This internally calls /Entity:SetMoveType/ if the database parameter is zero or greater. - * PHYSINIT > This internally calls /Entity:PhysicsInit/ if the database parameter is zero or greater. - * DRSHADOW > This internally calls /Entity:DrawShadow/ if the database parameter is not zero. - * The call evaluates to /true/ for positive numbers and /false/ for negative. - * When the parameter is equal to zero skips the call of /Entity:DrawShadow/ - * PHMOTION > This internally calls /PhysObj:EnableMotion/ if the database parameter is not zero on the validated physics object. - * The call evaluates to /true/ for positive numbers and /false/ for negative. - * When the parameter is equal to zero skips the call of /Entity:EnableMotion/ - * PHYSLEEP > This internally calls /PhysObj:Sleep/ if the database parameter is grater than zero on the validated physics object. - * When the parameter is equal or less than zero skips the call of /Entity:Sleep/ - * SETSOLID > This internally calls /Entity:SetSolid/ if the database parameter is zero or greater. - ]]-- - local myAdditions = {} - - if(not asmlib.IsEmpty(myAdditions)) then - asmlib.LogInstance("SynchronizeDSV start <"..myPrefix..">") - if(not asmlib.SynchronizeDSV("ADDITIONS", myAdditions, true, myPrefix)) then - myThrowError("Failed to synchronize track additions") - else -- You are saving me from all the work for manually generating these - asmlib.LogInstance("TranslateDSV start <"..myPrefix..">") - if(not asmlib.TranslateDSV("ADDITIONS", myPrefix)) then - myThrowError("Failed to translate DSV into Lua") end - asmlib.LogInstance("TranslateDSV done <"..myPrefix..">") - end -- Now we have Lua inserts and DSV - end - - --[[ - * Create a table and populate it as shown below - * In the square brackets goes your TYPE, - * and then for every active point, you must have one array of - * strings and numbers, where the elements match the following data settings. - * {TYPE, LINEID, NAME} - * TYPE > This is the category under your physical properties are stored internally. - * It is mandatory and taken in pairs with LINEID, it forms the unique identifier of every record. - * When used in /DSV/ mode ( like seen below ) is is used as a hash index. - * LINEID > This is the ID of the point that can be selected for building. They must be - * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. - * Use that to swap the active points around by only moving the desired row up or down. - * For the example table definition below, the line ID in the database will be the same. - * NAME > This stores the name of the physical property. It must an actual physical property. - ]]-- - local myPhysproperties = {} - - if(not asmlib.IsEmpty(myPhysproperties)) then - asmlib.LogInstance("SynchronizeDSV start <"..myPrefix..">") - if(not asmlib.SynchronizeDSV("PHYSPROPERTIES", myPhysproperties, true, myPrefix)) then - myThrowError("Failed to synchronize track additions") - else -- You are saving me from all the work for manually generating these - asmlib.LogInstance("TranslateDSV start <"..myPrefix..">") - if(not asmlib.TranslateDSV("PHYSPROPERTIES", myPrefix)) then - myThrowError("Failed to translate DSV into Lua") end - asmlib.LogInstance("TranslateDSV done <"..myPrefix..">") - end -- Now we have Lua inserts and DSV - end - - asmlib.LogInstance("<<< "..myScript) -else - myThrowError("Failed loading the required module") -end diff --git a/data/trackassembly/set/trackasmlib_slskip.txt b/data/trackassembly/set/trackasmlib_slskip.txt index ec2041c1..7db9a3fa 100644 --- a/data/trackassembly/set/trackasmlib_slskip.txt +++ b/data/trackassembly/set/trackasmlib_slskip.txt @@ -2,6 +2,8 @@ QuickSort SetNumSlider ModelToName: Cut ModelToName: Sub +BIND_PRESS: +RegisterPOA: Store ModelToName: App DefaultType: Avoided LocatePOA: Missing ID @@ -28,6 +30,7 @@ DRAW_RADMENU: Release DRAW_RADMENU: Hook mismatch DRAW_RADMENU: Scroll release DRAW_RADMENU: Menu disabled +DRAW_RADMENU: %(gmod_tool%) Swep other DRAW_GHOSTS: Swep invalid DRAW_GHOSTS: Swep not tool DRAW_GHOSTS: %(gmod_tool%) Swep other @@ -41,7 +44,6 @@ DRAW_PHYSGUN: Swep invalid DRAW_PHYSGUN: Extension disabled DRAW_PHYSGUN: Trace not piece DRAW_PHYSGUN: %(weapon_physgun%) Swep other -DRAW_RADMENU: %(gmod_tool%) Swep other POINT_SELECT: Bind not pressed POINT_SELECT: Active key missing BIND_PRESS: Hook mismatch @@ -52,9 +54,12 @@ BIND_PRESS: Bind not pressed BIND_PRESS: %(gmod_tool%) Swep other POPULATE_ENTITY: Handler UPDATE_CONTEXTVAL: Entity +TimerRestart: Memory manager skip BorderValue: Missing GetBuilderNick: Key mismatch GetBuilderID: Builder object missing -GetHookInfo: %(gmod_tool%) Swep other -GetHookInfo: %(weapon_physgun%) Swep other +GetHookInfo: Swep invalid +GetHookInfo: Swep other +GetHookInfo: Mode different +GetHookInfo: Tool invalid GetEntityHitID: Trace skip diff --git a/data/trackassembly/set/z_autorun_[trackassembly].txt b/data/trackassembly/set/z_autorun_[trackassembly].txt index 2859b88d..667dcaad 100644 --- a/data/trackassembly/set/z_autorun_[trackassembly].txt +++ b/data/trackassembly/set/z_autorun_[trackassembly].txt @@ -9,7 +9,8 @@ ]]-- -- Local reference to the module. -local asmlib = trackasmlib +local asmlib = trackasmlib; if(not asmlib) then -- Module present + ErrorNoHaltWithStack("TOOL: Track assembly tool module fail!\n"); return end --[[ * This is your addon name. It is mandatory and it must be string. @@ -19,6 +20,9 @@ local asmlib = trackasmlib ]] local myAddon = "Test's track pack" +-- Log messages identifier. Leave DSV here or change it if you like +local mySource = "DSV" + --[[ * Change this if you want to use different in-game type * You can also use multiple types myType1, myType2, @@ -27,17 +31,6 @@ local myAddon = "Test's track pack" ]]-- local myType = myAddon -- The type your addon resides in the tool with ---[[ - * For actually produce an error you can replace the /print/ - * statement with one of following API calls: - * https://wiki.facepunch.com/gmod/Global.print - * https://wiki.facepunch.com/gmod/Global.error - * https://wiki.facepunch.com/gmod/Global.Error - * https://wiki.facepunch.com/gmod/Global.ErrorNoHalt - * https://wiki.facepunch.com/gmod/Global.ErrorNoHaltWithStack -]] -local myError = ErrorNoHalt - -- This is used for addon relation prefix. Fingers away from it local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix @@ -45,6 +38,28 @@ local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix -- Do not touch this also, it is used for debugging local myScript = tostring(debug.getinfo(1).source or "N/A") myScript = "@"..myScript:gsub("^%W+", ""):gsub("\\","/") + mySource = tostring(mySource or ""):gsub("^%W+", "") + mySource = (asmlib.IsBlank(mySource) and "DSV" or mySource) + +-- Store a reference to disable symbol +local gsMissDB = asmlib.GetOpVar("MISS_NOSQL") +local gsDirDSV = asmlib.GetOpVar("DIRPATH_DSV") +local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU") +local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE") + +-- This is the path to your DSV +local myDsv = asmlib.GetLibraryPath(gsDirDSV, myPrefix, gsToolPF.."PIECES") + +--[[ + * This flag is used when the track pieces list needs to be processed. + * It generally represents the locking file persistence flag. It is + * bound to finding a "PIECES" DSV external database for the prefix + * of your addon. You can use it for boolean value deciding whenever + * or not to run certain events. For example you can stop exporting + * your local database every time Gmod loads, but then the user will + * skip the available updates of your addon until he/she deletes the DSVs. +]]-- +local myFlag = file.Exists(myDsv, "DATA") --[[ * This function defines what happens when there is an error present @@ -53,19 +68,17 @@ local myScript = tostring(debug.getinfo(1).source or "N/A") * have to change the function name in lots of places * when you need it to do something else. --]] -local function myThrowError(vMesg) - local sMesg = (myScript.." > ("..myAddon.."): "..tostring(vMesg)) -- Make sure the message is string - if(asmlib) then asmlib.LogInstance(sMesg) end; myError(sMesg) -- Output the message into the logs +local function ThrowError(vMesg) + local sMesg = (myScript.." > ("..myAddon.."): "..tostring(vMesg)) -- Convert to string + if(asmlib) then asmlib.LogInstance(sMesg, mySource) end -- Update the tool logs + ErrorNoHaltWithStack(sMesg.."\n") -- Produce an error without breaking the stack end --- There is something to error about stop the execution and report it -if(not asmlib) then myThrowError("Failed loading the required module!"); return end - --[[ * This logic statement is needed for reporting the error * in the console if the process fails. * - @ bSuccess = SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) + @ bSuccess = trackasmlib.SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) * sTable > The table you want to sync * tData > A data table like the one described above * bRepl > If set to /true/, makes the API replace the repeating models with @@ -75,23 +88,24 @@ if(not asmlib) then myThrowError("Failed loading the required module!"); return * sPref > An export file custom prefix. For synchronizing it must be related to your addon * sDelim > The delimiter used by the server/client ( default is a tab symbol ) * - @ bSuccess = TranslateDSV(sTable, sPref, sDelim) + @ bSuccess = trackasmlib.TranslateDSV(sTable, sPref, sDelim) * sTable > The table you want to translate to Lua script * sPref > An export file custom prefix. For synchronizing it must be related to your addon * sDelim > The delimiter used by the server/client ( default is a tab symbol ) ]]-- -local function mySyncTable(sName, tData, bRepl) - if(not asmlib.IsEmpty(tData)) then -- Somrting to be processed. Do stuff when the table is not empty - asmlib.LogInstance("SynchronizeDSV START <"..myPrefix..">") -- Signal start synchronization +local function DoSynchronize(sName, tData, bRepl) + local sRep = asmlib.GetReport(myPrefix, sName) -- Generate report if error is present + if(not asmlib.IsEmpty(tData)) then -- Something to be processed. Do stuff when the table is not empty + asmlib.LogInstance("Synchronization START "..sRep, mySource) -- Signal start synchronization if(not asmlib.SynchronizeDSV(sName, tData, bRepl, myPrefix)) then -- Attempt to synchronize - myThrowError("Failed to synchronize: "..sName) -- Raise error when fails to sync tracks data + ThrowError("Failed to synchronize content") -- Raise error when fails to sync tracks data else -- Successful. You are saving me from all the work for manually generating these - asmlib.LogInstance("TranslateDSV START <"..myPrefix..">") -- Signal start translation + asmlib.LogInstance("Translation START "..sRep, mySource) -- Signal start translation if(not asmlib.TranslateDSV(sName, myPrefix)) then -- Attempt to translate the DSV to Lua source - myThrowError("Failed to translate DSV: "..sName) end -- Raise error when fails - asmlib.LogInstance("TranslateDSV OK <"..myPrefix..">") -- Translation is successful + ThrowError("Failed to translate content") end -- Raise error when fails + asmlib.LogInstance("Translation OK "..sRep, mySource) -- Translation is successful end -- Now we have Lua inserts and DSV. Otherwise sent empty table and print status in logs - else asmlib.LogInstance("SynchronizeDSV EMPTY <"..myPrefix..">") end -- Nothing to be done + else asmlib.LogInstance("Synchronization EMPTY "..sRep, mySource) end -- Nothing to be done end --[[ @@ -100,21 +114,22 @@ end * (/garrysmod/data/trackassembly/set/trackasmlib_dsv.txt) * a.k.a the DATA folder of Garry's mod. * - * @bSuccess = RegisterDSV(sProg, sPref, sDelim) + * @bSuccess = trackasmlib.RegisterDSV(sProg, sPref, sDelim) * sProg > The program which registered the DSV * sPref > The external data prefix to be added ( default instance prefix ) * sDelim > The delimiter to be used for processing ( default tab ) * bSkip > Skip addition for the DSV prefix if exists ( default `false` ) ]]-- -local function myRegisterDSV(bSkip) - asmlib.LogInstance("RegisterDSV START <"..myPrefix..">") +local function DoRegister(bSkip) + local sRep = asmlib.GetReport(myPrefix, bSkip) -- Generate report if error is present + asmlib.LogInstance("Registration START "..sRep, mySource) if(bSkip) then -- Your DSV must be registered only once when loading for the first time - asmlib.LogInstance("RegisterDSV SKIP <"..myPrefix..">") + asmlib.LogInstance("Registration SKIP "..sRep, mySource) else -- If the locking file is not located that means this is the first run of your script if(not asmlib.RegisterDSV(myScript, myPrefix)) then -- Register the DSV prefix and check for error - myThrowError("Failed to register DSV") -- Throw the error if fails + ThrowError("Failed to register content") -- Throw the error if fails end -- Third argument is the delimiter. The default tab is used - asmlib.LogInstance("RegisterDSV OK <"..myPrefix..">") + asmlib.LogInstance("Registration OK "..sRep, mySource) end end @@ -122,54 +137,33 @@ end * This logic statement is needed for reporting the error in the console if the * process fails. * - @ bSuccess = ExportCategory(nInd, tData, sPref) + @ bSuccess = trackasmlib.ExportCategory(nInd, tData, sPref) * nInd > The index equal indent format to be stored with ( generally = 3 ) * tData > The category functional definition you want to use to divide your stuff with * sPref > An export file custom prefix. For synchronizing * it must be related to your addon ( default is instance prefix ) ]]-- -local function myExportCategory(tCatg) - asmlib.LogInstance("ExportCategory START <"..myPrefix..">") +local function DoCategory(tCatg) + local sRep = asmlib.GetReport(myPrefix, bSkip) -- Generate report if error is present + asmlib.LogInstance("Category export START "..sRep, mySource) if(CLIENT) then -- Category handling is client side only if(not asmlib.IsEmpty(tCatg)) then if(not asmlib.ExportCategory(3, tCatg, myPrefix)) then - myThrowError("Failed to synchronize category") - end; asmlib.LogInstance("ExportCategory OK <"..myPrefix..">") - else asmlib.LogInstance("ExportCategory SKIP <"..myPrefix..">") end - else asmlib.LogInstance("ExportCategory SERVER <"..myPrefix..">") end + ThrowError("Failed to synchronize category") + end; asmlib.LogInstance("Category export OK "..sRep, mySource) + else asmlib.LogInstance("Category export SKIP "..sRep, mySource) end + else asmlib.LogInstance("Category export SERVER "..sRep, mySource) end end --- Store a reference to disable symbol -local gsMissDB = asmlib.GetOpVar("MISS_NOSQL") -local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU") -local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE") -local gsModeDB = asmlib.GetOpVar("MODE_DATABASE") -local gsFormPF = asmlib.GetOpVar("FORM_PREFIXDSV") - --- This is the path to your DSV -local myDsv = asmlib.GetOpVar("DIRPATH_BAS").. - asmlib.GetOpVar("DIRPATH_DSV").. - gsFormPF:format(myPrefix, gsToolPF.."PIECES") - ---[[ - * This flag is used when the track pieces list needs to be processed. - * It generally represents the locking file persistence flag. It is - * bound to finding a "PIECES" DSV external database for the prefix - * of your addon. You can use it for boolean value deciding whenever - * or not to run certain events. For example you can stop exporting - * your local database every time Gmod loads, but then the user will - * skip the available updates of your addon until he/she deletes the DSVs. -]]-- -local myFlag = file.Exists(myDsv, "DATA") - -- Tell TA what custom script we just called don't touch it -asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}") +asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}", mySource) -- Register the addon to the workshop ID list asmlib.WorkshopID(myAddon, "287012681") --- Register the addon to the pluggable DSV list -myRegisterDSV(myFlag) +-- Register the addon to the plugable DSV list +local bS, vO = pcall(DoRegister, myFlag) +if(not bS) then ThrowError("Registration error: "..vO) end --[[ * This is used if you want to make internal categories for your addon @@ -179,7 +173,7 @@ myRegisterDSV(myFlag) * with that much elements or return a /nil/ value to add the piece to * the root of your branch. You can also return a second value if you * want to override the track piece name. If you need to use categories - * for multiple track types, just put their hashes in the table below + * for multiple track types, just put their hashes in the table below * and make every track point to its dedicated category handler. ]]-- local myCategory = { @@ -199,8 +193,9 @@ local myCategory = { ]]} } --- Register the addon category to the pluggable DSV list -myExportCategory(myCategory) +-- Register the addon category to the plugable DSV list +local bS, vO = pcall(DoCategory, myCategory) +if(not bS) then ThrowError("Category error: "..vO) end --[[ * Create a table and populate it as shown below @@ -225,7 +220,7 @@ myExportCategory(myCategory) * the model ( from the last slash to the file extension ). * LINEID > This is the ID of the point that can be selected for building. They must be * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. + * a given model key. Disabling this, makes it use the index of the current line. * Use that to swap the active points around by only moving the desired row up or down. * For the example table definition below, the line ID in the database will be the same. * POINT > This is the location vector that TA searches and selects the related ORIGIN for. @@ -253,8 +248,9 @@ local myPieces = { } } --- Register the addon PIECES to the pluggable DSV list -mySyncTable("PIECES", myPieces, true) +-- Register the addon PIECES to the plugable DSV list +local bS, vO = pcall(DoSynchronize, "PIECES", myPieces, true) +if(not bS) then ThrowError("PIECES error: "..vO) end --[[ * Create a table and populate it as shown below @@ -262,14 +258,14 @@ mySyncTable("PIECES", myPieces, true) * and then for every active point, you must have one array of * strings and numbers, where the elements match the following data settings. * {MODELBASE, MODELADD, ENTCLASS, LINEID, POSOFF, ANGOFF, MOVETYPE, PHYSINIT, DRSHADOW, PHMOTION, PHYSLEEP, SETSOLID} - * MODELBASE > This string contains the path to your base /*.mdl/ file the additions are gonna be attached to. + * MODELBASE > This string contains the path to your base /*.mdl/ file the additions will be attached to. * It is mandatory and taken in pairs with LINEID, it forms the unique identifier of every record. - * When used in /DSV/ mode ( like seen below ) is is used as a hash index. + * When used in /DSV/ mode ( like seen below ) it is used as a hash index. * MODELADD > This is the /*.mdl/ path of the addition entity. It is mandatory and cannot be disabled. * ENTCLASS > This is the class of the addition entity. When disabled or missing it defaults to a normal prop. * LINEID > This is the ID of the point that can be selected for building. They must be * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. + * a given model key. Disabling this, makes it use the index of the current line. * Use that to swap the active points around by only moving the desired row up or down. * For the example table definition below, the line ID in the database will be the same. * POSOFF > This is the local position vector offset that TA uses to place the addition relative to MODELBASE. @@ -290,8 +286,9 @@ mySyncTable("PIECES", myPieces, true) ]]-- local myAdditions = {} --- Register the addon ADDITIONS to the pluggable DSV list -mySyncTable("ADDITIONS", myAdditions, true) +-- Register the addon ADDITIONS to the plugable DSV list +local bS, vO = pcall(DoSynchronize, "ADDITIONS", myAdditions, true) +if(not bS) then ThrowError("ADDITIONS error: "..vO) end --[[ * Create a table and populate it as shown below @@ -301,17 +298,18 @@ mySyncTable("ADDITIONS", myAdditions, true) * {TYPE, LINEID, NAME} * TYPE > This is the category under your physical properties are stored internally. * It is mandatory and taken in pairs with LINEID, it forms the unique identifier of every record. - * When used in /DSV/ mode ( like seen below ) is is used as a hash index. + * When used in /DSV/ mode ( like seen below ) it is used as a hash index. * LINEID > This is the ID of the point that can be selected for building. They must be * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. + * a given model key. Disabling this, makes it use the index of the current line. * Use that to swap the active points around by only moving the desired row up or down. * For the example table definition below, the line ID in the database will be the same. * NAME > This stores the name of the physical property. It must an actual physical property. ]]-- local myPhysproperties = {} --- Register the addon PHYSPROPERTIES to the pluggable DSV list -mySyncTable("PHYSPROPERTIES", myPhysproperties, true) +-- Register the addon PHYSPROPERTIES to the plugable DSV list +local bS, vO = pcall(DoSynchronize, "PHYSPROPERTIES", myPhysproperties, true) +if(not bS) then ThrowError("PHYSPROPERTIES error: "..vO) end -asmlib.LogInstance("<<< "..myScript) +asmlib.LogInstance("<<< "..myScript, mySource) diff --git a/data/trackassembly/set/z_autoset_[trackassembly].txt b/data/trackassembly/set/z_autoset_[trackassembly].txt index ea2e6b28..2d91b0a0 100644 --- a/data/trackassembly/set/z_autoset_[trackassembly].txt +++ b/data/trackassembly/set/z_autoset_[trackassembly].txt @@ -9,7 +9,8 @@ ]]-- -- Local reference to the module. -local asmlib = trackasmlib +local asmlib = trackasmlib; if(not asmlib) then -- Module present + ErrorNoHaltWithStack("TOOL: Track assembly tool module fail!\n"); return end -- Change this to your addon name. local myAddon = "SligWolf's Minitrains" -- Your addon name goes here @@ -22,24 +23,16 @@ local myAddon = "SligWolf's Minitrains" -- Your addon name goes here ]]-- local myType = myAddon -- The type your addon resides in the tool with ---[[ - * For actually produce an error you can replace the /print/ - * statement with one of following API calls: - * https://wiki.facepunch.com/gmod/Global.print - * https://wiki.facepunch.com/gmod/Global.error - * https://wiki.facepunch.com/gmod/Global.Error - * https://wiki.facepunch.com/gmod/Global.ErrorNoHalt - * https://wiki.facepunch.com/gmod/Global.ErrorNoHaltWithStack -]] -local myError = ErrorNoHalt - -- This is used for addon relation prefix. Fingers away from it -local myPrefix = asmlib.GetInstPref() -- Addon prefix +local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix -- This is the script path. It tells TA who wants to add these models -- Do not touch this also, it is used for debugging local myScript = tostring(debug.getinfo(1).source or "N/A") myScript = "@"..myScript:gsub("^%W+", ""):gsub("\\","/") + mySource = tostring(mySource or ""):gsub("^%W+", "") + mySource = (asmlib.IsBlank(mySource) and "DSV" or mySource) + --[[ * This function defines what happens when there is an error present * Usually you can tell Gmod that you want it to generate an error @@ -50,232 +43,244 @@ local myScript = tostring(debug.getinfo(1).source or "N/A") local function myThrowError(vMesg) local sMesg = tostring(vMesg) -- Make sure the message is string if(asmlib) then asmlib.LogInstance(sMesg) end -- Output the message into the logs - myError(myScript.." > ("..myAddon.."): "..sMesg) -- Generate an error in the console ( optional ) + ErrorNoHaltWithStack(myScript.." > ("..myAddon.."): "..sMesg) -- Generate an error in the console ( optional ) end -if(asmlib) then - -- Store a reference to disable symbol - local gsMissDB = asmlib.GetOpVar("MISS_NOSQL") - local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU") - local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE") - local gsModeDB = asmlib.GetOpVar("MODE_DATABASE") - local gsFormPF = asmlib.GetOpVar("FORM_PREFIXDSV") - - -- This is the path to your DSV - local myDsv = asmlib.GetOpVar("DIRPATH_BAS").. - asmlib.GetOpVar("DIRPATH_DSV").. - gsFormPF:format(myPrefix, gsToolPF.."PIECES") +-- Store a reference to disable symbol +local gsMissDB = asmlib.GetOpVar("MISS_NOSQL") +local gsDirDSV = asmlib.GetOpVar("DIRPATH_DSV") +local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU") +local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE") +local gsModeDB = asmlib.GetOpVar("MODE_DATABASE") +local gsPrfGen = asmlib.GetOpVar("DBEXP_PREFGEN") - -- Evaluated to TRUE when the global database is exported - local myFlag = file.Exists(myDsv, "DATA") +local myPath = { -- This contains the path to generic DSV + asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."PIECES"), + asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."CATEGORY"), + asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."ADDITIONS"), + asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."PHYSPROPERTIES") +} - -- Tell TA what custom script we just called don't touch it - asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}") +-- Tell TA what custom script we just called don't touch it +asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}", mySource) - if(not myFlag) then -- Check for exported global database +-- Check for exported generic database for PIECES +-- Evaluated to TRUE when the generic database is exported +if(not file.Exists(myPath[1], "DATA")) then - local PIECES = asmlib.GetBuilderNick("PIECES") + local PIECES = asmlib.GetBuilderNick("PIECES") + -- Check for exported generic database for CATEGORY + -- Evaluated to TRUE when the generic category is exported + if(not file.Exists(myPath[2], "DATA")) then asmlib.Categorize(myAddon, [[ function(m) - local function conv(x) return " "..x:sub(2,2):upper() end - local r = m:gsub("models/minitrains/",""):gsub("_","/") - local s = r:find("/") or r:find("%.") - r = (s and r:sub(1,s-1) or "other"); o = {r} - if(r == "sw") then o = {"buffer"} end; - for i = 1, #o do o[i] = ("_"..o[i]):gsub("_%w", conv):sub(2,-1) end; return o end - ]]) - - asmlib.WorkshopID(myAddon, 149759773) + local r = m:gsub("models/props_phx/construct/",""):gsub("_","/") + local s = r:find("/"); r = s and r:sub(1,s-1) or nil + local n = nil + if(r) then + if(r == "metal" ) then n = "My metal plate" end + if(r == "windows") then n = "My glass plate" end + end + r = r and r:gsub("^%l", string.upper) or nil + p = r and {r} or nil + return p, n + end + ]]) + end - if(gsModeDB == "SQL") then sqlBegin() end + asmlib.WorkshopID(myAddon, "287012681") - --[[ - * Create a table and populate it as shown below - * In the square brackets goes your MODEL, - * and then for every active point, you must have one array of - * strings, where the elements match the following data settings. - * You can use the disable event /#/ to make TA auto-fill - * the value provided and you can also add multiple track types myType[1-n]. - * If you need to use piece origin/angle with model attachment, you must use - * the attachment extraction event /!/. The model attachment format is - * /!/ and it depends what attachment name you gave it when you - * created the model. If you need TA to extract the origin/angle from an attachment named - * /test/ for example, you just need to put the string /!test/ in the origin/angle column for that model. - * {MODEL, TYPE, NAME, LINEID, POINT, ORIGIN, ANGLE, CLASS} - * TYPE > This string is the name of the type your stuff will reside in the panel. - * Disabling this, makes it use the value of the /DEFAULT_TYPE/ variable. - * If it is empty uses the string /TYPE/, so make sure you fill this. - * NAME > This is the name of your track piece. Put /#/ here to be auto-generated from - * the model ( from the last slash to the file extension ). - * LINEID > This is the ID of the point that can be selected for building. They must be - * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. - * Use that to swap the active points around by only moving the desired row up or down. - * For the example table definition below, the line ID in the database will be the same. - * POINT > This is the local position vector that TA searches and selects the related - * ORIGIN for. An empty string is treated as taking the ORIGIN. - * Disabling this using the disable event makes it hidden when the active point is searched for - * ORIGIN > This is the origin relative to which the next track piece position is calculated - * An empty string is treated as {0,0,0}. Disabling this also makes it use {0,0,0} - * You can also fill it with attachment event /!/ followed by your attachment name. It's mandatory - * ANGLE > This is the angle relative to which the forward and up vectors are calculated. - * An empty string is treated as {0,0,0}. Disabling this also makes it use {0,0,0} - * You can also fill it with attachment event /!/ followed by your attachment name. It's mandatory - * CLASS > This string is populated up when your entity class is not /prop_physics/ but something else - * used by ents.Create of the gmod ents API library. Keep this empty if your stuff is a normal prop. - ]]-- - PIECES:Record({"models/minitrains/straight_16.mdl", "#", "#", 1, "", "0, -8.507, 1"}) - PIECES:Record({"models/minitrains/straight_16.mdl", "#", "#", 2, "", "-16, -8.507, 1", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_32.mdl", "#", "#", 1, "", "0, -8.507, 1"}) - PIECES:Record({"models/minitrains/straight_32.mdl", "#", "#", 2, "", "-32, -8.507, 1", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_64.mdl", "#", "#", 1, "", "0, -8.507, 1"}) - PIECES:Record({"models/minitrains/straight_64.mdl", "#", "#", 2, "", "-64, -8.507, 1", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_128.mdl", "#", "#", 1, "", "0, -8.507, 1"}) - PIECES:Record({"models/minitrains/straight_128.mdl", "#", "#", 2, "", "-128, -8.507, 1", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_256.mdl", "#", "#", 1, "", "0, -8.507, 1"}) - PIECES:Record({"models/minitrains/straight_256.mdl", "#", "#", 2, "", "-256, -8.507, 1", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_512.mdl", "#", "#", 1, "", "0, -8.507, 1"}) - PIECES:Record({"models/minitrains/straight_512.mdl", "#", "#", 2, "", "-512, -8.507, 1", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_1024.mdl", "#", "#", 1, "", "0, -8.507, 1"}) - PIECES:Record({"models/minitrains/straight_1024.mdl", "#", "#", 2, "", "-1024, -8.507, 1", "0,-180,0"}) - asmlib.ModelToNameRule("SET",nil,{"diagonal_","ramp_"},nil) - PIECES:Record({"models/minitrains/straight_diagonal_128.mdl", "#", "#", 1, "", "8, -8.508, 1"}) - PIECES:Record({"models/minitrains/straight_diagonal_128.mdl", "#", "#", 2, "", "-136, -8.506, 33", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_diagonal_256.mdl", "#", "#", 1, "", "8, -8.508, 1"}) - PIECES:Record({"models/minitrains/straight_diagonal_256.mdl", "#", "#", 2, "", "-264, -8.506, 33", "0,-180,0"}) - PIECES:Record({"models/minitrains/straight_diagonal_512.mdl", "#", "#", 1, "", "8, -8.508, 1"}) - PIECES:Record({"models/minitrains/straight_diagonal_512.mdl", "#", "#", 2, "", "-520, -8.506, 33", "0,-180,0"}) - asmlib.ModelToNameRule("CLR") - PIECES:Record({"models/minitrains/curve_1_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) - PIECES:Record({"models/minitrains/curve_1_90.mdl", "#", "#", 2, "", "-138.51, 130, 1", "0,90,0"}) - PIECES:Record({"models/minitrains/curve_2_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) - PIECES:Record({"models/minitrains/curve_2_90.mdl", "#", "#", 2, "", "-168.51, 160, 0.996", "0,90,0"}) - PIECES:Record({"models/minitrains/curve_3_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) - PIECES:Record({"models/minitrains/curve_3_90.mdl", "#", "#", 2, "", "-198.51, 190, 0.995", "0,90,0"}) - PIECES:Record({"models/minitrains/curve_4_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) - PIECES:Record({"models/minitrains/curve_4_90.mdl", "#", "#", 2, "", "-228.51, 220, 0.994", "0,90,0"}) - PIECES:Record({"models/minitrains/curve_5_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) - PIECES:Record({"models/minitrains/curve_5_90.mdl", "#", "#", 2, "", "-258.51, 250, 0.994", "0,90,0"}) - PIECES:Record({"models/minitrains/curve_6_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) - PIECES:Record({"models/minitrains/curve_6_90.mdl", "#", "#", 2, "", "-288.51, 280, 0.993", "0,90,0"}) - PIECES:Record({"models/minitrains/curve_1_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) - PIECES:Record({"models/minitrains/curve_1_45.mdl", "#", "#", 2, "", "-97.956, 32.044, 1", "0,135,0"}) - PIECES:Record({"models/minitrains/curve_2_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) - PIECES:Record({"models/minitrains/curve_2_45.mdl", "#", "#", 2, "", "-119.15, 40.853, 1", "0,135,0"}) - PIECES:Record({"models/minitrains/curve_3_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) - PIECES:Record({"models/minitrains/curve_3_45.mdl", "#", "#", 2, "", "-140.368, 49.631, 1", "0,135,0"}) - PIECES:Record({"models/minitrains/curve_4_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) - PIECES:Record({"models/minitrains/curve_4_45.mdl", "#", "#", 2, "", "-161.567, 58.434, 1", "0,135,0"}) - PIECES:Record({"models/minitrains/curve_5_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) - PIECES:Record({"models/minitrains/curve_5_45.mdl", "#", "#", 2, "", "-182.769, 67.232, 1", "0,135,0"}) - PIECES:Record({"models/minitrains/curve_6_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) - PIECES:Record({"models/minitrains/curve_6_45.mdl", "#", "#", 2, "", "-203.983, 76.019, 1", "0,135,0"}) - PIECES:Record({"models/minitrains/curve_1_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) - PIECES:Record({"models/minitrains/curve_1_22-5.mdl", "#", "#", 2, "", "-53.014, 2.013, 1", "0,157.5,0"}) - PIECES:Record({"models/minitrains/curve_2_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) - PIECES:Record({"models/minitrains/curve_2_22-5.mdl", "#", "#", 2, "", "-64.492, 4.307, 1", "0,157.5,0"}) - PIECES:Record({"models/minitrains/curve_3_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) - PIECES:Record({"models/minitrains/curve_3_22-5.mdl", "#", "#", 2, "", "-75.965, 6.599, 1", "0,157.5,0"}) - PIECES:Record({"models/minitrains/curve_4_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) - PIECES:Record({"models/minitrains/curve_4_22-5.mdl", "#", "#", 2, "", "-87.437, 8.904, 1", "0,157.5,0"}) - PIECES:Record({"models/minitrains/curve_5_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) - PIECES:Record({"models/minitrains/curve_5_22-5.mdl", "#", "#", 2, "", "-98.913, 11.205,1", "0,157.5,0"}) - PIECES:Record({"models/minitrains/curve_6_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) - PIECES:Record({"models/minitrains/curve_6_22-5.mdl", "#", "#", 2, "", "-110.405, 13.455, 1", "0,157.5,0"}) - PIECES:Record({"models/minitrains/curve_1_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) - PIECES:Record({"models/minitrains/curve_1_s_small.mdl", "#", "#", 2, "", "-105.994, 12.497, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_2_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) - PIECES:Record({"models/minitrains/curve_2_s_small.mdl", "#", "#", 2, "", "-128.994, 17.497, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_3_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) - PIECES:Record({"models/minitrains/curve_3_s_small.mdl", "#", "#", 2, "", "-151.994, 21.497, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_4_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) - PIECES:Record({"models/minitrains/curve_4_s_small.mdl", "#", "#", 2, "", "-174.994, 26.497, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_5_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) - PIECES:Record({"models/minitrains/curve_5_s_small.mdl", "#", "#", 2, "", "-197.994, 31.497, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_6_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) - PIECES:Record({"models/minitrains/curve_6_s_small.mdl", "#", "#", 2, "", "-220.994, 35.497, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_1_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_1_s_medium.mdl", "#", "#", 2, "", "-195.966, 72.51, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_2_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_2_s_medium.mdl", "#", "#", 2, "", "-237.966, 90.51, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_3_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_3_s_medium.mdl", "#", "#", 2, "", "-280.966, 107.51, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_4_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_4_s_medium.mdl", "#", "#", 2, "", "-322.966, 125.51, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_5_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_5_s_medium.mdl", "#", "#", 2, "", "-365.991, 142.507, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_6_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_6_s_medium.mdl", "#", "#", 2, "", "-407.99, 160.51, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_1_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_1_s_big.mdl", "#", "#", 2, "", "-277.01, 268.511, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_2_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_2_s_big.mdl", "#", "#", 2, "", "-336.99, 328.521, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_3_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_3_s_big.mdl", "#", "#", 2, "", "-397.033, 388.521, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_4_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_4_s_big.mdl", "#", "#", 2, "", "-456.991, 448.521, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_5_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_5_s_big.mdl", "#", "#", 2, "", "-516.985, 508.521, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/curve_6_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) - PIECES:Record({"models/minitrains/curve_6_s_big.mdl", "#", "#", 2, "", "-576.985, 568.521, 1", "0,180,0"}) - PIECES:Record({"models/minitrains/rerailer.mdl", "#", "Rerailer Double", 1, "", "190, 0, 1.01758"}) - PIECES:Record({"models/minitrains/rerailer.mdl", "#", "Rerailer Double", 2, "", "-190, 0, 1.01758", "0,180,0"}) - PIECES:Record({"models/minitrains/sw_buffer_stop.mdl", "#", "Buffer Stop", 1, "", "9.43, -8.011, -1", "0,-180,0"}) - PIECES:Record({"models/minitrains/switch.mdl", "#", "Switch Y", 1, "", "0, -8.509, 1", "", "gmod_sw_minitrain_switch"}) - PIECES:Record({"models/minitrains/switch.mdl", "#", "Switch Y", 2, "", "-128, 6.493, 1", "0,-180,0", "gmod_sw_minitrain_switch"}) - PIECES:Record({"models/minitrains/switch.mdl", "#", "Switch Y", 3, "", "-128, -23.512, 1", "0,-180,0","gmod_sw_minitrain_switch"}) - PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 1, "", "16, 21.512, 1", "", "gmod_sw_minitrain_doubleswitch"}) - PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 2, "", "-144, 21.513, 1", "0,-180,0", "gmod_sw_minitrain_doubleswitch"}) - PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 3, "", "16, -8.515, 1", "", "gmod_sw_minitrain_doubleswitch"}) - PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 4, "", "-144, -8.514, 1", "0,-180,0", "gmod_sw_minitrain_doubleswitch"}) - PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w1"}) - PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 2, "", "-97.94826,32.05148,1", "0,135,0", "gmod_sw_minitrain_switch_w1"}) - PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w1"}) - PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 4, "", "-97.94826,-49.05152,1", "0,-135,0", "gmod_sw_minitrain_switch_w1"}) - PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w2"}) - PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 2, "", "-119.15060, 40.84935,1", "0, 135,0", "gmod_sw_minitrain_switch_w2"}) - PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,-180,0", "gmod_sw_minitrain_switch_w2"}) - PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 4, "", "-119.15061,-57.84934,1", "0,-135,0", "gmod_sw_minitrain_switch_w2"}) - PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w3"}) - PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 2, "", "-140.36781,49.63218,1", "0,135,0", "gmod_sw_minitrain_switch_w3"}) - PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w3"}) - PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 4, "", "-140.36781,-66.63219,1", "0,-135,0", "gmod_sw_minitrain_switch_w3"}) - PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w4"}) - PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 2, "", "-87.45033,8.87626,1", "0,157.5,0", "gmod_sw_minitrain_switch_w4"}) - PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w4"}) - PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 4, "", "-87.45378,-25.86791,1", "0,-157.5,0", "gmod_sw_minitrain_switch_w4"}) - PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w5"}) - PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 2, "", "-98.92384,11.17581,1", "0,157.5,0", "gmod_sw_minitrain_switch_w5"}) - PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w5"}) - PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 4, "", "-98.92188,-28.17954,1", "0,-157.5,0", "gmod_sw_minitrain_switch_w5"}) - PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w6"}) - PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 2, "", "-110.40305,13.45934,1", "0,157.5,0", "gmod_sw_minitrain_switch_w6"}) - PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w6"}) - PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 4, "", "-110.40065,-30.46272,1", "0,-157.5,0", "gmod_sw_minitrain_switch_w6"}) - PIECES:Record({"models/minitrains/switch_y_1_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y1"}) - PIECES:Record({"models/minitrains/switch_y_1_128.mdl", "#", "#", 2, "", "-97.94826,32.05148,1", "0,135,0", "gmod_sw_minitrain_switch_y1"}) - PIECES:Record({"models/minitrains/switch_y_1_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y1"}) - PIECES:Record({"models/minitrains/switch_y_2_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y2"}) - PIECES:Record({"models/minitrains/switch_y_2_128.mdl", "#", "#", 2, "", "-119.15060, 40.84935,1", "0, 135,0", "gmod_sw_minitrain_switch_y2"}) - PIECES:Record({"models/minitrains/switch_y_2_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,-180,0", "gmod_sw_minitrain_switch_y2"}) - PIECES:Record({"models/minitrains/switch_y_3_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y3"}) - PIECES:Record({"models/minitrains/switch_y_3_128.mdl", "#", "#", 2, "", "-140.36781,49.63218,1", "0,135,0", "gmod_sw_minitrain_switch_y3"}) - PIECES:Record({"models/minitrains/switch_y_3_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y3"}) - PIECES:Record({"models/minitrains/switch_y_4_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y4"}) - PIECES:Record({"models/minitrains/switch_y_4_128.mdl", "#", "#", 2, "", "-87.45033,8.87626,1", "0,157.5,0", "gmod_sw_minitrain_switch_y4"}) - PIECES:Record({"models/minitrains/switch_y_4_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y4"}) - PIECES:Record({"models/minitrains/switch_y_5_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y5"}) - PIECES:Record({"models/minitrains/switch_y_5_128.mdl", "#", "#", 2, "", "-98.92384,11.17581,1", "0,157.5,0", "gmod_sw_minitrain_switch_y5"}) - PIECES:Record({"models/minitrains/switch_y_5_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y5"}) - PIECES:Record({"models/minitrains/switch_y_6_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y6"}) - PIECES:Record({"models/minitrains/switch_y_6_128.mdl", "#", "#", 2, "", "-110.40305,13.45934,1", "0,157.5,0", "gmod_sw_minitrain_switch_y6"}) - PIECES:Record({"models/minitrains/switch_y_6_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y6"}) + if(gsModeDB == "SQL") then sqlBegin() end - if(gsModeDB == "SQL") then sqlCommit() end - end + --[[ + * Create a table and populate it as shown below + * In the square brackets goes your MODEL, + * and then for every active point, you must have one array of + * strings, where the elements match the following data settings. + * You can use the disable event /#/ to make TA auto-fill + * the value provided and you can also add multiple track types myType[1-n]. + * If you need to use piece origin/angle with model attachment, you must use + * the attachment extraction event /!/. The model attachment format is + * /!/ and it depends what attachment name you gave it when you + * created the model. If you need TA to extract the origin/angle from an attachment named + * /test/ for example, you just need to put the string /!test/ in the origin/angle column for that model. + * {MODEL, TYPE, NAME, LINEID, POINT, ORIGIN, ANGLE, CLASS} + * MODEL > This string contains the path to your /*.mdl/ file. It is mandatory and + * taken in pairs with LINEID, it forms the unique identifier of every record. + * When used in /DSV/ mode ( like seen below ) it is used as a hash index. + * TYPE > This string is the name of the type your stuff will reside in the panel. + * Disabling this, makes it use the value of the /DEFAULT_TYPE/ variable. + * If it is empty uses the string /TYPE/, so make sure you fill this. + * NAME > This is the name of your track piece. Put /#/ here to be auto-generated from + * the model ( from the last slash to the file extension ). + * LINEID > This is the ID of the point that can be selected for building. They must be + * sequential and mandatory. If provided, the ID must the same as the row index under + * a given model key. Disabling this, makes it use the index of the current line. + * Use that to swap the active points around by only moving the desired row up or down. + * For the example table definition below, the line ID in the database will be the same. + * POINT > This is the location vector that TA searches and selects the related ORIGIN for. + * An empty string is treated as taking the ORIGIN when assuming player traces can hit the origin + * Disabling via /#/ makes it take the ORIGIN. Used to disable a point but keep original data + * You can also fill it with attachment event /!/ followed by your attachment name. + * ORIGIN > This is the origin relative to which the next track piece position is calculated + * An empty string is treated as {0,0,0}. Disabling via /#/ also makes it use {0,0,0} + * You can also fill it with attachment event /!/ followed by your attachment name. It's mandatory + * ANGLE > This is the angle relative to which the forward and up vectors are calculated. + * An empty string is treated as {0,0,0}. Disabling via /#/ also makes it use {0,0,0} + * You can also fill it with attachment event /!/ followed by your attachment name. It's mandatory + * CLASS > This string is populated up when your entity class is not /prop_physics/ but something else + * used by ents.Create of the gmod ents API library. Keep this empty if your stuff is a normal prop. + * Disabling via /#/ makes it take the NULL value. In this case the model is spawned as a prop + ]]-- + PIECES:Record({"models/minitrains/straight_16.mdl", "#", "#", 1, "", "0, -8.507, 1"}) + PIECES:Record({"models/minitrains/straight_16.mdl", "#", "#", 2, "", "-16, -8.507, 1", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_32.mdl", "#", "#", 1, "", "0, -8.507, 1"}) + PIECES:Record({"models/minitrains/straight_32.mdl", "#", "#", 2, "", "-32, -8.507, 1", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_64.mdl", "#", "#", 1, "", "0, -8.507, 1"}) + PIECES:Record({"models/minitrains/straight_64.mdl", "#", "#", 2, "", "-64, -8.507, 1", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_128.mdl", "#", "#", 1, "", "0, -8.507, 1"}) + PIECES:Record({"models/minitrains/straight_128.mdl", "#", "#", 2, "", "-128, -8.507, 1", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_256.mdl", "#", "#", 1, "", "0, -8.507, 1"}) + PIECES:Record({"models/minitrains/straight_256.mdl", "#", "#", 2, "", "-256, -8.507, 1", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_512.mdl", "#", "#", 1, "", "0, -8.507, 1"}) + PIECES:Record({"models/minitrains/straight_512.mdl", "#", "#", 2, "", "-512, -8.507, 1", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_1024.mdl", "#", "#", 1, "", "0, -8.507, 1"}) + PIECES:Record({"models/minitrains/straight_1024.mdl", "#", "#", 2, "", "-1024, -8.507, 1", "0,-180,0"}) + asmlib.ModelToNameRule("SET",nil,{"diagonal_","ramp_"},nil) + PIECES:Record({"models/minitrains/straight_diagonal_128.mdl", "#", "#", 1, "", "8, -8.508, 1"}) + PIECES:Record({"models/minitrains/straight_diagonal_128.mdl", "#", "#", 2, "", "-136, -8.506, 33", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_diagonal_256.mdl", "#", "#", 1, "", "8, -8.508, 1"}) + PIECES:Record({"models/minitrains/straight_diagonal_256.mdl", "#", "#", 2, "", "-264, -8.506, 33", "0,-180,0"}) + PIECES:Record({"models/minitrains/straight_diagonal_512.mdl", "#", "#", 1, "", "8, -8.508, 1"}) + PIECES:Record({"models/minitrains/straight_diagonal_512.mdl", "#", "#", 2, "", "-520, -8.506, 33", "0,-180,0"}) + asmlib.ModelToNameRule("CLR") + PIECES:Record({"models/minitrains/curve_1_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) + PIECES:Record({"models/minitrains/curve_1_90.mdl", "#", "#", 2, "", "-138.51, 130, 1", "0,90,0"}) + PIECES:Record({"models/minitrains/curve_2_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) + PIECES:Record({"models/minitrains/curve_2_90.mdl", "#", "#", 2, "", "-168.51, 160, 0.996", "0,90,0"}) + PIECES:Record({"models/minitrains/curve_3_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) + PIECES:Record({"models/minitrains/curve_3_90.mdl", "#", "#", 2, "", "-198.51, 190, 0.995", "0,90,0"}) + PIECES:Record({"models/minitrains/curve_4_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) + PIECES:Record({"models/minitrains/curve_4_90.mdl", "#", "#", 2, "", "-228.51, 220, 0.994", "0,90,0"}) + PIECES:Record({"models/minitrains/curve_5_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) + PIECES:Record({"models/minitrains/curve_5_90.mdl", "#", "#", 2, "", "-258.51, 250, 0.994", "0,90,0"}) + PIECES:Record({"models/minitrains/curve_6_90.mdl", "#", "#", 1, "", "-0.011, -8.5, 1"}) + PIECES:Record({"models/minitrains/curve_6_90.mdl", "#", "#", 2, "", "-288.51, 280, 0.993", "0,90,0"}) + PIECES:Record({"models/minitrains/curve_1_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) + PIECES:Record({"models/minitrains/curve_1_45.mdl", "#", "#", 2, "", "-97.956, 32.044, 1", "0,135,0"}) + PIECES:Record({"models/minitrains/curve_2_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) + PIECES:Record({"models/minitrains/curve_2_45.mdl", "#", "#", 2, "", "-119.15, 40.853, 1", "0,135,0"}) + PIECES:Record({"models/minitrains/curve_3_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) + PIECES:Record({"models/minitrains/curve_3_45.mdl", "#", "#", 2, "", "-140.368, 49.631, 1", "0,135,0"}) + PIECES:Record({"models/minitrains/curve_4_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) + PIECES:Record({"models/minitrains/curve_4_45.mdl", "#", "#", 2, "", "-161.567, 58.434, 1", "0,135,0"}) + PIECES:Record({"models/minitrains/curve_5_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) + PIECES:Record({"models/minitrains/curve_5_45.mdl", "#", "#", 2, "", "-182.769, 67.232, 1", "0,135,0"}) + PIECES:Record({"models/minitrains/curve_6_45.mdl", "#", "#", 1, "", "-0.004, -8.506, 1"}) + PIECES:Record({"models/minitrains/curve_6_45.mdl", "#", "#", 2, "", "-203.983, 76.019, 1", "0,135,0"}) + PIECES:Record({"models/minitrains/curve_1_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) + PIECES:Record({"models/minitrains/curve_1_22-5.mdl", "#", "#", 2, "", "-53.014, 2.013, 1", "0,157.5,0"}) + PIECES:Record({"models/minitrains/curve_2_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) + PIECES:Record({"models/minitrains/curve_2_22-5.mdl", "#", "#", 2, "", "-64.492, 4.307, 1", "0,157.5,0"}) + PIECES:Record({"models/minitrains/curve_3_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) + PIECES:Record({"models/minitrains/curve_3_22-5.mdl", "#", "#", 2, "", "-75.965, 6.599, 1", "0,157.5,0"}) + PIECES:Record({"models/minitrains/curve_4_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) + PIECES:Record({"models/minitrains/curve_4_22-5.mdl", "#", "#", 2, "", "-87.437, 8.904, 1", "0,157.5,0"}) + PIECES:Record({"models/minitrains/curve_5_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) + PIECES:Record({"models/minitrains/curve_5_22-5.mdl", "#", "#", 2, "", "-98.913, 11.205,1", "0,157.5,0"}) + PIECES:Record({"models/minitrains/curve_6_22-5.mdl", "#", "#", 1, "", "-0.005, -8.505, 1"}) + PIECES:Record({"models/minitrains/curve_6_22-5.mdl", "#", "#", 2, "", "-110.405, 13.455, 1", "0,157.5,0"}) + PIECES:Record({"models/minitrains/curve_1_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) + PIECES:Record({"models/minitrains/curve_1_s_small.mdl", "#", "#", 2, "", "-105.994, 12.497, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_2_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) + PIECES:Record({"models/minitrains/curve_2_s_small.mdl", "#", "#", 2, "", "-128.994, 17.497, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_3_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) + PIECES:Record({"models/minitrains/curve_3_s_small.mdl", "#", "#", 2, "", "-151.994, 21.497, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_4_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) + PIECES:Record({"models/minitrains/curve_4_s_small.mdl", "#", "#", 2, "", "-174.994, 26.497, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_5_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) + PIECES:Record({"models/minitrains/curve_5_s_small.mdl", "#", "#", 2, "", "-197.994, 31.497, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_6_s_small.mdl", "#", "#", 1, "", "-0.007, -8.507, 1"}) + PIECES:Record({"models/minitrains/curve_6_s_small.mdl", "#", "#", 2, "", "-220.994, 35.497, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_1_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_1_s_medium.mdl", "#", "#", 2, "", "-195.966, 72.51, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_2_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_2_s_medium.mdl", "#", "#", 2, "", "-237.966, 90.51, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_3_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_3_s_medium.mdl", "#", "#", 2, "", "-280.966, 107.51, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_4_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_4_s_medium.mdl", "#", "#", 2, "", "-322.966, 125.51, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_5_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_5_s_medium.mdl", "#", "#", 2, "", "-365.991, 142.507, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_6_s_medium.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_6_s_medium.mdl", "#", "#", 2, "", "-407.99, 160.51, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_1_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_1_s_big.mdl", "#", "#", 2, "", "-277.01, 268.511, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_2_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_2_s_big.mdl", "#", "#", 2, "", "-336.99, 328.521, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_3_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_3_s_big.mdl", "#", "#", 2, "", "-397.033, 388.521, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_4_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_4_s_big.mdl", "#", "#", 2, "", "-456.991, 448.521, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_5_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_5_s_big.mdl", "#", "#", 2, "", "-516.985, 508.521, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/curve_6_s_big.mdl", "#", "#", 1, "", "-0.007, -8.504, 1"}) + PIECES:Record({"models/minitrains/curve_6_s_big.mdl", "#", "#", 2, "", "-576.985, 568.521, 1", "0,180,0"}) + PIECES:Record({"models/minitrains/rerailer.mdl", "#", "Rerailer Double", 1, "", "190, 0, 1.01758"}) + PIECES:Record({"models/minitrains/rerailer.mdl", "#", "Rerailer Double", 2, "", "-190, 0, 1.01758", "0,180,0"}) + PIECES:Record({"models/minitrains/sw_buffer_stop.mdl", "#", "Buffer Stop", 1, "", "9.43, -8.011, -1", "0,-180,0"}) + PIECES:Record({"models/minitrains/switch.mdl", "#", "Switch Y", 1, "", "0, -8.509, 1", "", "gmod_sw_minitrain_switch"}) + PIECES:Record({"models/minitrains/switch.mdl", "#", "Switch Y", 2, "", "-128, 6.493, 1", "0,-180,0", "gmod_sw_minitrain_switch"}) + PIECES:Record({"models/minitrains/switch.mdl", "#", "Switch Y", 3, "", "-128, -23.512, 1", "0,-180,0","gmod_sw_minitrain_switch"}) + PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 1, "", "16, 21.512, 1", "", "gmod_sw_minitrain_doubleswitch"}) + PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 2, "", "-144, 21.513, 1", "0,-180,0", "gmod_sw_minitrain_doubleswitch"}) + PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 3, "", "16, -8.515, 1", "", "gmod_sw_minitrain_doubleswitch"}) + PIECES:Record({"models/minitrains/switch_double.mdl", "#", "#", 4, "", "-144, -8.514, 1", "0,-180,0", "gmod_sw_minitrain_doubleswitch"}) + PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w1"}) + PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 2, "", "-97.94826,32.05148,1", "0,135,0", "gmod_sw_minitrain_switch_w1"}) + PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w1"}) + PIECES:Record({"models/minitrains/switch_w_1_128.mdl", "#", "#", 4, "", "-97.94826,-49.05152,1", "0,-135,0", "gmod_sw_minitrain_switch_w1"}) + PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w2"}) + PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 2, "", "-119.15060, 40.84935,1", "0, 135,0", "gmod_sw_minitrain_switch_w2"}) + PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,-180,0", "gmod_sw_minitrain_switch_w2"}) + PIECES:Record({"models/minitrains/switch_w_2_128.mdl", "#", "#", 4, "", "-119.15061,-57.84934,1", "0,-135,0", "gmod_sw_minitrain_switch_w2"}) + PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w3"}) + PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 2, "", "-140.36781,49.63218,1", "0,135,0", "gmod_sw_minitrain_switch_w3"}) + PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w3"}) + PIECES:Record({"models/minitrains/switch_w_3_128.mdl", "#", "#", 4, "", "-140.36781,-66.63219,1", "0,-135,0", "gmod_sw_minitrain_switch_w3"}) + PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w4"}) + PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 2, "", "-87.45033,8.87626,1", "0,157.5,0", "gmod_sw_minitrain_switch_w4"}) + PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w4"}) + PIECES:Record({"models/minitrains/switch_w_4_128.mdl", "#", "#", 4, "", "-87.45378,-25.86791,1", "0,-157.5,0", "gmod_sw_minitrain_switch_w4"}) + PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w5"}) + PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 2, "", "-98.92384,11.17581,1", "0,157.5,0", "gmod_sw_minitrain_switch_w5"}) + PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w5"}) + PIECES:Record({"models/minitrains/switch_w_5_128.mdl", "#", "#", 4, "", "-98.92188,-28.17954,1", "0,-157.5,0", "gmod_sw_minitrain_switch_w5"}) + PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_w6"}) + PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 2, "", "-110.40305,13.45934,1", "0,157.5,0", "gmod_sw_minitrain_switch_w6"}) + PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_w6"}) + PIECES:Record({"models/minitrains/switch_w_6_128.mdl", "#", "#", 4, "", "-110.40065,-30.46272,1", "0,-157.5,0", "gmod_sw_minitrain_switch_w6"}) + PIECES:Record({"models/minitrains/switch_y_1_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y1"}) + PIECES:Record({"models/minitrains/switch_y_1_128.mdl", "#", "#", 2, "", "-97.94826,32.05148,1", "0,135,0", "gmod_sw_minitrain_switch_y1"}) + PIECES:Record({"models/minitrains/switch_y_1_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y1"}) + PIECES:Record({"models/minitrains/switch_y_2_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y2"}) + PIECES:Record({"models/minitrains/switch_y_2_128.mdl", "#", "#", 2, "", "-119.15060, 40.84935,1", "0, 135,0", "gmod_sw_minitrain_switch_y2"}) + PIECES:Record({"models/minitrains/switch_y_2_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,-180,0", "gmod_sw_minitrain_switch_y2"}) + PIECES:Record({"models/minitrains/switch_y_3_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y3"}) + PIECES:Record({"models/minitrains/switch_y_3_128.mdl", "#", "#", 2, "", "-140.36781,49.63218,1", "0,135,0", "gmod_sw_minitrain_switch_y3"}) + PIECES:Record({"models/minitrains/switch_y_3_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y3"}) + PIECES:Record({"models/minitrains/switch_y_4_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y4"}) + PIECES:Record({"models/minitrains/switch_y_4_128.mdl", "#", "#", 2, "", "-87.45033,8.87626,1", "0,157.5,0", "gmod_sw_minitrain_switch_y4"}) + PIECES:Record({"models/minitrains/switch_y_4_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y4"}) + PIECES:Record({"models/minitrains/switch_y_5_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y5"}) + PIECES:Record({"models/minitrains/switch_y_5_128.mdl", "#", "#", 2, "", "-98.92384,11.17581,1", "0,157.5,0", "gmod_sw_minitrain_switch_y5"}) + PIECES:Record({"models/minitrains/switch_y_5_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y5"}) + PIECES:Record({"models/minitrains/switch_y_6_128.mdl", "#", "#", 1, "", "0,-8.5,1", "", "gmod_sw_minitrain_switch_y6"}) + PIECES:Record({"models/minitrains/switch_y_6_128.mdl", "#", "#", 2, "", "-110.40305,13.45934,1", "0,157.5,0", "gmod_sw_minitrain_switch_y6"}) + PIECES:Record({"models/minitrains/switch_y_6_128.mdl", "#", "#", 3, "", "-128,-8.5,1", "0,180,0", "gmod_sw_minitrain_switch_y6"}) - asmlib.LogInstance("<<< "..myScript) -else - myThrowError("Failed loading the required module") + if(gsModeDB == "SQL") then sqlCommit() end end + +asmlib.LogInstance("<<< "..myScript) diff --git a/data/trackassembly/tools/peaces_manager/create_report.bat b/data/trackassembly/tools/peaces_manager/create_report.bat index 75064077..d4a70352 100644 --- a/data/trackassembly/tools/peaces_manager/create_report.bat +++ b/data/trackassembly/tools/peaces_manager/create_report.bat @@ -30,8 +30,8 @@ set emd_chew_dbase=%emd_chew_gmod%\garrysmod\data\trackassembly\exp\trackasmlib_ set emd_chew_skip=%emd_chew_repo%\data\trackassembly\tools\peaces_manager\models_ignored.txt :: How many addons are to be processed -set emd_chew_addfrm=30 -set emd_chew_addcnt=30 +set emd_chew_addfrm=31 +set emd_chew_addcnt=31 :: GMA addons to be processed set emd_chew_addlst[1]=740453553 @@ -64,6 +64,7 @@ set emd_chew_addlst[27]=1955876643 set emd_chew_addlst[28]=3071058065 set emd_chew_addlst[29]=3297918081 set emd_chew_addlst[30]=3314861708 +set emd_chew_addlst[31]=2233731395 :: Folder list for extraction and the directories they will be extracted set emd_chew_adddir[1]=AlexCookie's 2ft track pack @@ -96,6 +97,7 @@ set emd_chew_adddir[27]=Trackmania United Props set emd_chew_adddir[28]=RockMan's Fortification set emd_chew_adddir[29]=SligWolf's Suspension Train set emd_chew_adddir[30]=Modular City Street +set emd_chew_adddir[31]=Scene Builder :: Show the current folder echo Running in: %emd_chew_pathb% diff --git a/data/trackassembly/trackasmlib_db.txt b/data/trackassembly/trackasmlib_db.txt index e8a7ffc1..08ba3b3b 100644 --- a/data/trackassembly/trackasmlib_db.txt +++ b/data/trackassembly/trackasmlib_db.txt @@ -1,4 +1,4 @@ -# CacheQueryPanel:(true) 20-09-10 17:47:37 [ LUA ] +# ExportSyncDB:(true) 20-09-10 17:47:37 [ LUA ] "models/alexcookie/2ft/curve/curve_90_512.mdl","AlexCookie's 2ft track pack","Curve 90 512" "models/alexcookie/2ft/misc/end1.mdl","AlexCookie's 2ft track pack","End1" "models/alexcookie/2ft/straight/straight_1024.mdl","AlexCookie's 2ft track pack","Straight 1024" diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index 1f264c13..66fb1545 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -14,6 +14,7 @@ local netSendToServer = net and net.SendToServer local netReceive = net and net.Receive local netReadEntity = net and net.ReadEntity local netReadVector = net and net.ReadVector +local netReadNormal = net and net.ReadNormal local netReadAngle = net and net.ReadAngle local netReadBool = net and net.ReadBool local netReadUInt = net and net.ReadUInt @@ -86,7 +87,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.765") +asmlib.SetOpVar("TOOL_VERSION","9.765") ------------ CONFIGURE GLOBAL INIT OPVARS ------------ @@ -100,10 +101,11 @@ local gnMaxRot = asmlib.GetOpVar("MAX_ROTATION") local gsToolNameL = asmlib.GetOpVar("TOOLNAME_NL") local gsToolPrefL = asmlib.GetOpVar("TOOLNAME_PL") local gsToolPrefU = asmlib.GetOpVar("TOOLNAME_PU") +local gsGenerPrf = asmlib.GetOpVar("DBEXP_PREFGEN") local gsLimitName = asmlib.GetOpVar("CVAR_LIMITNAME") +local gsDirDSV = asmlib.GetOpVar("DIRPATH_BAS")..asmlib.GetOpVar("DIRPATH_DSV") local gsNoAnchor = asmlib.GetOpVar("MISS_NOID")..gsSymRev..asmlib.GetOpVar("MISS_NOMD") -local gsFullDSV = asmlib.GetOpVar("DIRPATH_BAS")..asmlib.GetOpVar("DIRPATH_DSV").. - asmlib.GetInstPref()..asmlib.GetOpVar("TOOLNAME_PU") +local gsGrossDSV = gsDirDSV..gsGenerPrf..gsToolPrefU ------------ VARIABLE FLAGS ------------ @@ -149,6 +151,7 @@ asmlib.SetBorder(gsToolPrefL.."spawnrate", 1, 10) asmlib.SetBorder(gsToolPrefL.."sgradmenu", 1, 16) asmlib.SetBorder(gsToolPrefL.."dtmessage", 0, 10) asmlib.SetBorder(gsToolPrefL.."ghostblnd", 0, 1) +asmlib.SetBorder(gsToolPrefL.."crvsuprev", 0, 1) asmlib.SetBorder(gsToolPrefL.."rtradmenu", -gnMaxRot, gnMaxRot) ------------ CONFIGURE LOGGING ------------ @@ -455,46 +458,63 @@ if(CLIENT) then else asmlib.LogInstance("Admin: "..asmlib.GetReport(pAdmn.Name), sLog) end end, gsToolPrefL.."lang") - -- http://www.famfamfam.com/lab/icons/silk/preview.php + -- https://wiki.facepunch.com/gmod/Silkicons asmlib.ToIcon(gsToolPrefU.."PIECES" , "database_connect") asmlib.ToIcon(gsToolPrefU.."ADDITIONS" , "bricks" ) asmlib.ToIcon(gsToolPrefU.."PHYSPROPERTIES", "wand" ) asmlib.ToIcon(gsToolPrefL.."context_menu" , "database_gear" ) - asmlib.ToIcon("subfolder_item" , "folder" ) - asmlib.ToIcon("pn_externdb_bt1" , "database" ) - asmlib.ToIcon("pn_externdb_bt2" , "folder_database" ) - asmlib.ToIcon("pn_externdb_bt3" , "database_table" ) - asmlib.ToIcon("pn_externdb_bt4" , "database_link" ) - asmlib.ToIcon("pn_externdb_bt5" , "time_go" ) - asmlib.ToIcon("pn_externdb_bt6" , "compress" ) - asmlib.ToIcon("pn_externdb_bt7" , "database_edit" ) - asmlib.ToIcon("pn_externdb_bt8" , "database_delete" ) - asmlib.ToIcon("pn_externdb_cm1" , "database_key" ) - asmlib.ToIcon("pn_externdb_cm2" , "database_go" ) - asmlib.ToIcon("pn_externdb_cm3" , "database_connect") - asmlib.ToIcon("pn_externdb_cm4" , "database_edit" ) - asmlib.ToIcon("pn_externdb_cm5" , "database_add" ) - asmlib.ToIcon("pn_externdb_cm6" , "database_delete" ) - asmlib.ToIcon("pn_srchcol_lb1" , "brick" ) - asmlib.ToIcon("pn_srchcol_lb2" , "package" ) - asmlib.ToIcon("pn_srchcol_lb3" , "tag_green" ) - asmlib.ToIcon("pn_srchcol_lb4" , "arrow_refresh" ) - asmlib.ToIcon("model" , "brick" ) - asmlib.ToIcon("mass" , "basket_put" ) - asmlib.ToIcon("bgskids" , "layers" ) - asmlib.ToIcon("phyname" , "wand" ) - asmlib.ToIcon("ignphysgn" , "lightning_go" ) - asmlib.ToIcon("freeze" , "lock" ) - asmlib.ToIcon("gravity" , "ruby_put" ) - asmlib.ToIcon("weld" , "wrench" ) - asmlib.ToIcon("nocollide" , "shape_group" ) - asmlib.ToIcon("nocollidew" , "world_go" ) - asmlib.ToIcon("dsvlist_extdb" , "database_go" ) - asmlib.ToIcon("workmode_snap" , "plugin" ) -- General spawning and snapping mode - asmlib.ToIcon("workmode_cross" , "chart_line" ) -- Ray cross intersect interpolation - asmlib.ToIcon("workmode_curve" , "vector" ) -- Catmull-Rom curve line segment fitting - asmlib.ToIcon("workmode_over" , "shape_move_back" ) -- Trace normal ray location piece flip-spawn - asmlib.ToIcon("workmode_turn" , "arrow_turn_right") -- Produces smoother turns with Bezier curve + asmlib.ToIcon("subfolder_item" , "folder_brick" ) + asmlib.ToIcon("pn_contextm_cp" , "page_copy" ) + asmlib.ToIcon("pn_contextm_cpbx" , "application_go" ) + asmlib.ToIcon("pn_contextm_cprw" , "report_go" ) + asmlib.ToIcon("pn_contextm_cpty" , "database_go" ) + asmlib.ToIcon("pn_contextm_cpnm" , "script_go" ) + asmlib.ToIcon("pn_contextm_cpth" , "map_go" ) + asmlib.ToIcon("pn_contextm_cpmd" , "brick_go" ) + asmlib.ToIcon("pn_contextm_li" , "database" ) + asmlib.ToIcon("pn_contextm_licg" , "database_edit" ) + asmlib.ToIcon("pn_contextm_licr" , "database_add" ) + asmlib.ToIcon("pn_contextm_lirm" , "database_delete" ) + asmlib.ToIcon("pn_contextm_ws" , "cart" ) + asmlib.ToIcon("pn_contextm_wsid" , "key_go" ) + asmlib.ToIcon("pn_contextm_wsop" , "world" ) + asmlib.ToIcon("pn_contextm_ex" , "transmit" ) + asmlib.ToIcon("pn_contextm_exdv" , "database_table" ) + asmlib.ToIcon("pn_contextm_exru" , "script_code" ) + asmlib.ToIcon("pn_contextm_mv" , "joystick" ) + asmlib.ToIcon("pn_contextm_mvup" , "arrow_up" ) + asmlib.ToIcon("pn_contextm_mvdn" , "arrow_down" ) + asmlib.ToIcon("pn_contextm_mvtp" , "arrow_redo" ) + asmlib.ToIcon("pn_contextm_mvbt" , "arrow_undo" ) + asmlib.ToIcon("pn_contextm_st" , "database_gear" ) + asmlib.ToIcon("pn_contextm_si" , "database_key" ) + asmlib.ToIcon("pn_contextm_stnk" , "folder_find" ) + asmlib.ToIcon("pn_contextm_stpt" , "map_go" ) + asmlib.ToIcon("pn_contextm_sttm" , "time_go" ) + asmlib.ToIcon("pn_contextm_stsz" , "compress" ) + asmlib.ToIcon("pn_contextm_sted" , "table_edit" ) + asmlib.ToIcon("pn_contextm_stdl" , "table_delete" ) + asmlib.ToIcon("pn_contextm_tg" , "database_connect" ) + asmlib.ToIcon("pn_contextm_ep" , "zoom" ) + asmlib.ToIcon("pn_routine_end" , "arrow_refresh" ) + asmlib.ToIcon("pn_routine_typ" , "package" ) + asmlib.ToIcon("pn_routine_nam" , "tag_green" ) + asmlib.ToIcon("pn_routine_mod" , "brick" ) + asmlib.ToIcon("model" , "brick" ) + asmlib.ToIcon("mass" , "basket_put" ) + asmlib.ToIcon("bgskids" , "layers" ) + asmlib.ToIcon("phyname" , "wand" ) + asmlib.ToIcon("ignphysgn" , "lightning_go" ) + asmlib.ToIcon("freeze" , "lock" ) + asmlib.ToIcon("gravity" , "ruby_put" ) + asmlib.ToIcon("weld" , "wrench" ) + asmlib.ToIcon("nocollide" , "shape_group" ) + asmlib.ToIcon("nocollidew" , "world_go" ) + asmlib.ToIcon("workmode_snap" , "plugin" ) -- General spawning and snapping mode + asmlib.ToIcon("workmode_cross" , "chart_line" ) -- Ray cross intersect interpolation + asmlib.ToIcon("workmode_curve" , "vector" ) -- Catmull-Rom curve line segment fitting + asmlib.ToIcon("workmode_over" , "shape_move_back" ) -- Trace normal ray location piece flip-spawn + asmlib.ToIcon("workmode_turn" , "arrow_turn_right" ) -- Produces smoother turns with Bezier curve asmlib.ToIcon("property_type" , "package_green" ) asmlib.ToIcon("property_name" , "note" ) asmlib.ToIcon("modedb_lua" , "database_lightning") @@ -506,6 +526,7 @@ if(CLIENT) then asmlib.ToIcon("bnderrmod_hint" , "shape_square_go" ) asmlib.ToIcon("bnderrmod_generic", "shape_square_link" ) asmlib.ToIcon("bnderrmod_error" , "shape_square_error") + -- Workshop matching crap asmlib.WorkshopID("SligWolf's Rerailer" , "132843280") asmlib.WorkshopID("SligWolf's Mini Trains" , "149759773") @@ -536,6 +557,7 @@ if(CLIENT) then asmlib.WorkshopID("RockMan's Fortification" , "3071058065") asmlib.WorkshopID("SligWolf's Suspension Train" , "3297918081") asmlib.WorkshopID("Modular City Street" , "3314861708") + asmlib.WorkshopID("Scene Builder" , "2233731395") asmlib.SetAction("CLEAR_GHOSTS" , function() asmlib.ClearGhosts() end) asmlib.SetAction("CTXMENU_OPEN" , function() asmlib.IsFlag("tg_context_menu", true ) end) @@ -543,9 +565,11 @@ if(CLIENT) then asmlib.SetAction("CREATE_CURVE_NODE", function(nLen) local oPly, sLog = netReadEntity(), "*CREATE_CURVE_NODE" - local vNode, vNorm, vBase = netReadVector(), netReadVector(), netReadVector() + local vNode, vNorm, vBase = netReadVector(), netReadNormal(), netReadVector() local vOrgw, aAngw, bRayw = netReadVector(), netReadAngle() , netReadBool() - local tC = asmlib.GetCacheCurve(oPly) -- Read the curve data location + local iD, tC = netReadUInt(16), asmlib.GetCacheCurve(oPly) -- Read the curve + if(iD > 0 and tC.Norm[iD] and tC.Size and tC.Size >= 2) then + tC.Norm[iD]:Set(netReadNormal()) end -- Update the previews curve normal tableInsert(tC.Node, vNode); tableInsert(tC.Norm, vNorm) tableInsert(tC.Base, vBase); tableInsert(tC.Rays, {vOrgw, aAngw, bRayw}) tC.Size = (tC.Size + 1) -- Register the index after writing the data for drawing @@ -553,7 +577,7 @@ if(CLIENT) then asmlib.SetAction("UPDATE_CURVE_NODE", function(nLen) local oPly, sLog = netReadEntity(), "*UPDATE_CURVE_NODE" - local vNode, vNorm, vBase = netReadVector(), netReadVector(), netReadVector() + local vNode, vNorm, vBase = netReadVector(), netReadNormal(), netReadVector() local vOrgw, aAngw, bRayw = netReadVector(), netReadAngle() , netReadBool() local iD, tC = netReadUInt(16), asmlib.GetCacheCurve(oPly) tC.Node[iD]:Set(vNode); tC.Norm[iD]:Set(vNorm) @@ -563,9 +587,14 @@ if(CLIENT) then asmlib.SetAction("DELETE_CURVE_NODE", function(nLen) local oPly, sLog = netReadEntity(), "*DELETE_CURVE_NODE" local tC = asmlib.GetCacheCurve(oPly) - tC.Size = (tC.Size - 1) -- Register the index before wiping the data for drawing - tableRemove(tC.Node); tableRemove(tC.Norm) - tableRemove(tC.Base); tableRemove(tC.Rays) + if(tC.Size and tC.Size > 0) then + tC.Size = (tC.Size - 1) -- Register the index before wiping the data for drawing + tableRemove(tC.Node); tableRemove(tC.Norm) + tableRemove(tC.Base); tableRemove(tC.Rays) + if(tC.Size and tC.Size > 0) then + tC.Norm[tC.Size]:Set(tC.Rays[tC.Size][2]:Up()) + end + end end) asmlib.SetAction("DELETE_ALL_CURVE_NODE", @@ -700,8 +729,9 @@ if(CLIENT) then end; acTo:UpdateGhost(oPly) -- Update ghosts stack for the local player end) -- Read client configuration - asmlib.SetAction("OPEN_EXTERNDB", -- Must have the same parameters as the hook - function(oPly,oCom,oArgs) + asmlib.SetAction("OPEN_EXTERNDB", + function() -- Must have the same parameters as the hook + local oPly = LocalPlayer() local sLog = "*OPEN_EXTERNDB" local scrW = surfaceScreenWidth() local scrH = surfaceScreenHeight() @@ -721,11 +751,6 @@ if(CLIENT) then if(IsValid(pnSelf)) then pnSelf:Remove() end -- Delete the valid panel if(asmlib.IsHere(iK)) then conElements:Pull(iK) end -- Pull the key out end - local pnSheet = vguiCreate("DPropertySheet") - if(not IsValid(pnSheet)) then pnFrame:Close() - asmlib.LogInstance("Sheet invalid",sLog); return nil end - pnSheet:SetParent(pnFrame) - pnSheet:Dock(FILL) local sMis = asmlib.GetOpVar("MISS_NOAV") local sLib = asmlib.GetOpVar("NAME_LIBRARY") local sBas = asmlib.GetOpVar("DIRPATH_BAS") @@ -735,50 +760,62 @@ if(CLIENT) then local sDsv = sBas..asmlib.GetOpVar("DIRPATH_DSV") local fDSV = sDsv..("%s"..sPrU.."%s.txt") local sNam = (sBas..sSet..sLib.."_dsv.txt") - local pnDSV = vguiCreate("DPanel") - if(not IsValid(pnDSV)) then pnFrame:Close() - asmlib.LogInstance("DSV list invalid",sLog); return nil end - pnDSV:SetParent(pnSheet) - pnDSV:DockMargin(xyDsz.x, xyDsz.y, xyDsz.x, xyDsz.y) - pnDSV:DockPadding(xyDsz.x, xyDsz.y, xyDsz.x, xyDsz.y) - pnDSV:Dock(FILL) - local tInfo = pnSheet:AddSheet("DSV", pnDSV, asmlib.ToIcon("dsvlist_extdb")) - tInfo.Tab:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_externdb").." DSV") - local sDel, nB, nW, nH = "\t", 22, pnFrame:GetSize() - xyPos.x, xyPos.y = xyDsz.x, xyDsz.y - xySiz.x = (nW - 6 * xyDsz.x) - xySiz.y = ((nH - 6 * xyDsz.y) - 52) + local nW, nH = pnFrame:GetSize() + local sDel, nB, nT = "\t", 22, 23 + xyPos.x, xyPos.y = xyDsz.x, (xyDsz.y + nT) + xySiz.x = (nW - 2 * xyDsz.x) + xySiz.y = (nH - nT - 2*xyDsz.y) - 2*xyDsz.y - 2*nB local wAct = mathFloor(((gnRatio - 1) / 10) * xySiz.x) local wUse, wSrc = mathFloor(xySiz.x - wAct), (xySiz.x * nAut) local pnListView = vguiCreate("DListView") if(not IsValid(pnListView)) then pnFrame:Close() asmlib.LogInstance("List view invalid",sLog); return nil end - xySiz.y = xySiz.y - 3*xyDsz.y - 2*nB - pnListView:SetParent(pnDSV) + pnListView:SetParent(pnFrame) pnListView:SetVisible(true) pnListView:SetSortable(false) pnListView:SetMultiSelect(false) pnListView:SetPos(xyPos.x, xyPos.y) pnListView:SetSize(xySiz.x, xySiz.y) - pnListView:SetName(languageGetPhrase("tool."..gsToolNameL..".pn_ext_dsv_lb")) - pnListView:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_ext_dsv_hd")) - pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_ext_dsv_1")):SetFixedWidth(wAct) - pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_ext_dsv_2")):SetFixedWidth(wUse - wSrc) - pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_ext_dsv_3")):SetFixedWidth(wSrc) + pnListView:SetName(languageGetPhrase("tool."..gsToolNameL..".pn_extdsv_lb")) + pnListView:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_extdsv_hd")) + pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_extdsv_act")):SetFixedWidth(wAct) + pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_extdsv_prf")):SetFixedWidth(wUse - wSrc) + pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_extdsv_inf")):SetFixedWidth(wSrc) -- Next entry to import/export to list view xyPos.y = xyPos.y + xySiz.y + xyDsz.y xySiz.y = nB -- General Y-size of elements local tpText = {Size = #pnListView.Columns} + function tpText:Scan(pnRow, bChng) + if(not IsValid(pnRow)) then return end + local bChng = (bChng and asmlib.IsHere(bChng)) + for iV = 1, self.Size do + local ptx = self[iV] -- Pick a panel + local str = pnRow:GetColumnText(iV) + ptx:SetValue(str); ptx:SetText(str) + end -- Exchange data with list view and text. Setup change line flag + if(bChng) then self.Chng = true else self.Chng = nil end + end + function tpText:Swap(pnSor, pnDes) + if(not IsValid(pnSor)) then return end + if(not IsValid(pnDes)) then return end + local bChng = (bChng and asmlib.IsHere(bChng)) + for iV = 1, self.Size do + local str = pnDes:GetColumnText(iV) + pnDes:SetColumnText(iV, pnSor:GetColumnText(iV)) + pnSor:SetColumnText(iV, str) + pnListView:ClearSelection() + pnListView:SelectItem(pnDes) + end -- Exchange data with list view and text. Setup change line flag + end for iC = 1, tpText.Size do local pC = pnListView.Columns[iC] local cW = math.min(pC:GetMinWidth(), pC:GetMaxWidth()) if(iC == 1 or iC == tpText.Size) then xySiz.x = cW - (xyDsz.x / 2) else xySiz.x = cW - xyDsz.x end; pC:SetWide(cW) - local pnText = vguiCreate("DTextEntry") - if(not IsValid(pnText)) then pnFrame:Close() - asmlib.LogInstance("Text entry active invalid", sLog); return nil end - pnText:SetParent(pnDSV) + local pnText = vguiCreate("DTextEntry"); if(not IsValid(pnText)) then pnFrame:Close() + asmlib.LogInstance("Entry invalid "..GetReport(iC), sLog..".TextEntry"); return nil end + pnText:SetParent(pnFrame) pnText:SetEditable(true) pnText:SetPos(xyPos.x, xyPos.y) pnText:SetSize(xySiz.x, xySiz.y) @@ -786,7 +823,6 @@ if(CLIENT) then ..languageGetPhrase("tool."..gsToolNameL..".pn_ext_dsv_"..iC)) xyPos.x = xyPos.x + xySiz.x + xyDsz.x; tpText[iC] = pnText pnText.OnEnter = function(pnSelf) - local nID, pnRow = pnListView:GetSelectedLine() local tDat, sMis = {}, asmlib.GetOpVar("MISS_NOAV") for iV = 1, tpText.Size do tDat[iV] = tpText[iV]:GetValue() end -- Active line. Contains X/V @@ -799,11 +835,15 @@ if(CLIENT) then -- Additional information. It can be anything tDat[3] = tostring(tDat[3] or ""):Trim() tDat[3] = (asmlib.IsBlank(tDat[3]) and sMis or tDat[3]) - if(not asmlib.IsBlank(tDat[1]) and not asmlib.IsBlank(tDat[2])) then - if(nID and nID > 0 and pnRow and not tpText[1].m_NewDSV) then local iU = 1 - while(pnRow.Columns[iU]) do pnRow:SetColumnText(iU, tDat[iU]); iU = iU + 1 end - else pnListView:AddLine(tDat[1], tDat[2], tDat[3]):SetTooltip(tDat[3]) - end; end; for iV = 1, tpText.Size do tpText[iV]:SetValue(""); tpText[iV]:SetText("") end + if(asmlib.IsBlank(tDat[1])) then return end + if(asmlib.IsBlank(tDat[2])) then return end + local iD, pnRow = pnListView:GetSelectedLine() + if(asmlib.IsHere(iD) and IsValid(pnRow)) then + if(iD and iD > 0 and pnRow and tpText.Chng) then tpText.Chng = nil + for iU = 1, tpText.Size do pnRow:SetColumnText(iU, tDat[iU]) end + else pnListView:AddLine(tDat[1], tDat[2], tDat[3]):SetTooltip(tDat[3]) end + else pnListView:AddLine(tDat[1], tDat[2], tDat[3]):SetTooltip(tDat[3]) end + for iV = 1, tpText.Size do tpText[iV]:SetValue(""); tpText[iV]:SetText("") end end end -- Import button. when clicked loads file into the panel @@ -815,18 +855,23 @@ if(CLIENT) then xySiz.x = ((pnListView:GetWide() - xyDsz.x) / 2) pnImport:SetPos(xyPos.x, xyPos.y) pnImport:SetSize(xySiz.x, xySiz.y) - pnImport:SetParent(pnDSV) + pnImport:SetParent(pnFrame) pnImport:SetFont("Trebuchet24") pnImport:SetText(languageGetPhrase("tool."..gsToolNameL..".pn_externdb_bti")) pnImport:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_externdb_bti_tp")) pnImport.DoRightClick = function() end - pnImport.DoClick = function(pnSelf) + pnImport.DoClick = function(pnSelf) pnListView:Clear() if(not fileExists(sNam, "DATA")) then fileWrite(sNam, "") end - local oDSV = fileOpen(sNam, "rb", "DATA"); if(not oDSV) then pnFrame:Close() - asmlib.LogInstance("DSV list missing",sLog); return nil end; pnListView:Clear() + local fD = fileOpen(sNam, "rb", "DATA"); if(not fD) then pnFrame:Close() + asmlib.LogInstance("File error", sLog..".Import"); return nil end + local sGen = (gsDirDSV..gsGenerPrf..gsToolPrefU.."*.txt") + local tGen = fileFind(sGen, "DATA"); if(tGen and #tGen > 0) then + pnListView:AddLine("V", gsGenerPrf, sGen):SetTooltip(gsDirDSV) + else local iG = (tGen and #tGen or 0) + asmlib.LogInstance("Generic database: "..asmlib.GetReport(iG, sGen), sLog..".Import") end local sLine, bEOF, bAct = "", false, true while(not bEOF) do - sLine, bEOF = asmlib.GetStringFile(oDSV) + sLine, bEOF = asmlib.GetStringFile(fD) if(not asmlib.IsBlank(sLine)) then local sKey, sPrg if(not asmlib.IsDisable(sLine)) then bAct = true else bAct, sLine = false, sLine:sub(2,-1):Trim() end @@ -837,7 +882,7 @@ if(CLIENT) then else sKey, sPrg = sLine, sMis end pnListView:AddLine((bAct and "V" or "X"), sKey, sPrg):SetTooltip(sPrg) end - end; oDSV:Close() + end; fD:Close() end; pnImport:DoClick() -- Export button. When clicked loads contents into the file local pnExport = vguiCreate("DButton") @@ -846,150 +891,152 @@ if(CLIENT) then xyPos.x = xyPos.x + xySiz.x + xyDsz.x pnExport:SetPos(xyPos.x, xyPos.y) pnExport:SetSize(xySiz.x, xySiz.y) - pnExport:SetParent(pnDSV) + pnExport:SetParent(pnFrame) pnExport:SetFont("Trebuchet24") pnExport:SetText(languageGetPhrase("tool."..gsToolNameL..".pn_externdb_bte")) pnExport:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_externdb_bte_tp")) pnExport.DoRightClick = function() end pnExport.DoClick = function(pnSelf) - local oDSV = fileOpen(sNam, "wb", "DATA") - if(not oDSV) then pnFrame:Close() - asmlib.LogInstance("DSV list missing",sLog..".ListView"); return nil end + local fD = fileOpen(sNam, "wb", "DATA"); if(not fD) then pnFrame:Close() + asmlib.LogInstance("File error",sLog..".Export"); return nil end local tLine = pnListView:GetLines() local sOff = asmlib.GetOpVar("OPSYM_DISABLE") - for iK, pnCur in pairs(tLine) do - local sAct = ((pnCur:GetColumnText(1) == "V") and "" or sOff) - local sPrf = pnCur:GetColumnText(2) - local sPth = pnCur:GetColumnText(3) + for iL = 1, #tLine do local pCur = tLine[iL] + local sAct = ((pCur:GetColumnText(1) == "V") and "" or sOff) + local sPrf, sPth = pCur:GetColumnText(2), pCur:GetColumnText(3) if(not asmlib.IsBlank(sPth)) then sPth = sDel..sPth end - oDSV:Write(sAct..sPrf..sPth.."\n") - end; oDSV:Flush(); oDSV:Close() - end - local function convRow(pnRow) - local sSep = asmlib.GetOpVar("OPSYM_VERTDIV") - local sAct = pnRow:GetColumnText(1) -- Active - local sPrf = pnRow:GetColumnText(2) -- PK - local sPth = pnRow:GetColumnText(3) -- Path - if(not asmlib.IsBlank(sPth)) then sPth = sSep..sPth end - return (sAct..sSep..sPrf..sPth) -- Divided - end - local function excgRow(pnRow) - for iV = 1, tpText.Size do - local ptx = tpText[iV] -- Pick a panel - local str = pnRow:GetColumnText(iV) - ptx:SetValue(str); ptx:SetText(str) - end -- Exchange data with list view and text + if(sPrf ~= gsGenerPrf) then fD:Write(sAct..sPrf..sPth.."\n") end + end; fD:Flush(); fD:Close() end pnListView.OnRowRightClick = function(pnSelf, nIndex, pnLine) - if(inputIsMouseDown(MOUSE_RIGHT)) then - local pnMenu = vguiCreate("DMenu") - if(not IsValid(pnMenu)) then pnFrame:Close() - asmlib.LogInstance("Menu invalid",sLog..".ListView"); return nil end - local mX, mY = inputGetCursorPos() - local iO, tOptions = 1, { - function() - local cC, cX, cY = 0, pnSelf:ScreenToLocal(mX, mY) - while(cX > 0) do cC = (cC + 1); cX = (cX - pnSelf:ColumnWidth(cC)) - end; local nID, pnRow = pnSelf:GetSelectedLine() - if(nID and nID > 0 and pnRow) then SetClipboardText(pnRow:GetColumnText(cC)) end - end, - function() SetClipboardText(convRow(pnLine)) end, - function() pnLine:SetColumnText(1, ((pnLine:GetColumnText(1) == "V") and "X" or "V")) end, - function() excgRow(pnLine); tpText[1].m_NewDSV = false end, - function() excgRow(pnLine); tpText[1].m_NewDSV = true end, - function() pnSelf:RemoveLine(nIndex) end - } - while(tOptions[iO]) do local sO = tostring(iO) - local sDescr = languageGetPhrase("tool."..gsToolNameL..".pn_externdb_cm"..sO) - pnMenu:AddOption(sDescr, tOptions[iO]):SetIcon(asmlib.ToIcon("pn_externdb_cm"..sO)) - iO = iO + 1 -- Loop trough the functions list and add to the menu - end; pnMenu:Open() - end -- Process only the right mouse button - end -- Populate the tables for every database - local iD, makTab = 1, asmlib.GetBuilderID(1) - while(makTab) do - local pnTable = vguiCreate("DPanel") - if(not IsValid(pnTable)) then pnFrame:Close() - asmlib.LogInstance("Category invalid",sLog); return nil end - local defTab = makTab:GetDefinition() - pnTable:SetParent(pnSheet) - pnTable:DockMargin(xyDsz.x, xyDsz.y, xyDsz.x, xyDsz.y) - pnTable:DockPadding(xyDsz.x, xyDsz.y, xyDsz.x, xyDsz.y) - pnTable:Dock(FILL) - local tInfo = pnSheet:AddSheet(defTab.Nick, pnTable, asmlib.ToIcon(defTab.Name)) - tInfo.Tab:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_externdb").." "..defTab.Nick) - local tFile = fileFind(fDSV:format("*", defTab.Nick), "DATA") - if(istable(tFile) and tFile[1]) then - local nF, nW, nH = #tFile, pnFrame:GetSize() - xySiz.x, xyPos.x, xyPos.y = (nW - 6 * xyDsz.x), xyDsz.x, xyDsz.y - xySiz.y = (((nH - 6 * xyDsz.y) - ((nF -1) * xyDsz.y) - 52) / nF) - for iP = 1, nF do local sCur = tFile[iP] - local pnManage = vguiCreate("DButton") - if(not IsValid(pnSheet)) then pnFrame:Close() - asmlib.LogInstance("Button invalid ["..tostring(iP).."]",sLog); return nil end - local nS, nE = sCur:upper():find(sPrU..defTab.Nick); - if(nS and nE) then - local sPref = sCur:sub(1, nS - 1) - local sFile = fDSV:format(sPref, defTab.Nick) - pnManage:SetParent(pnTable) - pnManage:SetPos(xyPos.x, xyPos.y) - pnManage:SetSize(xySiz.x, xySiz.y) - pnManage:SetFont("Trebuchet24") - pnManage:SetText(sPref) - pnManage:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_externdb_lb").." "..sFile) - pnManage.DoRightClick = function(pnSelf) - local pnMenu = vguiCreate("DMenu") - if(not IsValid(pnMenu)) then pnFrame:Close() - asmlib.LogInstance("Menu invalid",sLog..".Button"); return nil end - local iO, tOptions = 1, { - function() SetClipboardText(pnSelf:GetText()) end, - function() SetClipboardText(sDsv) end, - function() SetClipboardText(defTab.Nick) end, - function() SetClipboardText(sFile) end, - function() SetClipboardText(asmlib.GetDateTime(fileTime(sFile, "DATA"))) end, - function() SetClipboardText(tostring(fileSize(sFile, "DATA")).."B") end, - function() -- Edit the database contents using the Luapad addon - if(not luapad) then return end -- Luapad is not installed do nothing - asmlib.LogInstance("Edit "..asmlib.GetReport(sFile), sLog..".Button") - if(luapad.Frame) then luapad.Frame:SetVisible(true) - else asmlib.SetAsmConvar(oPly, "*luapad", gsToolNameL) end - luapad.AddTab("["..defTab.Nick.."]"..pnSelf:GetText(), fileRead(sFile, "DATA"), sDsv); - if(defTab.Nick == "PIECES") then -- Load the category provider for this DSV - local sCat = fDSV:format(sPref, "CATEGORY"); if(fileExists(sCat,"DATA")) then - luapad.AddTab("[CATEGORY]"..pnSelf:GetText(), fileRead(sCat, "DATA"), sDsv); - end -- This is done so we can distinguish between luapad and other panels - end -- Luapad is designed not to be closed so we need to make it invisible - luapad.Frame:SetVisible(true); luapad.Frame:Center() - luapad.Frame:MakePopup(); conElements:Push({luapad.Frame}) - end, - function() fileDelete(sFile) - asmlib.LogInstance("Delete "..asmlib.GetReport(sFile), sLog..".Button") - if(defTab.Nick == "PIECES") then local sCat = fDSV:format(sPref, "CATEGORY") - if(fileExists(sCat,"DATA")) then fileDelete(sCat) -- Delete category when present - asmlib.LogInstance("Deleted "..asmlib.GetReport(sCat), sLog..".Button") end - end; pnManage:Remove() + local pnMenu = vguiCreate("DMenu") + if(not IsValid(pnMenu)) then pnFrame:Close() + asmlib.LogInstance("Menu invalid",sLog..".ListView"); return nil end + local sI, mX, mY = "pn_contextm_", inputGetCursorPos() + local sP, sT = pnLine:GetColumnText(2), ("tool."..gsToolNameL.."."..sI) + -- Enable and disable DSV + pnMenu:AddOption(languageGetPhrase(sT.."tg"), + function() pnLine:SetColumnText(1, ((pnLine:GetColumnText(1) == "V") and "X" or "V")) + end):SetImage(asmlib.ToIcon(sI.."tg")) + -- Copy to clipboard various values and things + local pIn, pOp = pnMenu:AddSubMenu(languageGetPhrase(sT.."cp")) + if(not IsValid(pIn)) then pnFrame:Close() + asmlib.LogInstance("Copy menu invalid",sLog..".ListView"); return nil end + if(not IsValid(pOp)) then pnFrame:Close() + asmlib.LogInstance("Copy opts invalid",sLog..".ListView"); return nil end + pOp:SetIcon(asmlib.ToIcon(sI.."cp")) + pIn:AddOption(languageGetPhrase(sT.."cpbx"), + function() asmlib.SetListViewBoxClipboard(pnSelf, mX, mY) end):SetImage(asmlib.ToIcon(sI.."cpbx")) + pIn:AddOption(languageGetPhrase(sT.."cprw"), + function() asmlib.SetListViewRowClipboard(pnSelf) end):SetImage(asmlib.ToIcon(sI.."cprw")) + pIn:AddOption(languageGetPhrase(sT.."cpth"), + function() SetClipboardText(sDsv) end):SetImage(asmlib.ToIcon(sI.."cpth")) + -- Panel data line manipulation for import/export + local pIn, pOp = pnMenu:AddSubMenu(languageGetPhrase(sT.."li")) + if(not IsValid(pIn)) then pnFrame:Close() + asmlib.LogInstance("Internals menu invalid",sLog..".ListView"); return nil end + if(not IsValid(pOp)) then pnFrame:Close() + asmlib.LogInstance("Internals opts invalid",sLog..".ListView"); return nil end + pOp:SetIcon(asmlib.ToIcon(sI.."li")) + pIn:AddOption(languageGetPhrase(sT.."licg"), + function() tpText:Scan(pnLine, true) end):SetImage(asmlib.ToIcon(sI.."licg")) + pIn:AddOption(languageGetPhrase(sT.."licr"), + function() tpText:Scan(pnLine) end):SetImage(asmlib.ToIcon(sI.."licr")) + pIn:AddOption(languageGetPhrase(sT.."lirm"), + function() pnSelf:RemoveLine(nIndex) end):SetImage(asmlib.ToIcon(sI.."lirm")) + -- Move current line around + local pIn, pOp = pnMenu:AddSubMenu(languageGetPhrase(sT.."mv")) + if(not IsValid(pIn)) then pnFrame:Close() + asmlib.LogInstance("Internals menu invalid",sLog..".ListView"); return nil end + if(not IsValid(pOp)) then pnFrame:Close() + asmlib.LogInstance("Internals opts invalid",sLog..".ListView"); return nil end + pOp:SetIcon(asmlib.ToIcon(sI.."mv")) + pIn:AddOption(languageGetPhrase(sT.."mvup"), + function() + if(nIndex <= 1) then return end + tpText:Swap(pnLine, pnSelf:GetLine(nIndex - 1)) + end):SetImage(asmlib.ToIcon(sI.."mvup")) + pIn:AddOption(languageGetPhrase(sT.."mvdn"), + function() local nT = #pnSelf:GetLines() + if(nIndex >= nT) then return end + tpText:Swap(pnLine, pnSelf:GetLine(nIndex + 1)) + end):SetImage(asmlib.ToIcon(sI.."mvdn")) + pIn:AddOption(languageGetPhrase(sT.."mvtp"), + function() + if(nIndex <= 1) then return end + tpText:Swap(pnLine, pnSelf:GetLine(1)) + end):SetImage(asmlib.ToIcon(sI.."mvtp")) + pIn:AddOption(languageGetPhrase(sT.."mvbt"), + function() local nT = #pnSelf:GetLines() + if(nIndex >= nT) then return end + tpText:Swap(pnLine, pnSelf:GetLine(nT)) + end):SetImage(asmlib.ToIcon(sI.."mvbt")) + -- Populate the sub-menu with all table nicknames + local iD, pIn, pOp = 1, nil, nil + local makTab = asmlib.GetBuilderID(iD) + while(makTab) do + local defTab = makTab:GetDefinition() + local sFile = fDSV:format(sP, defTab.Nick) + if(fileExists(sFile, "DATA")) then + if(not (pIn and pOp)) then + -- Manipulate content local settings related to the line + pIn, pOp = pnMenu:AddSubMenu(languageGetPhrase(sT.."st")) + if(not IsValid(pIn)) then pnFrame:Close() + asmlib.LogInstance("Settings menu invalid",sLog..".ListView"); return nil end + if(not IsValid(pOp)) then pnFrame:Close() + asmlib.LogInstance("Settings opts invalid",sLog..".ListView"); return nil end + pOp:SetIcon(asmlib.ToIcon(sI.."st")) + end -- When there is at least one DSV table present make table sub-menu + if(pIn and pOp) then -- When the sub-menu pointer is available add tables + local pTb, pOb = pIn:AddSubMenu(defTab.Nick) + if(not IsValid(pTb)) then pnFrame:Close() + asmlib.LogInstance("Manage menu invalid"..GetReport(iD, defTab.Nick),sLog..".ListView"); return nil end + if(not IsValid(pOb)) then pnFrame:Close() + asmlib.LogInstance("Manage opts invalid",sLog..".ListView"); return nil end + pOb:SetIcon(asmlib.ToIcon(sI.."si")) + pTb:AddOption(languageGetPhrase(sT.."stnk"), + function() SetClipboardText(defTab.Nick) end):SetImage(asmlib.ToIcon(sI.."stnk")) + pTb:AddOption(languageGetPhrase(sT.."stpt"), + function() SetClipboardText(sFile) end):SetImage(asmlib.ToIcon(sI.."stpt")) + pTb:AddOption(languageGetPhrase(sT.."sttm"), + function() SetClipboardText(asmlib.GetDateTime(fileTime(sFile, "DATA"))) end):SetImage(asmlib.ToIcon(sI.."sttm")) + pTb:AddOption(languageGetPhrase(sT.."stsz"), + function() SetClipboardText(tostring(fileSize(sFile, "DATA")).."B") end):SetImage(asmlib.ToIcon(sI.."stsz")) + pTb:AddOption(languageGetPhrase(sT.."sted"), + function() -- Edit the database contents using the Luapad addon + if(not luapad) then return end -- Luapad is not installed do nothing + asmlib.LogInstance("Modify "..asmlib.GetReport(sFile), sLog..".ListView") + if(luapad.Frame) then luapad.Frame:SetVisible(true); luapad.Frame:Center() else luapad.Toggle() end + luapad.AddTab("["..sP.."]["..defTab.Nick.."]", fileRead(sFile, "DATA"), sDsv); + if(defTab.Nick == "PIECES") then -- Load the category provider for this DSV + local sCats = fDSV:format(sP, "CATEGORY"); if(fileExists(sCats,"DATA")) then + luapad.AddTab("["..sP.."][CATEGORY]", fileRead(sCats, "DATA"), sDsv); + end -- This is done so we can distinguish between luapad and other panels + end -- Luapad is designed not to be closed so we need to make it invisible + luapad.Frame:SetVisible(true); luapad.Frame:Center() + luapad.Frame:MakePopup(); conElements:Push({luapad.Frame}) + end):SetImage(asmlib.ToIcon(sI.."sted")) + pTb:AddOption(languageGetPhrase(sT.."stdl"), + function() fileDelete(sFile) + asmlib.LogInstance("Deleted "..asmlib.GetReport(sFile), sLog..".ListView") + if(defTab.Nick == "PIECES") then local sCats = fDSV:format(sP, "CATEGORY") + if(fileExists(sCats,"DATA")) then fileDelete(sCats) -- Delete category when present + asmlib.LogInstance("Deleted "..asmlib.GetReport(sCats), sLog..".ListView") end end - } - while(tOptions[iO]) do local sO = tostring(iO) - local sDescr = languageGetPhrase("tool."..gsToolNameL..".pn_externdb_bt"..sO) - pnMenu:AddOption(sDescr, tOptions[iO]):SetIcon(asmlib.ToIcon("pn_externdb_bt"..sO)) - iO = iO + 1 -- Loop trough the functions list and add them to the menu - end; pnMenu:Open() - end - else asmlib.LogInstance("File missing ["..tostring(iP).."]",sLog..".Button") end - xyPos.y = xyPos.y + xySiz.y + xyDsz.y + end):SetImage(asmlib.ToIcon(sI.."stdl")) + end end - else - asmlib.LogInstance("Missing <"..defTab.Nick..">",sLog) + iD = (iD + 1); makTab = asmlib.GetBuilderID(iD) end - iD = (iD + 1); makTab = asmlib.GetBuilderID(iD) - end; pnFrame:SetVisible(true); pnFrame:Center(); pnFrame:MakePopup() + pnMenu:Open() + end -- Populate the tables for every database + pnFrame:SetVisible(true); pnFrame:Center(); pnFrame:MakePopup() conElements:Push(pnFrame); asmlib.LogInstance("Success",sLog); return nil end) -- Read client configuration asmlib.SetAction("OPEN_FRAME", function(oPly,oCom,oArgs) local sLog = "*OPEN_FRAME" - local frUsed, nCount = asmlib.GetFrequentModels(oArgs[1]); if(not asmlib.IsHere(frUsed)) then + local frUsed = asmlib.GetFrequentPieces(oArgs[1]); if(not asmlib.IsHere(frUsed)) then asmlib.LogInstance("Retrieving most frequent models failed ["..tostring(oArgs[1]).."]",sLog); return nil end local makTab = asmlib.GetBuilderNick("PIECES"); if(not asmlib.IsHere(makTab)) then asmlib.LogInstance("Missing builder for table PIECES",sLog); return nil end @@ -1053,10 +1100,10 @@ if(CLIENT) then pnComboBox:SetName(languageGetPhrase("tool."..gsToolNameL..".pn_srchcol_lb")) pnComboBox:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_srchcol")) pnComboBox:SetValue(languageGetPhrase("tool."..gsToolNameL..".pn_srchcol_lb")) - pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_srchcol_lb1"), makTab:GetColumnName(1), false, asmlib.ToIcon("pn_srchcol_lb1")) - pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_srchcol_lb2"), makTab:GetColumnName(2), false, asmlib.ToIcon("pn_srchcol_lb2")) - pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_srchcol_lb3"), makTab:GetColumnName(3), false, asmlib.ToIcon("pn_srchcol_lb3")) - pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_srchcol_lb4"), makTab:GetColumnName(4), false, asmlib.ToIcon("pn_srchcol_lb4")) + pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_routine_mod"), 1, false, asmlib.ToIcon("pn_routine_mod")) + pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_routine_typ"), 2, false, asmlib.ToIcon("pn_routine_typ")) + pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_routine_nam"), 3, false, asmlib.ToIcon("pn_routine_nam")) + pnComboBox:AddChoice(languageGetPhrase("tool."..gsToolNameL..".pn_routine_end"), 4, false, asmlib.ToIcon("pn_routine_end")) pnComboBox.OnSelect = function(pnSelf, nInd, sVal, anyData) asmlib.LogInstance("Selected "..asmlib.GetReport(nInd,sVal,anyData),sLog..".ComboBox") pnSelf:SetValue(sVal) @@ -1142,10 +1189,10 @@ if(CLIENT) then pnListView:SetSize(xySiz.x,xySiz.y) pnListView:SetName(languageGetPhrase("tool."..gsToolNameL..".pn_routine_lb")) pnListView:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".pn_routine")) - pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_lb1")):SetFixedWidth(wUse) -- (1) - pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_lb2")):SetFixedWidth(wAct) -- (2) - pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_lb3")):SetFixedWidth(wTyp) -- (3) - pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_lb4")):SetFixedWidth(wNam) -- (4) + pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_use")):SetFixedWidth(wUse) -- (1) + pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_end")):SetFixedWidth(wAct) -- (2) + pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_typ")):SetFixedWidth(wTyp) -- (3) + pnListView:AddColumn(languageGetPhrase("tool."..gsToolNameL..".pn_routine_nam")):SetFixedWidth(wNam) -- (4) pnListView:AddColumn(""):SetFixedWidth(0) -- (5) This is actually the hidden model of the piece used. pnListView.OnRowSelected = function(pnSelf, nIndex, pnLine) local uiMod = tostring(pnLine:GetColumnText(5) or asmlib.GetOpVar("MISS_NOMD")) -- Actually the model in the table @@ -1163,46 +1210,104 @@ if(CLIENT) then asmlib.SetAsmConvar(oPly, "model" , uiMod) end -- Copy the line model to the clipboard so it can be pasted with Ctrl+V pnListView.OnRowRightClick = function(pnSelf, nIndex, pnLine) - local cC, cX, cY = 0, inputGetCursorPos(); cX, cY = pnSelf:ScreenToLocal(cX, cY) - while(cX > 0) do cC = (cC + 1); cX = (cX - pnSelf:ColumnWidth(cC)) end - SetClipboardText(pnLine:GetColumnText(cC)) + local sI, mX, mY = "pn_contextm_", inputGetCursorPos() + local sT, sTyp = "tool.trackassembly."..sI, pnLine:GetColumnText(3) + local bEx = asmlib.GetAsmConvar("exportdb", "BUL") + local sID = asmlib.WorkshopID(sTyp) + local pMenu = vguiCreate("DMenu") + if(not IsValid(pMenu)) then pnFrame:Close() + asmlib.LogInstance("Menu invalid",sLog..".ListView"); return nil end + -- Copy to clipboard various values and things + local pIn, pOp = pMenu:AddSubMenu(languageGetPhrase(sT.."cp")) + if(not IsValid(pIn)) then pnFrame:Close() + asmlib.LogInstance("Copy menu invalid",sLog..".ListView"); return nil end + if(not IsValid(pOp)) then pnFrame:Close() + asmlib.LogInstance("Copy opts invalid",sLog..".ListView"); return nil end + pOp:SetIcon(asmlib.ToIcon(sI.."cp")) + pIn:AddOption(languageGetPhrase(sT.."cpmd"), + function() SetClipboardText(pnLine:GetColumnText(5)) end):SetImage(asmlib.ToIcon(sI.."cpmd")) + pIn:AddOption(languageGetPhrase(sT.."cpbx"), + function() asmlib.SetListViewBoxClipboard(pnSelf, mX, mY) end):SetImage(asmlib.ToIcon(sI.."cpbx")) + pIn:AddOption(languageGetPhrase(sT.."cprw"), + function() asmlib.SetListViewRowClipboard(pnSelf) end):SetImage(asmlib.ToIcon(sI.."cprw")) + -- Handle workshop specific options + if(sID) then + local sUR = asmlib.GetOpVar("FORM_URLADDON") + local pIn, pOp = pMenu:AddSubMenu(languageGetPhrase(sT.."ws")) + if(not IsValid(pIn)) then + LogInstance("Base WS invalid"); return nil end + pOp:SetIcon(asmlib.ToIcon(sI.."ws")) + pIn:AddOption(languageGetPhrase(sT.."wsid"), + function() SetClipboardText(sID) end):SetIcon(asmlib.ToIcon(sI.."wsid")) + pIn:AddOption(languageGetPhrase(sT.."wsop"), + function() guiOpenURL(sUR:format(sID)) end):SetIcon(asmlib.ToIcon(sI.."wsop")) + end + -- Export database contents + if(bEx) then + local pIn, pOp = pMenu:AddSubMenu(languageGetPhrase(sT.."ex")) + if(not (IsValid(pIn) and IsValid(pOp))) then + asmlib.LogInstance("Base export invalid"); return nil end + pOp:SetIcon(asmlib.ToIcon(sI.."ex")) + pIn:AddOption(languageGetPhrase(sT.."exdv"), + function() + asmlib.SetAsmConvar(oPly, "exportdb", 0) + local oPly = LocalPlayer(); if(not asmlib.IsPlayer(oPly)) then + asmlib.LogInstance("Player invalid"); return nil end + asmlib.LogInstance("Export "..asmlib.GetReport(oPly:Nick(), sTyp)) + asmlib.ExportTypeDSV(sTyp) + end):SetIcon(asmlib.ToIcon(sI.."exdv")) + pIn:AddOption(languageGetPhrase(sT.."exru"), + function() + asmlib.SetAsmConvar(oPly, "exportdb", 0) + local oPly = LocalPlayer(); if(not asmlib.IsPlayer(oPly)) then + asmlib.LogInstance("Player invalid"); return nil end + asmlib.LogInstance("Export "..asmlib.GetReport(oPly:Nick(), sTyp)) + asmlib.ExportTypeRun(sTyp) + end):SetIcon(asmlib.ToIcon(sI.."exru")) + end + pMenu:Open() end - if(not asmlib.UpdateListView(pnListView,frUsed,nCount)) then + if(not asmlib.UpdateListView(pnListView,frUsed)) then asmlib.LogInstance("Populate the list view failed",sLog); return nil end -- The button database export by type uses the current active type in the ListView line pnButton.DoClick = function(pnSelf) asmlib.LogInstance("Click "..asmlib.GetReport(pnSelf:GetText()), sLog..".Button") - if(not asmlib.GetAsmConvar("exportdb", "BUL")) then return end - if(inputIsKeyDown(KEY_LSHIFT)) then local sType - local iD, pnLine = pnListView:GetSelectedLine() - if(asmlib.IsHere(iD)) then sType = pnLine:GetColumnText(3) - else local model = asmlib.GetAsmConvar("model", "STR") - local oRec = asmlib.CacheQueryPiece(model) - if(asmlib.IsHere(oRec)) then sType = oRec.Type - else LogInstance("Not piece <"..model..">") end + if(asmlib.GetAsmConvar("exportdb", "BUL")) then + asmlib.SetAsmConvar(oPly, "exportdb", 0) + if(inputIsKeyDown(KEY_LSHIFT)) then + if(not asmlib.ExportSyncDB()) then + asmlib.LogInstance("Export invalid", sLog..".Button"); return nil end + else + local fPref = "["..gsMoDB:lower().."-dsv]"..gsGenerPrf + asmlib.ExportCategory(3, nil, fPref, true) + asmlib.ExportDSV("PIECES", fPref, nil, true) + asmlib.ExportDSV("ADDITIONS", fPref, nil, true) + asmlib.ExportDSV("PHYSPROPERTIES", fPref, nil, true) + asmlib.LogInstance("Export data", sLog..".Button") end - asmlib.ExportTypeAR(sType) - asmlib.LogInstance("Export type "..asmlib.GetReport(sType), sLog..".Button") else - asmlib.ExportCategory(3) - asmlib.ExportDSV("PIECES") - asmlib.ExportDSV("ADDITIONS") - asmlib.ExportDSV("PHYSPROPERTIES") - asmlib.LogInstance("Export instance", sLog..".Button") + local fW = asmlib.GetOpVar("FORM_GITWIKI") + guiOpenURL(fW:format("Additional-features")) end - asmlib.SetAsmConvar(oPly, "exportdb", 0) end pnButton.DoRightClick = function(pnSelf) - local fW = asmlib.GetOpVar("FORM_GITWIKI") - guiOpenURL(fW:format("Additional-features")) + if(asmlib.GetAsmConvar("exportdb", "BUL")) then + asmlib.SetAsmConvar(oPly, "exportdb", 0) + local bS, vOut = asmlib.DoAction("OPEN_EXTERNDB"); if(not bS) then + asmlib.LogInstance("Open manager:"..vOut, sLog..".Button"); return nil end + asmlib.LogInstance("Open manager", sLog..".Button") + else + local fW = asmlib.GetOpVar("FORM_GITWIKI") + guiOpenURL(fW:format("Additional-features")) + end end -- Leave the TextEntry here so it can access and update the local ListView reference pnTextEntry.OnEnter = function(pnSelf) - local sPat = tostring(pnSelf:GetValue() or "") - local sAbr, sCol = pnComboBox:GetSelected() -- Returns two values - sAbr, sCol = tostring(sAbr or ""), tostring(sCol or "") - if(not asmlib.UpdateListView(pnListView,frUsed,nCount,sCol,sPat)) then - asmlib.LogInstance("Update ListView fail"..asmlib.GetReport(sAbr,sCol,sPat,sLog..".TextEntry")); return nil + local sPa = tostring(pnSelf:GetValue() or "") + local sAbr, nID = pnComboBox:GetSelected() -- Returns two values + sAbr, nID = tostring(sAbr or ""), (tonumber(nID) or 0) + if(not asmlib.UpdateListView(pnListView, frUsed, nID, sPa)) then + asmlib.LogInstance("Update ListView fail"..asmlib.GetReport(sAbr,nID,sPa), sLog..".TextEntry"); return nil end end pnFrame:SetVisible(true); pnFrame:Center(); pnFrame:MakePopup() @@ -1660,9 +1765,18 @@ propertiesAdd(gsOptionsCM, gtOptionsCM) ------------ INITIALIZE DB------------ -asmlib.CreateTable("PIECES",{ +asmlib.NewTable("PIECES",{ Timer = gaTimerSet[1], - Index = {{1},{4},{1,4}}, + Index = {{1,4,Un=true},{1},{2},{4}}, + Query = { + ExportDSV = {O = {2,3,1,4}}, + CacheQueryPiece = {W = {{1,"%s"}}, O = {4}}, + ExportTypeDSV = {W = {{2,"%s"}}, O = {3,1,4}}, + ExportTypeRun = {W = {{2,"%s"}}, O = {3,1,4}}, + Record = {"%s","%s","%s","%d","%s","%s","%s","%s"}, + CacheQueryTree = {S = {1,2,3}, W = {{4,"%d"}}, O = {2,3,1}}, + ExportSyncDB = {S = {1,2,3}, W = {{4,"%d"}}, O = {2,3,1}} + }, Trigs = { Record = function(arLine, vSrc) local noMD = asmlib.GetOpVar("MISS_NOMD") @@ -1672,6 +1786,9 @@ asmlib.CreateTable("PIECES",{ local emFva = asmlib.GetOpVar("EMPTYSTR_BLDS") arLine[2] = asmlib.GetEmpty(arLine[2], emFva, asmlib.Categorize(), noTY) arLine[3] = asmlib.GetEmpty(arLine[3], emFva, asmlib.ModelToName(arLine[1]), noMD) + arLine[5] = asmlib.GetEmpty(arLine[5], asmlib.IsBlank, noSQL) + arLine[6] = asmlib.GetEmpty(arLine[6], asmlib.IsBlank, noSQL) + arLine[7] = asmlib.GetEmpty(arLine[7], asmlib.IsBlank, noSQL) arLine[8] = asmlib.GetEmpty(arLine[8], emFva, noSQL) if(not (asmlib.IsNull(arLine[8]) or asmlib.IsBlank(arLine[8]) or trCls[arLine[8]])) then asmlib.LogInstance("Register trace "..asmlib.GetReport(arLine[8],arLine[1]),vSrc) @@ -1684,26 +1801,38 @@ asmlib.CreateTable("PIECES",{ local defTab = makTab:GetDefinition() local stData = tCache[snPK]; if(not stData) then tCache[snPK] = {}; stData = tCache[snPK] end + if(not asmlib.IsHere(stData.Size)) then stData.Size = 0 end + if(not asmlib.IsHere(stData.Used)) then stData.Used = 0 end + if(not asmlib.IsHere(stData.Slot)) then stData.Slot = snPK end if(not asmlib.IsHere(stData.Type)) then stData.Type = arLine[2] end if(not asmlib.IsHere(stData.Name)) then stData.Name = arLine[3] end if(not asmlib.IsHere(stData.Unit)) then stData.Unit = arLine[8] end - if(not asmlib.IsHere(stData.Size)) then stData.Size = 0 end - if(not asmlib.IsHere(stData.Slot)) then stData.Slot = snPK end local nOffsID = makTab:Match(arLine[4],4); if(not asmlib.IsHere(nOffsID)) then asmlib.LogInstance("Cannot match "..asmlib.GetReport(4,arLine[4],snPK),vSrc); return false end + if(nOffsID ~= (stData.Size + 1)) then + asmlib.LogInstance("Sequential mismatch "..asmlib.GetReport(nOffsID,snPK),vSrc); return false end local stPOA = asmlib.RegisterPOA(stData,nOffsID,arLine[5],arLine[6],arLine[7]) if(not asmlib.IsHere(stPOA)) then asmlib.LogInstance("Cannot process "..asmlib.GetReport(nOffsID, snPK),vSrc); return false end - if(nOffsID > stData.Size) then stData.Size = nOffsID else - asmlib.LogInstance("Sequential mismatch "..asmlib.GetReport(nOffsID),vSrc); return false end - return true + stData.Size = stData.Size + 1; return true + end, + ExportSyncDB = function(oFile, makTab, tCache, sDelim, vSrc) + local tSort, cT = asmlib.Arrange(tCache, "Type", "Name", "Slot"), nil + if(not tSort) then asmlib.LogInstance("Cannot sort cache data",vSrc); return false end + for iS = 1, tSort.Size do local stRec = tSort[iS] + local sKey, vRec = stRec.Key, stRec.Rec + if(not cT or cT ~= vRec.Type) then cT = vRec.Type + local sW = tostring(asmlib.WorkshopID(cT) or sMiss) + oFile:Write("# Categorize("..cT.."): "..sW.."\n") + end + oFile:Write(makTab:Match(vRec.Slot,1,true,"\"")..sDelim) + oFile:Write(makTab:Match(vRec.Type,2,true,"\"")..sDelim) + oFile:Write(makTab:Match(vRec.Name,3,true,"\"")); oFile:Write("\n") + end; return true end, ExportDSV = function(oFile, makTab, tCache, fPref, sDelim, vSrc) - local tData, defTab = {}, makTab:GetDefinition() - for mod, rec in pairs(tCache) do - tData[mod] = {KEY = (rec.Type..rec.Name..mod)} end - local tSort = asmlib.Sort(tData,{"KEY"}) - if(not tSort) then oFile:Flush(); oFile:Close() + local defTab = makTab:GetDefinition() + local tSort = asmlib.Arrange(tCache, "Type", "Name", "Slot"); if(not tSort) then asmlib.LogInstance("("..fPref..") Cannot sort cache data",vSrc); return false end local noSQL = asmlib.GetOpVar("MISS_NOSQL") local symOff = asmlib.GetOpVar("OPSYM_DISABLE") @@ -1721,16 +1850,86 @@ asmlib.CreateTable("PIECES",{ local sP, sO, sA = stPnt.P:Export(stPnt.O), stPnt.O:Export(), stPnt.A:Export() local sC = (asmlib.IsHere(tData.Unit) and tostring(tData.Unit) or noSQL) sC = ((sC == sClass) and noSQL or sC) -- Export default class as noSQL - oFile:Write(sData..sDelim..makTab:Match(iD,4,true,"\"")..sDelim.. - "\""..sP.."\""..sDelim.."\""..sO.."\""..sDelim.."\""..sA.."\""..sDelim.."\""..sC.."\"\n") + oFile:Write(sData..sDelim..makTab:Match(iD,4,true,"\"")..sDelim) + oFile:Write("\""..sP.."\""..sDelim.."\""..sO.."\""..sDelim) + oFile:Write("\""..sA.."\""..sDelim.."\""..sC.."\"\n") end end; return true end, - ExportAR = function(aRow) aRow[2], aRow[4] = "myType", "gsSymOff" end - }, - Query = { - Record = {"%s","%s","%s","%d","%s","%s","%s","%s"}, - ExportDSV = {2,3,1,4} + ExportTypeDSV = function(fP, makP, PCache, fA, makA, ACache, fPref, sDelim, vSrc) + local tSort = asmlib.Arrange(PCache, "Name", "Slot"); if(not tSort) then + asmlib.LogInstance("("..fPref..") Cannot sort cache data",vSrc); return false end + local defP, defA = makP:GetDefinition(), makA:GetDefinition() + local noSQL = asmlib.GetOpVar("MISS_NOSQL") + local symOff = asmlib.GetOpVar("OPSYM_DISABLE") + local sClass = asmlib.GetOpVar("ENTITY_DEFCLASS") + for iP = 1, tSort.Size do + local stRec = tSort[iP] + local tData = PCache[stRec.Key] + local sPref = tData.Type:gsub("[^%w]","_"):lower() + if(sPref == fPref) then + local sData, tOffs = defP.Name, tData.Offs + sData = sData..sDelim..makP:Match(stRec.Key,1,true,"\"")..sDelim.. + makP:Match(tData.Type,2,true,"\"")..sDelim.. + makP:Match(tData.Name,3,true,"\"") + -- Matching crashes only for numbers. The number is already inserted, so there will be no crash + for iD = 1, #tOffs do + local stPnt = tOffs[iD] -- Read current offsets from the model + local sP, sO, sA = stPnt.P:Export(stPnt.O), stPnt.O:Export(), stPnt.A:Export() + local sC = (asmlib.IsHere(tData.Unit) and tostring(tData.Unit) or noSQL) + sC = ((sC == sClass) and noSQL or sC) -- Export default class as noSQL + fP:Write(sData..sDelim..makP:Match(iD,4,true,"\"")) + fP:Write(sDelim.."\""..sP.."\""..sDelim.."\""..sO.."\"") + fP:Write(sDelim.."\""..sA.."\""..sDelim.."\""..sC.."\"\n") + if(iD == 1) then + local tA = ACache[stRec.Key] + if(tA and tA.Size and tA.Size > 0) then + local sH = defA.Name..sDelim..makA:Match(stRec.Key,1,true,"\"") + for iA = 1, tA.Size do fA:Write(sH) for iC = 2, defA.Size do + local sC = defA[iC][1] + local vC = tA[iA][sC] + fA:Write(sDelim..makA:Match(vC,iC,true,"\"")) + end fA:Write("\n") end + end + end + end + end + end; return true + end, + ExportTypeRun = function(fE, fS, sType, makP, PCache, qPieces, vSrc) + local coMo, coTy = makP:GetColumnName(1), makP:GetColumnName(2) + local coNm, coLn = makP:GetColumnName(3), makP:GetColumnName(4) + local coP , coO = makP:GetColumnName(5), makP:GetColumnName(6) + local coA , coC = makP:GetColumnName(7), makP:GetColumnName(8) + local sClass, iCnt = asmlib.GetOpVar("ENTITY_DEFCLASS"), 0 + for mod, rec in pairs(PCache) do + if(rec.Type == sType) then + local iID, tOffs = 1, rec.Offs -- Start from the first point + local rPOA = tOffs[iID]; if(not asmlib.IsHere(rPOA)) then + asmlib.LogInstance("Missing point ID "..asmlib.GetReport(iID, rec.Slot),vSrc) return false end + for iID = 1, rec.Size do + iCnt = (iCnt + 1); qPieces[iCnt] = {} -- Allocate row memory + local qRow = qPieces[iCnt]; rPOA = tOffs[iID] + local sP, sO, sA = rPOA.P:Export(rPOA.O), rPOA.O:Export(), rPOA.A:Export() + local sC = (asmlib.IsHere(rec.Unit) and tostring(rec.Unit) or noSQL) + sC = ((sC == sClass) and noSQL or sC) -- Export default class as noSQL + qRow[coMo] = rec.Slot + qRow[coTy] = rec.Type + qRow[coNm] = rec.Name + qRow[coLn] = iID + qRow[coP ] = sP; qRow[coO ] = sO + qRow[coA ] = sA; qRow[coC ] = sC + end + end + end -- Must be the same format as returned from SQL + local tSort = asmlib.Arrange(qPieces, coNm, coMo, coLn); if(not tSort) then + LogInstance("Sort cache mismatch",vSrc); return false + end; tableEmpty(qPieces) + for iD = 1, tSort.Size do qPieces[iD] = tSort[iD].Rec end + asmlib.LogInstance("Sorted rows count "..asmlib.GetReport(tSort.Size, sType),vSrc) + return true + end, + ExportContentsRun = function(aRow) aRow[2], aRow[4] = "myType", "gsSymOff"; return true end }, [1] = {"MODEL" , "TEXT" , "LOW", "QMK"}, [2] = {"TYPE" , "TEXT" , nil , "QMK"}, @@ -1742,12 +1941,15 @@ asmlib.CreateTable("PIECES",{ [8] = {"CLASS" , "TEXT" , nil , nil } },true,true) -asmlib.CreateTable("ADDITIONS",{ +asmlib.NewTable("ADDITIONS",{ Timer = gaTimerSet[2], - Index = {{1},{4},{1,4}}, + Index = {{1,4,Un=true},{1},{4}}, Query = { - Record = {"%s","%s","%s","%d","%s","%s","%d","%d","%d","%d","%d","%d"}, - ExportDSV = {1,4} + ExportDSV = {O = {1,4}}, + SetAdditionsRun = {W = {{1,"%s"}}, O = {4}}, + CacheQueryAdditions = {W = {{1,"%s"}}, O = {4}}, + ExportTypeDSV = {W = {{1,"%s"}}, O = {1,4}}, + Record = {"%s","%s","%s","%d","%s","%s","%d","%d","%d","%d","%d","%d"} }, Cache = { Record = function(makTab, tCache, snPK, arLine, vSrc) @@ -1756,22 +1958,31 @@ asmlib.CreateTable("ADDITIONS",{ tCache[snPK] = {}; stData = tCache[snPK] end if(not asmlib.IsHere(stData.Size)) then stData.Size = 0 end if(not asmlib.IsHere(stData.Slot)) then stData.Slot = snPK end - local nCnt, iID = 2, makTab:Match(arLine[4],4); if(not asmlib.IsHere(iID)) then + local iID = makTab:Match(arLine[4],4); if(not asmlib.IsHere(iID)) then asmlib.LogInstance("Cannot match "..asmlib.GetReport(4,arLine[4],snPK),vSrc); return false end + if(iID ~= (stData.Size + 1)) then + asmlib.LogInstance("Sequential mismatch "..asmlib.GetReport(iID,snPK),vSrc); return false end stData[iID] = {} -- LineID has to be set properly - while(nCnt <= defTab.Size) do sCol = makTab:GetColumnName(nCnt) - stData[iID][sCol] = makTab:Match(arLine[nCnt],nCnt) - if(not asmlib.IsHere(stData[iID][sCol])) then -- Check data conversion output - asmlib.LogInstance("Cannot match "..asmlib.GetReport(nCnt,arLine[nCnt],snPK),vSrc); return false - end; nCnt = (nCnt + 1) - end; stData.Size = iID; return true + for iCnt = 2, defTab.Size do local sC = makTab:GetColumnName(iCnt); if(not sC) then + asmlib.LogInstance("Cannot index "..asmlib.GetReport(iCnt,snPK),vSrc); return false end + stData[iID][sC] = makTab:Match(arLine[iCnt],iCnt); if(not asmlib.IsHere(stData[iID][sC])) then + asmlib.LogInstance("Cannot match "..asmlib.GetReport(iCnt,arLine[iCnt],snPK),vSrc); return false end + end; stData.Size = stData.Size + 1; return true end, ExportDSV = function(oFile, makTab, tCache, fPref, sDelim, vSrc) local defTab = makTab:GetDefinition() - for mod, rec in pairs(tCache) do - local sData = defTab.Name..sDelim..mod - for iIdx = 1, #rec do local tData = rec[iIdx]; oFile:Write(sData) - for iID = 2, defTab.Size do local vData = tData[makTab:GetColumnName(iID)] + local tSort = asmlib.Arrange(tCache, "Slot") + for iRow = 1, tSort.Size do + local tRow = tSort[iRow] + local sKey, tRec = tRow.Key, tRow.Rec + local sData = defTab.Name..sDelim..makTab:Match(sKey,1,true,"\"") + for iRec = 1, #tRec do + local vRec = tRec[iRec]; oFile:Write(sData) + for iID = 2, defTab.Size do + local sC = makTab:GetColumnName(iID); if(not sC) then + asmlib.LogInstance("Cannot index "..asmlib.GetReport(iID,sKey),vSrc); return false end + local vData = vRec[sC]; if(not sC) then + asmlib.LogInstance("Cannot extract "..asmlib.GetReport(iID,sKey),vSrc); return false end local vM = makTab:Match(vData,iID,true,"\""); if(not asmlib.IsHere(vM)) then asmlib.LogInstance("Cannot match "..asmlib.GetReport(iID,vData)); return false end; oFile:Write(sDelim..tostring(vM or "")) @@ -1779,7 +1990,7 @@ asmlib.CreateTable("ADDITIONS",{ end end; return true end, - ExportAR = function(aRow) aRow[4] = "gsSymOff" end + ExportContentsRun = function(aRow) aRow[4] = "gsSymOff"; return true end }, [1] = {"MODELBASE", "TEXT" , "LOW", "QMK"}, [2] = {"MODELADD" , "TEXT" , "LOW", "QMK"}, @@ -1795,9 +2006,17 @@ asmlib.CreateTable("ADDITIONS",{ [12] = {"SETSOLID" , "INTEGER", "FLR", nil }, },true,true) -asmlib.CreateTable("PHYSPROPERTIES",{ +asmlib.NewTable("PHYSPROPERTIES",{ Timer = gaTimerSet[3], - Index = {{1},{2},{1,2}}, + Index = {{1,2,Un=true},{1},{2}}, + Query = { + Record = {"%s","%d","%s"}, + ExportDSV = {O = {1,2}}, + CacheQueryProperty = { + N = {S = {2, 3}, W = {{1,"%s"}}, O = {2}}, + T = {S = {1} , W = {{2,"%s"}}, O = {1}}, + } + }, Trigs = { Record = function(arLine, vSrc) local noTY = asmlib.GetOpVar("MISS_NOTP") @@ -1809,7 +2028,6 @@ asmlib.CreateTable("PHYSPROPERTIES",{ Record = function(makTab, tCache, snPK, arLine, vSrc) local skName = asmlib.GetOpVar("HASH_PROPERTY_NAMES") local skType = asmlib.GetOpVar("HASH_PROPERTY_TYPES") - local defTab = makTab:GetDefinition() local tTypes = tCache[skType]; if(not tTypes) then tCache[skType] = {}; tTypes = tCache[skType]; tTypes.Size = 0 end local tNames = tCache[skName]; if(not tNames) then @@ -1821,30 +2039,32 @@ asmlib.CreateTable("PHYSPROPERTIES",{ tTypes[tTypes.Size] = snPK; tNames[snPK] = {} tNames[snPK].Size, tNames[snPK].Slot = 0, snPK end -- Data matching crashes only on numbers - tNames[snPK].Size = iNameID + if(iNameID ~= (tNames[snPK].Size + 1)) then + asmlib.LogInstance("Sequential mismatch "..asmlib.GetReport(iNameID,snPK),vSrc); return false end + tNames[snPK].Size = tNames[snPK].Size + 1 tNames[snPK][iNameID] = makTab:Match(arLine[3],3); return true end, - ExportDSV = function(oFile, makTab, tCache, fPref, sDelim, vSrc) + ExportDSV = function(oF, makTab, tCache, fPref, sDelim, vSrc) local defTab = makTab:GetDefinition() - local tTypes = tCache[asmlib.GetOpVar("HASH_PROPERTY_TYPES")] - local tNames = tCache[asmlib.GetOpVar("HASH_PROPERTY_NAMES")] - if(not (tTypes or tNames)) then F:Flush(); F:Close() + local pT = asmlib.GetOpVar("HASH_PROPERTY_TYPES") + local pN = asmlib.GetOpVar("HASH_PROPERTY_NAMES") + local tTypes, tNames, tT = tCache[pT], tCache[pN], {} + if(not (tTypes or tNames)) then asmlib.LogInstance("("..fPref..") No data found",vSrc); return false end - for iInd = 1, tTypes.Size do local sType = tTypes[iInd] - local tType = tNames[sType]; if(not tType) then F:Flush(); F:Close() - asmlib.LogInstance("("..fPref..") Missing index "..asmlib.GetReport(iInd, sType),vSrc); return false end - for iCnt = 1, tType.Size do local vType = tType[iCnt] - oFile:Write(defTab.Name..sDelim..makTab:Match(sType,1,true,"\"").. - sDelim..makTab:Match(iCnt ,2,true,"\"").. - sDelim..makTab:Match(vType,3,true,"\"").."\n") + for iD = 1, tTypes.Size do tableInsert(tT, tTypes[iD]) end + local tS = asmlib.Arrange(tT); if(not tS) then + asmlib.LogInstance("("..fPref..") Cannot sort cache data",vSrc); return false end + for iS = 1, tS.Size do local sT = tS[iS].Rec + local tProp = tNames[sT]; if(not tProp) then + asmlib.LogInstance("("..fPref..") Missing index "..asmlib.GetReport(iS, sT),vSrc); return false end + for iP = 1, tProp.Size do local sP = tProp[iP] + oF:Write(defTab.Name..sDelim..makTab:Match(sT,1,true,"\"").. + sDelim..makTab:Match(iP,2,true,"\"").. + sDelim..makTab:Match(sP,3,true,"\"").."\n") end end; return true end, - ExportAR = function(aRow) aRow[1], aRow[2] = "myType", "gsSymOff" end - }, - Query = { - Record = {"%s","%d","%s"}, - ExportDSV = {1,2} + ExportContentsRun = function(aRow) aRow[1], aRow[2] = "myType", "gsSymOff"; return true end }, [1] = {"TYPE" , "TEXT" , nil , "QMK"}, [2] = {"LINEID", "INTEGER", "FLR", nil }, @@ -1855,9 +2075,9 @@ asmlib.CreateTable("PHYSPROPERTIES",{ --[[ Categories are only needed client side ]]-- if(CLIENT) then - if(fileExists(gsFullDSV.."CATEGORY.txt", "DATA")) then - asmlib.LogInstance("DB CATEGORY from DSV",gtInitLogs) - asmlib.ImportCategory(3) + if(fileExists(gsGrossDSV.."CATEGORY.txt", "DATA")) then + asmlib.LogInstance("DB CATEGORY from GENERIC",gtInitLogs) + asmlib.ImportCategory(3, gsGenerPrf) else asmlib.LogInstance("DB CATEGORY from LUA",gtInitLogs) end end @@ -1874,9 +2094,9 @@ end * First argument of Categorize() is used to provide default track type for TABLE:Record() * Second argument of Categorize() is used to generate track categories for the processed addon ]]-- -if(fileExists(gsFullDSV.."PIECES.txt", "DATA")) then - asmlib.LogInstance("DB PIECES from DSV",gtInitLogs) - asmlib.ImportDSV("PIECES", true) +if(fileExists(gsGrossDSV.."PIECES.txt", "DATA")) then + asmlib.LogInstance("DB PIECES from GENERIC",gtInitLogs) + asmlib.ImportDSV("PIECES", true, gsGenerPrf) else if(gsMoDB == "SQL") then sqlBegin() end asmlib.LogInstance("DB PIECES from LUA",gtInitLogs) @@ -2275,7 +2495,8 @@ else PIECES:Record({"models/props_phx/misc/iron_beam4.mdl", "#", "#", 2, "", "-201.413, 0.001, 5.002", "0,180,0"}) asmlib.Categorize("XQM Ball Rails",[[function(m) local g = m:gsub("models/xqm/rails/",""):gsub("/","_") - local r = g:match(".-_"):sub(1, -2); g = g:gsub(r.."_", "") + local r = g:match(".-_"); if(not r) then return end + r = r:sub(1, -2); g = g:gsub(r.."_", "") local t, n = g:match(".-_"), g:gsub("%.mdl","") if(t) then t = t:sub(1, -2); g = g:gsub(r.."_", "") if(r:find(t)) then n = n:gsub(t.."_", "") @@ -4554,12 +4775,144 @@ else PIECES:Record({"models/propper/dingles_modular_streets/highway_street_1024turn.mdl", "#", "#", 2, "", "-512,-1024,120", "0,-90,0"}) PIECES:Record({"models/propper/dingles_modular_streets/highway_street_1024turn_tall.mdl", "#", "#", 1, "", "1024,512,248"}) PIECES:Record({"models/propper/dingles_modular_streets/highway_street_1024turn_tall.mdl", "#", "#", 2, "", "-512,-1024,248", "0,-90,0"}) + asmlib.Categorize("Scene Builder", [[function(m) + local g = m:gsub("models/scene_building/","") + local r = g:gsub("/.+$",""); return r end]]) + PIECES:Record({"models/scene_building/sewer_system/arch_small_hall.mdl", "#", "#", 1, "", "0, 47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_hall.mdl", "#", "#", 2, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_hall_med.mdl", "#", "#", 1, "", "0, 23,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_hall_med.mdl", "#", "#", 2, "", "0,-23,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_hall_small.mdl", "#", "#", 1, "", "0, 11,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_hall_small.mdl", "#", "#", 2, "", "0,-11,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_corner.mdl", "#", "#", 1, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_corner.mdl", "#", "#", 2, "", "47,0,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_3way.mdl", "#", "#", 1, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_3way.mdl", "#", "#", 2, "", "47,0,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_3way.mdl", "#", "#", 3, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_4way.mdl", "#", "#", 1, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_4way.mdl", "#", "#", 2, "", "47,0,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_4way.mdl", "#", "#", 3, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_hall_4way.mdl", "#", "#", 4, "", "-47,0,0", "0,-180,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_door1.mdl", "#", "#", 1, "", "0, 47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_door1.mdl", "#", "#", 2, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_door2.mdl", "#", "#", 1, "", "0, 47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/arch_small_door2.mdl", "#", "#", 2, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_door.mdl", "#", "#", 1, "", "0, 6,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_door.mdl", "#", "#", 2, "", "0,-6,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_hall.mdl", "#", "#", 1, "", "0, 45,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_hall.mdl", "#", "#", 2, "", "0,-45,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_hall_sky.mdl", "#", "#", 1, "", "0, 44,-10", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_hall_sky.mdl", "#", "#", 2, "", "0,-44,-10", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_hall_sky_dip.mdl", "#", "#", 1, "", "0, 44,4", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/beam_hall_sky_dip.mdl", "#", "#", 2, "", "0,-44,4", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/comp_roundroom.mdl", "#", "#", 1, "", "-20,128,-26", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/comp_roundroom.mdl", "#", "#", 2, "", "-94,-28, 14", "0,-180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door_med.mdl", "#", "#", 1, "", "0, 15,0", "0, 90,0", ""}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door_med.mdl", "#", "#", 2, "", "0,-15,0", "0,-90,0", ""}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_2door.mdl", "#", "#", 1, "", "145,0,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_2door.mdl", "#", "#", 2, "", "0,-175,-20", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_2door.mdl", "#", "#", 3, "", "-145,0,0", "0,-180,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_2door.mdl", "#", "#", 4, "", "0,175,-20", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_2sec.mdl", "#", "#", 1, "", "171,28,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_2sec.mdl", "#", "#", 2, "", "-28,-171,0","0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_3sec.mdl", "#", "#", 1, "", "0,-172,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_3sec.mdl", "#", "#", 2, "", "-200,28,0", "0,-180,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_3sec.mdl", "#", "#", 3, "", "200,28,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_big_bend.mdl", "#", "#", 1, "", "8.2,-121,-4", "0,-90,0", ""}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_big_bend.mdl", "#", "#", 2, "", "-49.604,18.618,-4", "0,135,0", ""}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_door.mdl", "#", "#", 1, "", "-145,0,0", "0,-180,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_door.mdl", "#", "#", 2, "", "0,175,-20", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_door.mdl", "#", "#", 3, "", "0,-175,-20", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_ent.mdl", "#", "#", 1, "", "0, 59,-16", "0, 90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_ent.mdl", "#", "#", 2, "", "0,-59,-20", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_ent_gate.mdl", "#", "#", 1, "", "0, 59,-16", "0, 90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_ent_gate.mdl", "#", "#", 2, "", "0,-59,-20", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_short.mdl", "#", "#", 1, "", "0, 31,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_short.mdl", "#", "#", 2, "", "0,-31,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_mid.mdl", "#", "#", 1, "", "0, 63,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_mid.mdl", "#", "#", 2, "", "0,-63,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_long.mdl", "#", "#", 1, "", "0, 115,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_long.mdl", "#", "#", 2, "", "0,-115,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_2sec.mdl", "#", "#", 1, "", "91,24.5,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_2sec.mdl", "#", "#", 2, "", "-24,-91,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_bend.mdl", "#", "#", 1, "", "91,27.015,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_bend.mdl", "#", "#", 2, "", "-27,-91,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_3sec.mdl", "#", "#", 1, "", "112,24.4982,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_3sec.mdl", "#", "#", 2, "", "-2.80149,-90,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_3sec.mdl", "#", "#", 3, "", "-112,24.362,0", "0,-180,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_bend_half.mdl", "#", "#", 1, "", "24.6314,19.6809,0", "0,45,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_pipe_bend_half.mdl", "#", "#", 2, "", "-6.55228,-65.1073,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_straight.mdl", "#", "#", 1, "", "0, 95,0", "0,90,0"}) + PIECES:Record({"models/scene_building/sewer_system/tunnel_straight.mdl", "#", "#", 2, "", "0,-95,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door.mdl", "#", "#", 1, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door.mdl", "#", "#", 2, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door_side.mdl", "#", "#", 1, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door_side.mdl", "#", "#", 2, "", "-43,0,0", "0,180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door_side.mdl", "#", "#", 3, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door_sml.mdl", "#", "#", 1, "", "0,5,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_1door_sml.mdl", "#", "#", 2, "", "0,-5,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_l.mdl", "#", "#", 1, "", "43,-4,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_l.mdl", "#", "#", 2, "", "0, 47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_l.mdl", "#", "#", 3, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_opp.mdl", "#", "#", 1, "", "0, 47,0", "0, 90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_opp.mdl", "#", "#", 2, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_opp_small.mdl", "#", "#", 1, "", "0, 31,0", "0, 90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_opp_small.mdl", "#", "#", 2, "", "0,-31,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_r.mdl", "#", "#", 1, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_r.mdl", "#", "#", 2, "", "-43,-4,0", "0,180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_r.mdl", "#", "#", 3, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_side.mdl", "#", "#", 1, "", "43,0,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_side.mdl", "#", "#", 2, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_side.mdl", "#", "#", 3, "", "-43,0,0", "0,180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_2door_side.mdl", "#", "#", 4, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_3door.mdl", "#", "#", 1, "", "43,-4,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_3door.mdl", "#", "#", 2, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_3door.mdl", "#", "#", 3, "", "-43,-4,0","0,180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_3door.mdl", "#", "#", 4, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector.mdl", "#", "#", 1, "", "0, 47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector.mdl", "#", "#", 2, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_3way.mdl", "#", "#", 1, "", "2,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_3way.mdl", "#", "#", 2, "", "-45,0,0", "0,-180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_3way.mdl", "#", "#", 3, "", "2,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_4way.mdl", "#", "#", 1, "", "47,0,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_4way.mdl", "#", "#", 2, "", "0,47,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_4way.mdl", "#", "#", 3, "", "-47,0,0", "0,-180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_4way.mdl", "#", "#", 4, "", "0,-47,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_corner.mdl", "#", "#", 1, "", "-45,2,0", "0,180,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_corner.mdl", "#", "#", 2, "", "2,-45,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_hallways/hall_connector_deadend.mdl", "#", "#", 1, "", "0,-45,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/1door.mdl", "#", "#", 1, "", "0,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/1door_l.mdl", "#", "#", 1, "", "-64,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/1door_r.mdl", "#", "#", 1, "", "64,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp.mdl", "#", "#", 1, "", "-64,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp.mdl", "#", "#", 2, "", "-64,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_l.mdl", "#", "#", 1, "", "-64,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_l.mdl", "#", "#", 2, "", "64,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_ml.mdl", "#", "#", 1, "", "-64,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_ml.mdl", "#", "#", 2, "", "0,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_mr.mdl", "#", "#", 1, "", "64,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_mr.mdl", "#", "#", 2, "", "0,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_r.mdl", "#", "#", 1, "", "64,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opp_r.mdl", "#", "#", 2, "", "-64,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opposites.mdl", "#", "#", 1, "", "0,123,0", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_opposites.mdl", "#", "#", 2, "", "0,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_sides.mdl", "#", "#", 1, "", "123,0,0"}) + PIECES:Record({"models/scene_building/small_rooms/2door_sides.mdl", "#", "#", 2, "", "0,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/3door.mdl", "#", "#", 1, "", "123,0,0"}) + PIECES:Record({"models/scene_building/small_rooms/3door.mdl", "#", "#", 2, "", "0, 123,0", "0, 90,0"}) + PIECES:Record({"models/scene_building/small_rooms/3door.mdl", "#", "#", 3, "", "0,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/4door.mdl", "#", "#", 1, "", "123,0,0"}) + PIECES:Record({"models/scene_building/small_rooms/4door.mdl", "#", "#", 2, "", "0, 123,0", "0, 90,0"}) + PIECES:Record({"models/scene_building/small_rooms/4door.mdl", "#", "#", 3, "", "-123,0,0", "0,180,0"}) + PIECES:Record({"models/scene_building/small_rooms/4door.mdl", "#", "#", 4, "", "0,-123,0", "0,-90,0"}) + PIECES:Record({"models/scene_building/small_rooms/stairs_straight.mdl", "#", "#", 1, "", "0,163,64", "0,90,0"}) + PIECES:Record({"models/scene_building/small_rooms/stairs_straight.mdl", "#", "#", 2, "", "0,-163,-64", "0,-90,0"}) if(gsMoDB == "SQL") then sqlCommit() end end -if(fileExists(gsFullDSV.."PHYSPROPERTIES.txt", "DATA")) then - asmlib.LogInstance("DB PHYSPROPERTIES from DSV",gtInitLogs) - asmlib.ImportDSV("PHYSPROPERTIES", true) +if(fileExists(gsGrossDSV.."PHYSPROPERTIES.txt", "DATA")) then + asmlib.LogInstance("DB PHYSPROPERTIES from GENERIC",gtInitLogs) + asmlib.ImportDSV("PHYSPROPERTIES", true, gsGenerPrf) else --- Valve's physical properties: https://developer.valvesoftware.com/wiki/Material_surface_properties if(gsMoDB == "SQL") then sqlBegin() end asmlib.LogInstance("DB PHYSPROPERTIES from LUA",gtInitLogs) @@ -4666,9 +5019,9 @@ else --- Valve's physical properties: https://developer.valvesoftware.com/wiki/M if(gsMoDB == "SQL") then sqlCommit() end end -if(fileExists(gsFullDSV.."ADDITIONS.txt", "DATA")) then - asmlib.LogInstance("DB ADDITIONS from DSV",gtInitLogs) - asmlib.ImportDSV("ADDITIONS", true) +if(fileExists(gsGrossDSV.."ADDITIONS.txt", "DATA")) then + asmlib.LogInstance("DB ADDITIONS from GENERIC",gtInitLogs) + asmlib.ImportDSV("ADDITIONS", true, gsGenerPrf) else if(gsMoDB == "SQL") then sqlBegin() end asmlib.LogInstance("DB ADDITIONS from LUA",gtInitLogs) diff --git a/lua/autorun/z_autorun_[shinji85_s_rails].lua b/lua/autorun/z_autorun_[shinji85_s_rails].lua index f9cff082..4cafe437 100644 --- a/lua/autorun/z_autorun_[shinji85_s_rails].lua +++ b/lua/autorun/z_autorun_[shinji85_s_rails].lua @@ -9,7 +9,8 @@ ]]-- -- Local reference to the module. -local asmlib = trackasmlib +local asmlib = trackasmlib; if(not asmlib) then -- Module present + ErrorNoHaltWithStack("TOOL: Track assembly tool module fail!\n"); return end --[[ * This is your addon name. It is mandatory and it must be string. @@ -19,6 +20,9 @@ local asmlib = trackasmlib ]] local myAddon = "Shinji85's Rails" -- Your addon name goes here +-- Log messages identifier. Leave DSV here or change it if you like +local mySource = "DSV" + --[[ * Change this if you want to use different in-game type * You can also use multiple types myType1, myType2, @@ -27,17 +31,6 @@ local myAddon = "Shinji85's Rails" -- Your addon name goes here ]]-- local myType = myAddon -- The type your addon resides in the tool with ---[[ - * For actually produce an error you can replace the /print/ - * statement with one of following API calls: - * https://wiki.facepunch.com/gmod/Global.print - * https://wiki.facepunch.com/gmod/Global.error - * https://wiki.facepunch.com/gmod/Global.Error - * https://wiki.facepunch.com/gmod/Global.ErrorNoHalt - * https://wiki.facepunch.com/gmod/Global.ErrorNoHaltWithStack -]] -local myError = ErrorNoHalt - -- This is used for addon relation prefix. Fingers away from it local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix @@ -45,6 +38,28 @@ local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix -- Do not touch this also, it is used for debugging local myScript = tostring(debug.getinfo(1).source or "N/A") myScript = "@"..myScript:gsub("^%W+", ""):gsub("\\","/") + mySource = tostring(mySource or ""):gsub("^%W+", "") + mySource = (asmlib.IsBlank(mySource) and "DSV" or mySource) + +-- Store a reference to disable symbol +local gsMissDB = asmlib.GetOpVar("MISS_NOSQL") +local gsDirDSV = asmlib.GetOpVar("DIRPATH_DSV") +local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU") +local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE") + +-- This is the path to your DSV +local myDsv = asmlib.GetLibraryPath(gsDirDSV, myPrefix, gsToolPF.."PIECES") + +--[[ + * This flag is used when the track pieces list needs to be processed. + * It generally represents the locking file persistence flag. It is + * bound to finding a "PIECES" DSV external database for the prefix + * of your addon. You can use it for boolean value deciding whenever + * or not to run certain events. For example you can stop exporting + * your local database every time Gmod loads, but then the user will + * skip the available updates of your addon until he/she deletes the DSVs. +]]-- +local myFlag = file.Exists(myDsv, "DATA") --[[ * This function defines what happens when there is an error present @@ -53,19 +68,17 @@ local myScript = tostring(debug.getinfo(1).source or "N/A") * have to change the function name in lots of places * when you need it to do something else. --]] -local function myThrowError(vMesg) - local sMesg = (myScript.." > ("..myAddon.."): "..tostring(vMesg)) -- Make sure the message is string - if(asmlib) then asmlib.LogInstance(sMesg) end; myError(sMesg) -- Output the message into the logs +local function ThrowError(vMesg) + local sMesg = (myScript.." > ("..myAddon.."): "..tostring(vMesg)) -- Convert to string + if(asmlib) then asmlib.LogInstance(sMesg, mySource) end -- Update the tool logs + ErrorNoHaltWithStack(sMesg.."\n") -- Produce an error without breaking the stack end --- There is something to error about stop the execution and report it -if(not asmlib) then myThrowError("Failed loading the required module!"); return end - --[[ * This logic statement is needed for reporting the error * in the console if the process fails. * - @ bSuccess = SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) + @ bSuccess = trackasmlib.SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) * sTable > The table you want to sync * tData > A data table like the one described above * bRepl > If set to /true/, makes the API replace the repeating models with @@ -75,23 +88,24 @@ if(not asmlib) then myThrowError("Failed loading the required module!"); return * sPref > An export file custom prefix. For synchronizing it must be related to your addon * sDelim > The delimiter used by the server/client ( default is a tab symbol ) * - @ bSuccess = TranslateDSV(sTable, sPref, sDelim) + @ bSuccess = trackasmlib.TranslateDSV(sTable, sPref, sDelim) * sTable > The table you want to translate to Lua script * sPref > An export file custom prefix. For synchronizing it must be related to your addon * sDelim > The delimiter used by the server/client ( default is a tab symbol ) ]]-- -local function mySyncTable(sName, tData, bRepl) +local function DoSynchronize(sName, tData, bRepl) + local sRep = asmlib.GetReport(myPrefix, sName) -- Generate report if error is present if(not asmlib.IsEmpty(tData)) then -- Something to be processed. Do stuff when the table is not empty - asmlib.LogInstance("SynchronizeDSV START <"..myPrefix..">") -- Signal start synchronization + asmlib.LogInstance("Synchronization START "..sRep, mySource) -- Signal start synchronization if(not asmlib.SynchronizeDSV(sName, tData, bRepl, myPrefix)) then -- Attempt to synchronize - myThrowError("Failed to synchronize: "..sName) -- Raise error when fails to sync tracks data + ThrowError("Failed to synchronize content") -- Raise error when fails to sync tracks data else -- Successful. You are saving me from all the work for manually generating these - asmlib.LogInstance("TranslateDSV START <"..myPrefix..">") -- Signal start translation + asmlib.LogInstance("Translation START "..sRep, mySource) -- Signal start translation if(not asmlib.TranslateDSV(sName, myPrefix)) then -- Attempt to translate the DSV to Lua source - myThrowError("Failed to translate DSV: "..sName) end -- Raise error when fails - asmlib.LogInstance("TranslateDSV OK <"..myPrefix..">") -- Translation is successful + ThrowError("Failed to translate content") end -- Raise error when fails + asmlib.LogInstance("Translation OK "..sRep, mySource) -- Translation is successful end -- Now we have Lua inserts and DSV. Otherwise sent empty table and print status in logs - else asmlib.LogInstance("SynchronizeDSV EMPTY <"..myPrefix..">") end -- Nothing to be done + else asmlib.LogInstance("Synchronization EMPTY "..sRep, mySource) end -- Nothing to be done end --[[ @@ -100,21 +114,22 @@ end * (/garrysmod/data/trackassembly/set/trackasmlib_dsv.txt) * a.k.a the DATA folder of Garry's mod. * - * @bSuccess = RegisterDSV(sProg, sPref, sDelim) + * @bSuccess = trackasmlib.RegisterDSV(sProg, sPref, sDelim) * sProg > The program which registered the DSV * sPref > The external data prefix to be added ( default instance prefix ) * sDelim > The delimiter to be used for processing ( default tab ) * bSkip > Skip addition for the DSV prefix if exists ( default `false` ) ]]-- -local function myRegisterDSV(bSkip) - asmlib.LogInstance("RegisterDSV START <"..myPrefix..">") +local function DoRegister(bSkip) + local sRep = asmlib.GetReport(myPrefix, bSkip) -- Generate report if error is present + asmlib.LogInstance("Registration START "..sRep, mySource) if(bSkip) then -- Your DSV must be registered only once when loading for the first time - asmlib.LogInstance("RegisterDSV SKIP <"..myPrefix..">") + asmlib.LogInstance("Registration SKIP "..sRep, mySource) else -- If the locking file is not located that means this is the first run of your script if(not asmlib.RegisterDSV(myScript, myPrefix)) then -- Register the DSV prefix and check for error - myThrowError("Failed to register DSV") -- Throw the error if fails + ThrowError("Failed to register content") -- Throw the error if fails end -- Third argument is the delimiter. The default tab is used - asmlib.LogInstance("RegisterDSV OK <"..myPrefix..">") + asmlib.LogInstance("Registration OK "..sRep, mySource) end end @@ -122,53 +137,33 @@ end * This logic statement is needed for reporting the error in the console if the * process fails. * - @ bSuccess = ExportCategory(nInd, tData, sPref) + @ bSuccess = trackasmlib.ExportCategory(nInd, tData, sPref) * nInd > The index equal indent format to be stored with ( generally = 3 ) * tData > The category functional definition you want to use to divide your stuff with * sPref > An export file custom prefix. For synchronizing * it must be related to your addon ( default is instance prefix ) ]]-- -local function myExportCategory(tCatg) - asmlib.LogInstance("ExportCategory START <"..myPrefix..">") +local function DoCategory(tCatg) + local sRep = asmlib.GetReport(myPrefix, bSkip) -- Generate report if error is present + asmlib.LogInstance("Category export START "..sRep, mySource) if(CLIENT) then -- Category handling is client side only if(not asmlib.IsEmpty(tCatg)) then if(not asmlib.ExportCategory(3, tCatg, myPrefix)) then - myThrowError("Failed to synchronize category") - end; asmlib.LogInstance("ExportCategory OK <"..myPrefix..">") - else asmlib.LogInstance("ExportCategory SKIP <"..myPrefix..">") end - else asmlib.LogInstance("ExportCategory SERVER <"..myPrefix..">") end + ThrowError("Failed to synchronize category") + end; asmlib.LogInstance("Category export OK "..sRep, mySource) + else asmlib.LogInstance("Category export SKIP "..sRep, mySource) end + else asmlib.LogInstance("Category export SERVER "..sRep, mySource) end end --- Store a reference to disable symbol -local gsMissDB = asmlib.GetOpVar("MISS_NOSQL") -local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU") -local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE") -local gsFormPF = asmlib.GetOpVar("FORM_PREFIXDSV") - --- This is the path to your DSV -local myDsv = asmlib.GetOpVar("DIRPATH_BAS").. - asmlib.GetOpVar("DIRPATH_DSV").. - gsFormPF:format(myPrefix, gsToolPF.."PIECES") - ---[[ - * This flag is used when the track pieces list needs to be processed. - * It generally represents the locking file persistence flag. It is - * bound to finding a "PIECES" DSV external database for the prefix - * of your addon. You can use it for boolean value deciding whenever - * or not to run certain events. For example you can stop exporting - * your local database every time Gmod loads, but then the user will - * skip the available updates of your addon until he/she deletes the DSVs. -]]-- -local myFlag = file.Exists(myDsv, "DATA") - -- Tell TA what custom script we just called don't touch it -asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}") +asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}", mySource) -- Register the addon to the workshop ID list asmlib.WorkshopID(myAddon, "326640186") -- Register the addon to the plugable DSV list -myRegisterDSV(myFlag) +local bS, vO = pcall(DoRegister, myFlag) +if(not bS) then ThrowError("Registration error: "..vO) end --[[ * This is used if you want to make internal categories for your addon @@ -195,7 +190,8 @@ local myCategory = { } -- Register the addon category to the plugable DSV list -myExportCategory(myCategory) +local bS, vO = pcall(DoCategory, myCategory) +if(not bS) then ThrowError("Category error: "..vO) end --[[ * Create a table and populate it as shown below @@ -220,7 +216,7 @@ myExportCategory(myCategory) * the model ( from the last slash to the file extension ). * LINEID > This is the ID of the point that can be selected for building. They must be * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. + * a given model key. Disabling this, makes it use the index of the current line. * Use that to swap the active points around by only moving the desired row up or down. * For the example table definition below, the line ID in the database will be the same. * POINT > This is the location vector that TA searches and selects the related ORIGIN for. @@ -344,7 +340,8 @@ local myPieces = { } -- Register the addon PIECES to the plugable DSV list -mySyncTable("PIECES", myPieces, true) +local bS, vO = pcall(DoSynchronize, "PIECES", myPieces, true) +if(not bS) then ThrowError("PIECES error: "..vO) end --[[ * Create a table and populate it as shown below @@ -352,14 +349,14 @@ mySyncTable("PIECES", myPieces, true) * and then for every active point, you must have one array of * strings and numbers, where the elements match the following data settings. * {MODELBASE, MODELADD, ENTCLASS, LINEID, POSOFF, ANGOFF, MOVETYPE, PHYSINIT, DRSHADOW, PHMOTION, PHYSLEEP, SETSOLID} - * MODELBASE > This string contains the path to your base /*.mdl/ file the additions are gonna be attached to. + * MODELBASE > This string contains the path to your base /*.mdl/ file the additions will be attached to. * It is mandatory and taken in pairs with LINEID, it forms the unique identifier of every record. - * When used in /DSV/ mode ( like seen below ) is is used as a hash index. + * When used in /DSV/ mode ( like seen below ) it is used as a hash index. * MODELADD > This is the /*.mdl/ path of the addition entity. It is mandatory and cannot be disabled. * ENTCLASS > This is the class of the addition entity. When disabled or missing it defaults to a normal prop. * LINEID > This is the ID of the point that can be selected for building. They must be * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. + * a given model key. Disabling this, makes it use the index of the current line. * Use that to swap the active points around by only moving the desired row up or down. * For the example table definition below, the line ID in the database will be the same. * POSOFF > This is the local position vector offset that TA uses to place the addition relative to MODELBASE. @@ -392,7 +389,8 @@ local myAdditions = { } -- Register the addon ADDITIONS to the plugable DSV list -mySyncTable("ADDITIONS", myAdditions, true) +local bS, vO = pcall(DoSynchronize, "ADDITIONS", myAdditions, true) +if(not bS) then ThrowError("ADDITIONS error: "..vO) end --[[ * Create a table and populate it as shown below @@ -402,10 +400,10 @@ mySyncTable("ADDITIONS", myAdditions, true) * {TYPE, LINEID, NAME} * TYPE > This is the category under your physical properties are stored internally. * It is mandatory and taken in pairs with LINEID, it forms the unique identifier of every record. - * When used in /DSV/ mode ( like seen below ) is is used as a hash index. + * When used in /DSV/ mode ( like seen below ) it is used as a hash index. * LINEID > This is the ID of the point that can be selected for building. They must be * sequential and mandatory. If provided, the ID must the same as the row index under - * a given model key. Disabling this, makes it use the the index of the current line. + * a given model key. Disabling this, makes it use the index of the current line. * Use that to swap the active points around by only moving the desired row up or down. * For the example table definition below, the line ID in the database will be the same. * NAME > This stores the name of the physical property. It must an actual physical property. @@ -413,6 +411,7 @@ mySyncTable("ADDITIONS", myAdditions, true) local myPhysproperties = {} -- Register the addon PHYSPROPERTIES to the plugable DSV list -mySyncTable("PHYSPROPERTIES", myPhysproperties, true) +local bS, vO = pcall(DoSynchronize, "PHYSPROPERTIES", myPhysproperties, true) +if(not bS) then ThrowError("PHYSPROPERTIES error: "..vO) end -asmlib.LogInstance("<<< "..myScript) +asmlib.LogInstance("<<< "..myScript, mySource) diff --git a/lua/entities/gmod_wire_expression2/core/custom/trackasmlib_wire.lua b/lua/entities/gmod_wire_expression2/core/custom/trackasmlib_wire.lua index c6499d53..1d7c4df0 100644 --- a/lua/entities/gmod_wire_expression2/core/custom/trackasmlib_wire.lua +++ b/lua/entities/gmod_wire_expression2/core/custom/trackasmlib_wire.lua @@ -224,10 +224,10 @@ local function getAdditionsLine(sModel, nID) local defTab = makTab:GetDefinition(); if(not defTab) then asmlib.LogInstance("No table definition"); return {} end local stRec = asmlib.CacheQueryAdditions(sModel); if(not stRec) then return {} end - if(not stRec[nID]) then return {} end; stRec = stRec[nID] - local iRow, arData = 2, {} -- The model is missed by the main SELECT - while(defTab[iRow]) do -- Ordered by ID. Get the line per model - arData[iRow-1] = stRec[defTab[iRow][1]]; iRow = (iRow + 1) + if(not stRec[nID]) then return {} end -- There is no line with such number + local arData = {}; stRec = stRec[nID] -- The model is missed by the main SELECT + for iRow = 2, defTab.Size do -- Ordered by ID. Get the line per model + arData[iRow-1] = stRec[defTab[iRow][1]] end; return arData end @@ -376,7 +376,7 @@ __e2setcost(20) e2function number entity:trackasmlibAttachBodyGroups(string sBgpID) if(not (this and this:IsValid() and enFlag)) then return 0 end local stRec = asmlib.CacheQueryPiece(this:GetModel()); if(not stRec) then return 0 end - return asmlib.AttachBodyGroups(this, sBgpID) and anyTrue or anyFalse + return asmlib.ApplyBodyGroups(this, sBgpID) and anyTrue or anyFalse end __e2setcost(20) diff --git a/lua/trackassembly/trackasmlib.lua b/lua/trackassembly/trackasmlib.lua index cff1d926..6cb38711 100644 --- a/lua/trackassembly/trackasmlib.lua +++ b/lua/trackassembly/trackasmlib.lua @@ -50,6 +50,8 @@ local istable = istable local isnumber = isnumber local isstring = isstring local isvector = isvector +local isangle = isangle +local ismatrix = ismatrix local isfunction = isfunction local Vector = Vector local Matrix = Matrix @@ -64,6 +66,7 @@ local EntityID = Entity local tonumber = tonumber local tostring = tostring local GetConVar = GetConVar +local DermaMenu = DermaMenu local LocalPlayer = LocalPlayer local CreateConVar = CreateConVar local RunConsoleCommand = RunConsoleCommand @@ -79,6 +82,7 @@ local SafeRemoveEntityDelayed = SafeRemoveEntityDelayed local osClock = os and os.clock local osDate = os and os.date local bitBand = bit and bit.band +local guiOpenURL = gui and gui.OpenURL local sqlQuery = sql and sql.Query local sqlLastError = sql and sql.LastError local sqlTableExists = sql and sql.TableExists @@ -120,6 +124,7 @@ local undoAddEntity = undo and undo.AddEntity local undoSetPlayer = undo and undo.SetPlayer local undoSetCustomUndoText = undo and undo.SetCustomUndoText local inputIsKeyDown = input and input.IsKeyDown +local inputGetCursorPos = input and input.GetCursorPos local timerStop = timer and timer.Stop local timerStart = timer and timer.Start local timerSimple = timer and timer.Simple @@ -506,19 +511,6 @@ function LogTable(tT, sS, vSrc, bCon, iDbg, tDbg) end ------------- VALUE --------------- ---[[ - * When requested wraps the first value according to - * the interval described by the other two values - * Inp: -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 - * Out: 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 - * This is an example call for the input between 1 and 3 -]] -function GetWrap(nVal,nMin,nMax) local nVal = nVal - while(nVal < nMin or nVal > nMax) do - nVal = ((nVal < nMin) and (nMax - (nMin - nVal) + 1) or nVal) - nVal = ((nVal > nMax) and (nMin + (nVal - nMax) - 1) or nVal) - end; return nVal -- Returns the N-stepped value -end --[[ * Applies border if exists to the input value @@ -628,10 +620,9 @@ end ----------------- INITAIALIZATION ----------------- function SetLogControl(nLines, bFile) - local bFou, sBas = IsFlag("en_logging_file", bFile), GetOpVar("DIRPATH_BAS") + local bFou = IsFlag("en_logging_file", bFile) local nMax = (tonumber(nLines) or 0); nMax = mathFloor((nMax > 0) and nMax or 0) local sMax, sFou = tostring(GetOpVar("LOG_MAXLOGS")), tostring(bFou) - if(sBas and not fileExists(sBas,"DATA")) then fileCreateDir(sBas) end SetOpVar("LOG_CURLOGS", 0); SetOpVar("LOG_MAXLOGS", nMax) SetOpVar("LOG_FORMLID", "%"..(tostring(nMax)):len().."d") LogInstance("("..sMax..","..sFou..")") @@ -641,16 +632,17 @@ function SettingsLogs(sHash) local sKey = tostring(sHash or ""):upper():Trim() if(not (sKey == "SKIP" or sKey == "ONLY")) then LogInstance("Invalid "..GetReport(sKey)); return false end - local sBas, sSet = GetOpVar("DIRPATH_BAS"), GetOpVar("DIRPATH_SET") local tLogs, lbNam = GetOpVar("LOG_"..sKey), GetOpVar("NAME_LIBRARY") - if(not tLogs) then LogInstance("Skip "..GetReport(sKey)); return false end - local fName = (sBas..sSet..lbNam.."_sl"..sKey:lower()..".txt") + if(not tLogs) then LogInstance("Missing "..GetReport(sKey)); return false end + local fName = GetLibraryPath(GetOpVar("DIRPATH_SET"), lbNam.."_sl"..sKey:lower()) + if(not fileExists(fName, "DATA")) then + LogInstance("Discard "..GetReport(sKey, fName)); return false end local S = fileOpen(fName, "rb", "DATA"); tableEmpty(tLogs) - if(S) then local sLine, isEOF = "", false - while(not isEOF) do sLine, isEOF = GetStringFile(S) - if(not IsBlank(sLine)) then tableInsert(tLogs, sLine) end - end; S:Close(); LogInstance("Success "..GetReport(sKey, fName)); return false - else LogInstance("Missing "..GetReport(sKey, fName)); return false end + if(not S) then LogInstance("Failure "..GetReport(sKey, fName)); return false end + local sLine, isEOF = "", false + while(not isEOF) do sLine, isEOF = GetStringFile(S) + if(not IsBlank(sLine)) then tableInsert(tLogs, sLine) end + end; S:Close(); LogInstance("Success "..GetReport(sKey, fName)); return true end function InitBase(sName, sPurp) @@ -671,14 +663,15 @@ function InitBase(sName, sPurp) SetOpVar("LOG_INIT",{"*Init", false, 0}) SetOpVar("TIME_INIT",Time()) SetOpVar("DELAY_ACTION",0.01) - SetOpVar("DELAY_REMOVE",0.5) + SetOpVar("DELAY_REMOVE",0.2) SetOpVar("MAX_ROTATION",360) SetOpVar("ANG_ZERO",Angle()) SetOpVar("VEC_ZERO",Vector()) SetOpVar("ANG_REV",Angle(0,180,0)) - SetOpVar("VEC_FW",Vector(1,0,0)) - SetOpVar("VEC_RG",Vector(0,-1,1)) - SetOpVar("VEC_UP",Vector(0,0,1)) + SetOpVar("VEC_FW",Vector(1, 0, 0)) + SetOpVar("VEC_RG",Vector(0,-1, 1)) + SetOpVar("VEC_UP",Vector(0, 0, 1)) + SetOpVar("VEC_DW",Vector(0, 0,-1)) SetOpVar("OPSYM_DISABLE","#") SetOpVar("OPSYM_DIVIDER","_") SetOpVar("OPSYM_VERTDIV","|") @@ -692,6 +685,7 @@ function InitBase(sName, sPurp) SetOpVar("CURVE_MARGIN", 15) SetOpVar("COLOR_CLAMP", {0, 255}) SetOpVar("GOLDEN_RATIO",1.61803398875) + SetOpVar("FULL_SLOPEDG", 45) SetOpVar("DATE_FORMAT","%y-%m-%d") SetOpVar("TIME_FORMAT","%H:%M:%S") SetOpVar("NAME_INIT",sName:lower()) @@ -723,7 +717,34 @@ function InitBase(sName, sPurp) SetOpVar("FORM_NTFGAME", "notification.AddLegacy(\"%s\", NOTIFY_%s, 6)") SetOpVar("FORM_NTFPLAY", "surface.PlaySound(\"ambient/water/drip%d.wav\")") SetOpVar("MODELNAM_FILE","%.mdl") - SetOpVar("VCOMPARE_SORT", function(u, v) return (u.Val < v.Val) end) + SetOpVar("DBEXP_PREFGEN", "[generic]_") + SetOpVar("VCOMPARE_SPAN", function(u, v) + if(u.T ~= v.T) then return u.T < v.T end + local uC, vC = (u.C or {}), (v.C or {}) + for i = 1, mathMax(#uC, #vC) do + local uS, vS = uC[i], vC[i] + if(uS ~= vS) then -- No category must fall behind + if(vS == nil or vS == "") then return true end + if(uS == nil or uS == "") then return false end + return uS < vS + end + end + if(u.N ~= v.N) then return u.N < v.N end + if(u.M ~= v.M) then return u.M < v.M end + return false end) + SetOpVar("VCOMPARE_SDAT", function(u, v, c) + for iD = 1, c.Size do + local iR = c[iD] + local uR, vR = u.Rec, v.Rec + local uV, vV = uR[iR], vR[iR] + if(uV ~= vV) then -- Nil is considered less + if(uV == nil or uV == "") then return true end + if(vV == nil or vV == "") then return false end + return uV < vV + end + end; return false; end) + SetOpVar("VCOMPARE_SKEY", function(u, v) return (u.Key < v.Key) end) + SetOpVar("VCOMPARE_SREC", function(u, v) return (u.Rec < v.Rec) end) SetOpVar("MODELNAM_FUNC", function(x) return " "..x:sub(2,2):upper() end) SetOpVar("EMPTYSTR_BLNU", function(x) return (IsBlank(x) or IsNull(x)) end) SetOpVar("EMPTYSTR_BLDS", function(x) return (IsBlank(x) or IsDisable(x)) end) @@ -738,8 +759,6 @@ function InitBase(sName, sPurp) SetOpVar("TYPEMT_QUEUE",{}) SetOpVar("TYPEMT_SCREEN",{}) SetOpVar("TYPEMT_CONTAINER",{}) - SetOpVar("TYPEMT_VECTOR",getmetatable(GetOpVar("VEC_ZERO"))) - SetOpVar("TYPEMT_ANGLE" ,getmetatable(GetOpVar("ANG_ZERO"))) SetOpVar("ARRAY_BNDERRMOD",{"OFF", "LOG", "HINT", "GENERIC", "ERROR"}) SetOpVar("ARRAY_MODEDB",{"LUA", "SQL"}) SetOpVar("ARRAY_MODETM",{"CQT", "OBJ"}) @@ -754,6 +773,7 @@ function InitBase(sName, sPurp) SetOpVar("HASH_PROPERTY_TYPES","PROPERTY_TYPES") SetOpVar("TRACE_CLASS", {[GetOpVar("ENTITY_DEFCLASS")]=true}) SetOpVar("TRACE_DATA",{ -- Used for general trace result storage + length = 0, -- Will store the trace length when needed start = Vector(), -- Start position of the trace endpos = Vector(), -- End position of the trace mask = MASK_SOLID, -- Mask telling it what to hit @@ -767,6 +787,8 @@ function InitBase(sName, sPurp) SetOpVar("PATTEX_TABLEDAD", "%s*local%s+myAdditions%s*=%s*") SetOpVar("PATTEX_VARADDON", "%s*local%s+myAddon%s*=%s*") SetOpVar("PATTEM_WORKSHID", "^%d+$") + SetOpVar("PATTEM_EXCATHED", {"@", "(%s@%d)" , "^#.*Category.*%(.+%)", "%(.+%)"}) + SetOpVar("PATTEM_EXDSVHED", {"@", "(%s@%s@%s)", "^#.*DSV.*%(.+%)" , "%(.+%)"}) SetOpVar("HOVER_TRIGGER" , {}) if(CLIENT) then SetOpVar("TABLE_IHEADER", {name = "", stage = 0, op = 0, icon = "", icon2 = ""}) @@ -779,7 +801,6 @@ function InitBase(sName, sPurp) {name = "reload" , icon = "gui/r.png" }, {name = "reload_use", icon = "gui/r.png" , icon2 = "gui/e.png"} }) - SetOpVar("MISS_NOTR","Oops, missing ?") -- No translation found SetOpVar("TOOL_DEFMODE","gmod_tool") SetOpVar("FORM_FILENAMEAR", "z_autorun_[%s].txt") SetOpVar("FORM_DRAWDBG", "%s{%s}: %s > %s") @@ -791,7 +812,7 @@ function InitBase(sName, sPurp) SetOpVar("ARRAY_GHOST",{Size=0, Slot=GetOpVar("MISS_NOMD")}) SetOpVar("TABLE_CATEGORIES",{}) SetOpVar("CLIPBOARD_TEXT","") - SetOpVar("TREE_KEYPANEL","#$@KEY&*PAN*&OBJ@$#") + SetOpVar("FMNODE_PATH","%s>%s") end; LogInstance("Success"); return true end @@ -835,19 +856,16 @@ end function SnapAngle(aBase, nvDec) if(not aBase) then LogInstance("Base invalid"); return nil end - local D = (tonumber(nvDec) or 0); if(D <= 0) then - LogInstance("Low mismatch "..GetReport(nvDec)); return nil end - if(D >= GetOpVar("MAX_ROTATION")) then - LogInstance("High mismatch "..GetReport(nvDec)); return nil end - -- Snap player viewing rotation angle for using walls and ceiling + local R = GetOpVar("MAX_ROTATION") + local D = (tonumber(nvDec) or 0) + if(D <= 0 or D >= R) then return aBase end aBase:SnapTo("pitch", D):SnapTo("yaw", D):SnapTo("roll", D) return aBase end function GridAngle(aBase, nvDec) if(not aBase) then LogInstance("Base invalid"); return nil end - local D = tonumber(nvDec or 0); if(not IsHere(D)) then - LogInstance("Grid mismatch "..GetReport(nvDec)); return nil end + local D = tonumber(nvDec or 0); if(D == 0) then return aBase end local P, Y, R = aBase:Unpack() if(P == 0 and P == 0 and D > 0) then Y = GetGrid(Y, D) end aBase:SetUnpacked(P, Y, R) return aBase @@ -1604,11 +1622,9 @@ function SetAction(sKey, fAct, tDat) LogInstance("Action mismatch "..GetReport(fAct)); return nil end if(not libAction[sKey]) then libAction[sKey] = {} end local tAct = libAction[sKey]; tAct.Act, tAct.Dat = fAct, {} - if(istable(tDat)) then - for key, val in pairs(tDat) do - tAct.Dat[key] = tDat[key] - end - else tAct.Dat = {tDat} end + if(istable(tDat)) then -- Must support vectors and angles + for key, val in pairs(tDat) do tAct.Dat[key] = tDat[key] end + else tAct.Dat = {tDat} end -- Shared data must always be table tAct.Dat.Slot = sKey; return true end @@ -1636,80 +1652,138 @@ function DoAction(sKey, ...) return pcall(tAct.Act, tAct.Dat, ...) end -function AddLineListView(pnListView,frUsed,ivNdex) - if(not IsHere(pnListView)) then - LogInstance("Missing panel"); return false end - if(not IsValid(pnListView)) then - LogInstance("Invalid panel"); return false end - if(not IsHere(frUsed)) then - LogInstance("Missing data"); return false end - local iNdex = tonumber(ivNdex); if(not IsHere(iNdex)) then - LogInstance("Index mismatch "..GetReport(ivNdex)); return false end - local tValue = frUsed[iNdex]; if(not IsHere(tValue)) then - LogInstance("Missing data on index "..GetReport(iNdex)); return false end - local makTab = GetBuilderNick("PIECES"); if(not IsHere(makTab)) then - LogInstance("Missing table builder"); return nil end - local sModel = tValue.Table[makTab:GetColumnName(1)] - local sType = tValue.Table[makTab:GetColumnName(2)] - local sName = tValue.Table[makTab:GetColumnName(3)] - local nAct = tValue.Table[makTab:GetColumnName(4)] - local nUsed = mathRound(tValue.Value,3) - local pnLine = pnListView:AddLine(nUsed,nAct,sType,sName,sModel) - pnLine:SetTooltip(sModel) - return true -end - --[[ * Updates a VGUI pnListView with a search preformed in the already generated - * frequently used pieces "frUsed" for the pattern "sPat" given by the user + * frequently used pieces "frUsed" for the pattern "sPa" given by the user * and a column name selected `sCol`. * On success populates `pnListView` with the search preformed * On fail a parameter is not valid or missing and returns non-success * pnListView > The panel which must be updated * frUsed > The list of the frequently used tracks - * nCount > The amount of pieces to check - * sCol > The name of the column it preforms search by - * sPat > Search pattern to preform the search with + * nID > The index of the column it preforms search by + * sPa > Search pattern to preform the search with ]] -function UpdateListView(pnListView,frUsed,nCount,sCol,sPat) +function UpdateListView(pnListView,frUsed,nID,sPa) if(not (IsHere(frUsed) and IsHere(frUsed[1]))) then LogInstance("Missing data"); return false end - local nCount = (tonumber(nCount) or 0); if(nCount <= 0) then - LogInstance("Count not applicable"); return false end - if(IsHere(pnListView)) then - if(not IsValid(pnListView)) then - LogInstance("Invalid ListView"); return false end - pnListView:SetVisible(false); pnListView:Clear() - else LogInstance("Missing ListView"); return false end - local sCol, iCnt = tostring(sCol or ""), 1 - local sPat, sDat = tostring(sPat or ""), nil - while(frUsed[iCnt]) do - if(IsBlank(sPat)) then - if(not AddLineListView(pnListView,frUsed,iCnt)) then - LogInstance("Failed to add line on "..GetReport(iCnt)); return false end + if(not IsHere(pnListView)) then + LogInstance("Missing ListView"); return false end + if(not IsValid(pnListView)) then + LogInstance("Invalid ListView"); return false end + local makTab = GetBuilderNick("PIECES"); if(not IsHere(makTab)) then + LogInstance("Missing table builder"); return nil end + pnListView:SetVisible(false); pnListView:Clear() + local nID, sPa = (tonumber(nID) or 0), tostring(sPa or "") + for iCnt = 1, frUsed.Size do + local tInfo = frUsed[iCnt]; if(not IsHere(tInfo)) then + LogInstance("Missing data on index "..GetReport(iCnt)); return false end + local nUsed = mathRound(tInfo.Time, 3) + local sModel, sType, sName, nAct = unpack(tInfo.Data) + if(IsBlank(sPa)) then + local pnLine = pnListView:AddLine(nUsed,nAct,sType,sName,sModel); if(not IsValid(pnLine)) then + LogInstance("Line invalid "..GetReport(iCnt)); return false end + pnLine:SetTooltip(sModel) else - sDat = tostring(frUsed[iCnt].Table[sCol] or "") - if(sDat:find(sPat)) then - if(not AddLineListView(pnListView,frUsed,iCnt)) then - LogInstance("Failed to add line "..GetReport(iCnt, sDat, sPat, sCol)); return false end + local sDa = tostring(frUsed[iCnt].Data[nID] or "") + if(sDa:find(sPa)) then + local pnLine = pnListView:AddLine(nUsed,nAct,sType,sName,sModel); if(not IsValid(pnLine)) then + LogInstance("Line invalid "..GetReport(iCnt,sDa,sPa,nID)); return false end + pnLine:SetTooltip(sModel) end - end; iCnt = iCnt + 1 + end end; pnListView:SetVisible(true) - LogInstance("Crated "..GetReport(iCnt-1)); return true + LogInstance("Processed "..GetReport(frUsed.Size, frUsed.Need)); return true end -function GetDirectory(pCurr, vName) - if(not pCurr) then - LogInstance("Location invalid"); return nil end - local keyOb = GetOpVar("TREE_KEYPANEL") - local sName = tostring(vName or "") - sName = IsBlank(sName) and "Other" or sName - local pItem = pCurr[sName]; if(not IsHere(pItem)) then - LogInstance("Name missing "..GetReport(sName)); return nil end - return pItem, pItem[keyOb] +function GetNodeTypeRoot(pnBase, iRep, sSym) + if(not IsValid(pnBase)) then + LogInstance("Base panel invalid"); return nil end + local pC, sP, pT = pnBase, "", nil + local sFmp = GetOpVar("FMNODE_PATH") + local sSym = tostring(sSym or " "):sub(1,1) + local sRep = sSym:rep(tonumber(iRep) or 0) + local sD = sFmp:format(sRep, sRep) + while(not pC:IsRootNode()) do + sP = sD..pC:GetText()..sP + pT = pC; pC = pC:GetParentNode() + end; return pT, sP:sub(sD:len()+1, -1) +end + +function OpenNodeMenu(pnBase) + if(not IsValid(pnBase)) then + LogInstance("Base panel invalid"); return nil end + local pMenu = DermaMenu(false, pnBase) + if(not IsValid(pMenu)) then + LogInstance("Base menu invalid"); return nil end + local pT, sP = GetNodeTypeRoot(pnBase, 1) + if(not IsValid(pT)) then + LogInstance("Base root invalid"); return nil end + local sM, sI = GetOpVar("TOOLNAME_NL"), "pn_contextm_" + local sT = "tool."..sM.."."..sI + local sID = WorkshopID(pT:GetText()) + local bEx = GetAsmConvar("exportdb", "BUL") + -- Copy node information + local pIn, pOp = pMenu:AddSubMenu(languageGetPhrase(sT.."cp")) + if(not (IsValid(pIn) and IsValid(pOp))) then + LogInstance("Base copy invalid"); return nil end + -- Copy various strings + pOp:SetIcon(ToIcon(sI.."cp")) + if(pnBase.Content) then + pIn:AddOption(languageGetPhrase(sT.."cpmd"), + function() SetClipboardText(pnBase.Content) end):SetIcon(ToIcon(sI.."cpmd")) + end + pIn:AddOption(languageGetPhrase(sT.."cpty"), + function() SetClipboardText(pT:GetText()) end):SetIcon(ToIcon(sI.."cpty")) + pIn:AddOption(languageGetPhrase(sT.."cpnm"), + function() SetClipboardText(pnBase:GetText()) end):SetIcon(ToIcon(sI.."cpnm")) + pIn:AddOption(languageGetPhrase(sT.."cpth"), + function() SetClipboardText(sP) end):SetIcon(ToIcon(sI.."cpth")) + -- Handle workshop + if(sID) then + local sUR = GetOpVar("FORM_URLADDON") + local pIn, pOp = pMenu:AddSubMenu(languageGetPhrase(sT.."ws")) + if(not (IsValid(pIn) and IsValid(pOp))) then + LogInstance("Base WS invalid"); return nil end + pOp:SetIcon(ToIcon(sI.."ws")) + pIn:AddOption(languageGetPhrase(sT.."wsid"), + function() SetClipboardText(sID) end):SetIcon(ToIcon(sI.."wsid")) + pIn:AddOption(languageGetPhrase(sT.."wsop"), + function() guiOpenURL(sUR:format(sID)) end):SetIcon(ToIcon(sI.."wsop")) + end + -- Panel handling + if(not pnBase.Content) then + pMenu:AddOption(languageGetPhrase(sT.."ep"), + function() SetNodeExpand(pnBase) end):SetIcon(ToIcon(sI.."ep")) + end + -- Export database contents on autorun + if(bEx and pnBase == pT) then + local pIn, pOp = pMenu:AddSubMenu(languageGetPhrase(sT.."ex")) + if(not (IsValid(pIn) and IsValid(pOp))) then + LogInstance("Base export invalid"); return nil end + pOp:SetIcon(ToIcon(sI.."ex")) + pIn:AddOption(languageGetPhrase(sT.."exdv"), + function() + SetAsmConvar(oPly, "exportdb", 0) + local oPly = LocalPlayer(); if(not IsPlayer(oPly)) then + LogInstance("Player invalid"); return nil end + LogInstance("Export "..GetReport(oPly:Nick(), pT:GetText())) + ExportTypeDSV(pT:GetText()) + end):SetIcon(ToIcon(sI.."exdv")) + pIn:AddOption(languageGetPhrase(sT.."exru"), + function() + SetAsmConvar(oPly, "exportdb", 0) + local oPly = LocalPlayer(); if(not IsPlayer(oPly)) then + LogInstance("Player invalid"); return nil end + LogInstance("Export "..GetReport(oPly:Nick(), pT:GetText())) + ExportTypeRun(pT:GetText()) + end):SetIcon(ToIcon(sI.."exru")) + end + pMenu:Open() end -function SetExpandNode(pnBase) +function SetNodeExpand(pnBase) + if(not IsValid(pnBase)) then + LogInstance("Base panel invalid"); return nil end local bEx = pnBase:GetExpanded() if(inputIsKeyDown(KEY_LSHIFT)) then pnBase:ExpandRecurse(not bEx) @@ -1718,43 +1792,39 @@ function SetExpandNode(pnBase) end end -function SetDirectory(pnBase, pCurr, vName) - if(not IsValid(pnBase)) then - LogInstance("Base panel invalid"); return nil end - if(not pCurr) then - LogInstance("Location invalid"); return nil end - local tSkin = pnBase:GetSkin() - local sTool = GetOpVar("TOOLNAME_NL") - local keyOb = GetOpVar("TREE_KEYPANEL") +function SetNodeDirectory(pnBase, vName) + if(not IsValid(pnBase)) then LogInstance("Base invalid " + ..GetReport(pnBase, sName)); return nil end local sName = tostring(vName or "") sName = (IsBlank(sName) and "Other" or sName) local pNode = pnBase:AddNode(sName) - pCurr[sName] = {}; pCurr[sName][keyOb] = pNode - pNode:SetTooltip(languageGetPhrase("tool."..sTool..".subfolder")) + if(not IsValid(pNode)) then LogInstance("Node invalid " + ..GetReport(pnBase:GetText(), sName)); return nil end + local tSkin = pnBase:GetSkin() + local sTool = GetOpVar("TOOLNAME_NL") + local pRoot, sPath = GetNodeTypeRoot(pNode, 1) + local sCatC = languageGetPhrase("tool."..sTool..".subfolder_con") + pNode:SetTooltip(sCatC.." "..sPath) pNode.Icon:SetImage(ToIcon("subfolder_item")) - pNode.DoClick = function() SetExpandNode(pNode) end - pNode.Expander.DoClick = function() SetExpandNode(pNode) end - pNode.DoRightClick = function() - SetClipboardText(pNode:GetText()) - end + pNode.DoClick = function() SetNodeExpand(pNode) end + pNode.Expander.DoClick = function() SetNodeExpand(pNode) end + pNode.Expander:SetTooltip(languageGetPhrase("tool."..sTool..".subfolder")) + pNode.DoRightClick = function() OpenNodeMenu(pNode) end pNode:UpdateColours(tSkin) - return pCurr[sName], pNode + return pNode end -function SetDirectoryNode(pnBase, sName, sModel) +function SetNodeContent(pnBase, sName, sModel) if(not IsValid(pnBase)) then LogInstance("Base invalid " - ..GetReport(sName, sModel)); return nil end + ..GetReport(pnBase, sName, sModel)); return nil end local pNode = pnBase:AddNode(sName) if(not IsValid(pNode)) then LogInstance("Node invalid " - ..GetReport(sName, sModel)); return nil end + ..GetReport(pnBase:GetText(), sName, sModel)); return nil end local tSkin = pnBase:GetSkin() local sTool = GetOpVar("TOOLNAME_NL") local sModC = languageGetPhrase("tool."..sTool..".model_con") - pNode.DoRightClick = function() - if(inputIsKeyDown(KEY_LSHIFT)) then - SetClipboardText(sModel) - else SetClipboardText(sName) end - end + pNode.DoRightClick = function() OpenNodeMenu(pNode) end + pNode.Content = sModel pNode:SetTooltip(sModC.." "..sModel) pNode.Icon:SetImage(ToIcon("model")) pNode.DoClick = function(pnSelf) @@ -1770,22 +1840,8 @@ function SetDirectoryNode(pnBase, sName, sModel) return pNode end -function PushSortValues(tTable,snCnt,nsValue,tData) - local iCnt, iInd = mathFloor(tonumber(snCnt) or 0), 1 - if(not (tTable and istable(tTable) and (iCnt > 0))) then return 0 end - if(not tTable[iInd]) then - tTable[iInd] = {Value = nsValue, Table = tData}; return iInd - else - while(tTable[iInd] and (tTable[iInd].Value < nsValue)) do iInd = iInd + 1 end - if(iInd > iCnt) then return iInd end - while(iInd < iCnt) do - tTable[iCnt] = tTable[iCnt - 1]; iCnt = iCnt - 1 - end; tTable[iInd] = {Value = nsValue, Table = tData}; return iInd - end -end - -function GetFrequentModels(snCount) - local snCount = (tonumber(snCount) or 0); if(snCount < 1) then +function GetFrequentPieces(iCnt) + local iCnt = (tonumber(iCnt) or 0); if(iCnt < 1) then LogInstance("Count not applicable"); return nil end local makTab = GetBuilderNick("PIECES"); if(not IsHere(makTab)) then LogInstance("Missing table builder"); return nil end @@ -1793,23 +1849,47 @@ function GetFrequentModels(snCount) LogInstance("Missing table definition"); return nil end local tCache = libCache[defTab.Name]; if(not IsHere(tCache)) then LogInstance("Missing table cache space"); return nil end - local frUsed = GetOpVar("TABLE_FREQUENT_MODELS") - local iInd, tmNow = 1, Time(); tableEmpty(frUsed) - for mod, rec in pairs(tCache) do - if(IsHere(rec.Used) and IsHere(rec.Size) and rec.Size > 0) then - iInd = PushSortValues(frUsed,snCount,tmNow-rec.Used,{ - [makTab:GetColumnName(1)] = mod, - [makTab:GetColumnName(2)] = rec.Type, - [makTab:GetColumnName(3)] = rec.Name, - [makTab:GetColumnName(4)] = rec.Size - }) - if(iInd < 1) then LogInstance("Array index out of border"); return nil end - end - end - if(IsHere(frUsed) and IsHere(frUsed[1])) then return frUsed, snCount end + local tmNow, frUsed = Time(), GetOpVar("TABLE_FREQUENT_MODELS") + local tSort = Arrange(tCache, "Used"); if(not tSort) then + LogInstance("Sorting table cache failed"); return nil end + tableEmpty(frUsed); frUsed.Size = 0; frUsed.Need = iCnt + for iD = tSort.Size, (tSort.Size - iCnt + 1), -1 do + local oRec = tSort[iD] -- Index arranged record ID + if(oRec) then oRec = oRec.Rec -- Jump over to the record + if(not oRec.Post) then -- Initialized. Not yet picked + local nT = (tmNow - (tonumber(oRec.Used) or 0)) + local tD = {oRec.Slot, oRec.Type, oRec.Name, oRec.Size} + frUsed.Size = (frUsed.Size + 1) -- Increment size + tableInsert(frUsed, {Time = nT, Data = tD}) + end -- Time and panel data has been stored and passed + else break end -- Nothing else left to process + end -- Return only when at least one record is found + if(frUsed.Size > 0) then return frUsed end LogInstance("Array is empty or not available"); return nil end +function SetListViewRowClipboard(pnListView) + local nID, pnRow = pnListView:GetSelectedLine() + if(not (nID and nID > 0 and pnRow)) then return "" end + local sD = (GetOpVar("OPSYM_VERTDIV") or "|") + sD = tostring(sD):sub(1, 1) -- First symbol + local iSize, sP = #pnListView.Columns, sD + for iD = 1, iSize do + sP = sP..pnRow:GetColumnText(iD)..sD + end; SetClipboardText(sP) +end + +function SetListViewBoxClipboard(pnListView, nX, nY) + local nID, pnRow = pnListView:GetSelectedLine() + if(not (nID and nID > 0 and pnRow)) then return "" end + local cC, mX, mY = 0, inputGetCursorPos() + local nX, nY = (tonumber(nX) or mX), (tonumber(nY) or mY) + local cX, cY = pnListView:ScreenToLocal(nX, nY) + while(cX > 0) do cC = (cC + 1) + cX = (cX - pnListView:ColumnWidth(cC)) end + SetClipboardText(pnRow:GetColumnText(cC)) +end + function SetComboBoxClipboard(pnCombo) local sV = pnCombo:GetValue() local iD = pnCombo:GetSelectedID() @@ -2048,10 +2128,12 @@ end function SwitchID(vID,vDir,oRec) local stPOA, ID = LocatePOA(oRec,vID); if(not IsHere(stPOA)) then LogInstance("ID missing "..GetReport(vID)); return 1 end - local nDir = (tonumber(vDir) or 0); nDir = (((nDir > 0) and 1) or ((nDir < 0) and -1) or 0) - if(nDir == 0) then LogInstance("Direction mismatch"); return ID end - ID = GetWrap(ID + nDir,1,oRec.Size) -- Move around the snap location selected - stPOA = LocatePOA(oRec,ID); if(not IsHere(stPOA)) then + local nDir = mathFloor(tonumber(vDir) or 0) + local iDir = (((nDir > 0) and 1) or ((nDir < 0) and -1) or 0) + if(iDir == 0) then LogInstance("Direction mismatch"); return ID end + local nC = (ID + iDir) % oRec.Size -- Reminder of ID increment + local ID = (nC == 0) and oRec.Size or nC -- Zero default to size + local stPOA = LocatePOA(oRec,ID); if(not IsHere(stPOA)) then LogInstance("Offset missing "..GetReport(ID)); return 1 end return ID end @@ -2154,21 +2236,28 @@ function GetAttachmentByID(vSrc, sID) LogInstance("Index missing "..GetReport(sID, vSrc)); return nil end if(isstring(vSrc)) then -- Source is a model path sSrc = vSrc; if(not IsModel(sSrc)) then - LogInstance("Model mismatch "..GetReport(sID, sSrc)); return nil, sSrc end + LogInstance("Model mismatch [S] "..GetReport(sID, sSrc)); return nil, sSrc end eBase = GetOpVar("ENTITY_TRANSFORMPOA") -- Use transform entity if(eBase and eBase:IsValid()) then -- Valid basis entity then if(eBase:GetModel() ~= sSrc) then eBase:SetModel(sSrc) - LogInstance("Update "..GetReport(eBase:EntIndex(), sID, sSrc)) end + LogInstance("Update [S] "..GetReport(eBase:EntIndex(), sID, sSrc)) end else -- If there is no basis need to create one for attachment extraction eBase = NewEntityNone(sSrc); if(not (eBase and eBase:IsValid())) then - LogInstance("Basis creation error "..GetReport(sID, sSrc)); return nil, sSrc end + LogInstance("Basis creation error [S] "..GetReport(sID, sSrc)); return nil, sSrc end SetOpVar("ENTITY_TRANSFORMPOA", eBase) -- Register the entity transform basis end -- Transfer the data from the transform attachment location + elseif(isnumber(vSrc)) then + local iSrc = mathFloor(vSrc); if(iSrc <= 0) then + LogInstance("Index invalid [N] "..GetReport(sID, vSrc, iSrc)); return nil, sSrc end + local eSrc = EntityID(iSrc); if(not (eSrc and eSrc:IsValid())) then + LogInstance("Entity invalid [N] "..GetReport(sID, eSrc)); return nil, sSrc end + eBase, sSrc = eSrc, eSrc:GetModel(); if(not isstring(sID)) then + LogInstance("Index mismatch [N] "..GetReport(sID, sSrc)); return nil, sSrc end else -- Assume the source is an entity already spawned use it instead if(not (vSrc and vSrc:IsValid())) then - LogInstance("Entity invalid "..GetReport(sID, vSrc)); return nil, sSrc end + LogInstance("Entity invalid [E] "..GetReport(sID, vSrc)); return nil, sSrc end eBase, sSrc = vSrc, vSrc:GetModel(); if(not isstring(sID)) then - LogInstance("Index mismatch "..GetReport(sID, sSrc)); return nil, sSrc end + LogInstance("Index mismatch [E] "..GetReport(sID, sSrc)); return nil, sSrc end end local mID = eBase:LookupAttachment(sID); if(not isnumber(mID)) then LogInstance("Attachment invalid ID "..GetReport(sID, sSrc)); return nil, sSrc end @@ -2189,90 +2278,68 @@ end ]] function LocatePOA(oRec, ivPoID) if(not oRec) then LogInstance("Missing record"); return nil end - local tOffs = oRec.Offs; if(not tOffs) then + local sMo, tOffs = oRec.Slot, oRec.Offs; if(not tOffs) then LogInstance("Missing offsets for "..GetReport(oRec.Slot)); return nil end local iPoID = tonumber(ivPoID); if(iPoID) then iPoID = mathFloor(iPoID) else LogInstance("ID mismatch "..GetReport(ivPoID)); return nil end local stPOA = tOffs[iPoID]; if(not IsHere(stPOA)) then LogInstance("Missing ID "..GetReport(iPoID, oRec.Slot)); return nil end - if(oRec.Tran) then oRec.Tran = nil -- Transforming has started - local sE = GetOpVar("OPSYM_ENTPOSANG") -- Extract transform from model - for ID = 1, oRec.Size do local tPOA = tOffs[ID] -- Index current offset - local sP, sO, sA = tPOA.P:Raw(), tPOA.O:Raw(), tPOA.A:Raw() - if(sO) then tPOA.O:Decode(sO, oRec.Slot, "Pos") - LogInstance("Origin spawn "..GetReport(ID, sO)) - end -- Transform origin is decoded from the model and stored in the cache - if(sA) then tPOA.A:Decode(sA, oRec.Slot, "Ang") - LogInstance("Angle spawn "..GetReport(ID, sA)) - end -- Transform angle is decoded from the model and stored in the cache - if(sP) then tPOA.P:Decode(sP, oRec.Slot, "Pos", tPOA.O:Get()) - LogInstance("Point spawn "..GetReport(ID, sP)) - end -- Otherwise point is initialized on registration and we have nothing to do here - LogInstance("Index "..GetReport(ID, tPOA.P:String(), tPOA.O:String(), tPOA.A:String())) + if(oRec.Post) then oRec.Post = nil -- Transforming has started + for ID = 1, oRec.Size do -- Loop trough all the points and process DB spawn + local tPOA = tOffs[ID] -- Extract current offset and localize raw values + local oP, oO, oA = tPOA.P, tPOA.O, tPOA.A -- POA object pointers + local sP, sO, sA = oP:Raw(), oO:Raw(), oA:Raw() -- POA raw values + if(sO) then tPOA.O:Decode(sO, sM, "Pos") end -- Process origin + if(sA) then tPOA.A:Decode(sA, sM, "Ang") end -- Process angle + if(sP) then tPOA.P:Decode(sP, sM, "Pos", tPOA.O:Get()) end + LogInstance("Spawn "..GetReport(ID, tPOA.P:String(), tPOA.O:String(), tPOA.A:String())) end -- Loop and transform all the POA configuration at once. Game model slot will be taken end; return stPOA, iPoID end function RegisterPOA(stData, ivID, sP, sO, sA) - local sNull = GetOpVar("MISS_NOSQL"); if(not stData) then + local sNu = GetOpVar("MISS_NOSQL"); if(not stData) then LogInstance("Cache record invalid"); return nil end local iID = tonumber(ivID); if(not IsHere(iID)) then LogInstance("Offset ID mismatch "..GetReport(ivID)); return nil end - local sP = (sP or sNull); if(not isstring(sP)) then + local sP = (sP or sNu); if(not isstring(sP)) then LogInstance("Point mismatch "..GetReport(sP)); return nil end - local sO = (sO or sNull); if(not isstring(sO)) then + local sO = (sO or sNu); if(not isstring(sO)) then LogInstance("Origin mismatch "..GetReport(sO)); return nil end - local sA = (sA or sNull); if(not isstring(sA)) then + local sA = (sA or sNu); if(not isstring(sA)) then LogInstance("Angle mismatch "..GetReport(sA)); return nil end - if(not stData.Offs) then if(iID > 1) then + LogInstance("Store "..GetReport(sNu, iID, sP, sO, sA, stData.Slot)) + if(not stData.Offs) then if(iID ~= 1) then LogInstance("Mismatch ID "..GetReport(iID, stData.Slot)); return nil end - stData.Offs = {} + stData.Offs = {}; stData.Post = true -- Mark post-process on spawn + if(not IsHere(stData.Used)) then stData.Used = 0 end end local tOffs = stData.Offs; if(tOffs[iID]) then - LogInstance("Exists ID "..GetReport(iID)); return nil - else + LogInstance("Exists ID "..GetReport(iID)); return tOffs + else -- The offset ID does not exists so create one if((iID > 1) and (not tOffs[iID - 1])) then LogInstance("Scatter ID "..GetReport(iID)); return nil end tOffs[iID] = {}; tOffs = tOffs[iID] -- Allocate a local offset index - tOffs.P = NewPOA(); tOffs.O = NewPOA(); tOffs.A = NewPOA() - end; local sE = GetOpVar("OPSYM_ENTPOSANG") - if(sO:sub(1,1) == sE) then -- To be decoded on spawn via locating - stData.Tran = true; tOffs.O:Set(); tOffs.O:Raw(sO) -- Store transform - LogInstance("Origin init "..GetReport(iID, sO, stData.Slot)) - else -- When the origin is empty use the zero otherwise decode the value - tOffs.O:Import(sO, stData.Slot) -- Try to decode the origin when present - end -- Try decoding the transform point when not applicable - if(sA:sub(1,1) == sE) then -- To be decoded on spawn via locating - stData.Tran = true; tOffs.A:Set(); tOffs.A:Raw(sA) -- Store transform - LogInstance("Angle init "..GetReport(iID, sA, stData.Slot)) - else -- When the angle is empty use the zero otherwise decode the value - tOffs.A:Import(sA, stData.Slot) -- Try to decode the angle when present - end -- Try decoding the transform point when not applicable - if(tOffs.O:Raw() or sP:sub(1,1) == sE) then -- Origin transform trigger - stData.Tran = true; tOffs.P:Set(); tOffs.P:Raw(sP) -- Store transform - LogInstance("Point init "..GetReport(iID, sP, stData.Slot)) - else -- When the point is empty use the origin otherwise decode the value - tOffs.P:Import(sP, stData.Slot, tOffs.O:Get()) -- Try to decode the point when present - end -- Try decoding the transform point when not applicable - return tOffs -- On success return the populated POA offset -end - -function Sort(tTable, tCols) - local tS, iS = {Size = 0}, 0 - local fS = GetOpVar("VCOMPARE_SORT") - local tC = tCols or {}; tC.Size = #tC - for key, rec in pairs(tTable) do - iS = (iS + 1); tS[iS] = {} - tS[iS].Key, tS[iS].Rec = key, rec - if(istable(rec)) then tS[iS].Val = "" -- Allocate sorting value - if(tC.Size > 0) then -- When there are sorting column names provided - for iI = 1, tC.Size do local sC = tC[iI]; if(not IsHere(rec[sC])) then - LogInstance("Key missing "..GetReport(sC)); return nil end - tS[iS].Val = tS[iS].Val..tostring(rec[sC]) -- Concatenate sort value - end -- When no sort columns are provided sort by the keys instead - else tS[iS].Val = key end -- When column list not specified use the key - else tS[iS].Val = rec end -- When the element is not a table use the value - end; tS.Size = iS; tableSort(tS, fS); return tS + tOffs.P = NewPOA(); tOffs.P:Set(); tOffs.P:Raw(sP) + tOffs.O = NewPOA(); tOffs.O:Set(); tOffs.O:Raw(sO) + tOffs.A = NewPOA(); tOffs.A:Set(); tOffs.A:Raw(sA) + end; return tOffs -- On success return the populated POA offset +end + +function Arrange(tSrc, vPrn, ...) + local tC = (istable(vPrn) and vPrn or {vPrn, ...}) + local tS = {Size = 0}; tC.Size = #tC + if(IsEmpty(tSrc)) then return tS end + for key, rec in pairs(tSrc) do -- Scan the entire table + tS.Size = tS.Size + 1 -- Allocate key/record and store + tableInsert(tS, {Key = key, Rec = rec}) -- New table + end -- The table keys are converted to integers + if(istable(tS[1].Rec)) then -- Data is table + if(tC.Size > 0) then -- Sorting column names provided + local fC = GetOpVar("VCOMPARE_SDAT") + tableSort(tS, function(u, v) return fC(u, v, tC) end) + else tableSort(tS, GetOpVar("VCOMPARE_SKEY")) end + else tableSort(tS, GetOpVar("VCOMPARE_SREC")) end; return tS end ------------- VARIABLE INTERFACES -------------- @@ -2282,6 +2349,7 @@ end * If these conditions are not met the function returns missing token * sBas > The string to check whenever it is disabled or missing * fEmp > Defines that the value is to be replaced by something else + * ... > When missing acts like empty check otherwise picks a value ]] function GetEmpty(sBas, fEmp, ...) local sS, fE = tostring(sBas or ""), fEmp -- Default to string @@ -2325,61 +2393,64 @@ function Categorize(oTyp, fCat, ...) local sTyp = tostring(GetOpVar("DEFAULT_TYPE") or "") local tTyp = (tCat and tCat[sTyp] or nil) return sTyp, (tTyp and tTyp.Txt), (tTyp and tTyp.Cmp) - end; ModelToNameRule("CLR"); SetOpVar("DEFAULT_TYPE", tostring(oTyp)) - if(CLIENT) then local tTyp -- Categories for the panel - local sTyp = tostring(GetOpVar("DEFAULT_TYPE") or "") - local fsLog = GetOpVar("FORM_LOGSOURCE") -- The actual format value - local ssLog = "*"..fsLog:format("TYPE","Categorize",tostring(oTyp)) - if(isstring(fCat)) then - tTyp = (tCat[sTyp] or {}); tCat[sTyp] = tTyp; tTyp.Txt = fCat - elseif(istable(fCat)) then local tArg = {...} - local sTr = GetOpVar("OPSYM_REVISION") -- Trigger - local sSe = GetOpVar("OPSYM_DIRECTORY") -- Separator - tTyp = (tCat[sTyp] or {}); tCat[sTyp] = tTyp - tTyp.Txt = [[function(m) - local o = {} - function setBranch(v, p, b, q) - if(v:find(p)) then - local e = v:gsub("%W*"..p.."%W*", "_") - if(b and o.M) then return e end - if(b and not o.M) then o.M = true end - table.insert(o, (q or p)); return e - end; return v - end]] - tTyp.Txt = tTyp.Txt.."\nlocal r = m:gsub(\""..tostring(tArg[1] or "").."\",\"\"):gsub(\"%.mdl$\",\"\");" - for iD = 1, #fCat do - local tV = sSe:Explode(fCat[iD]) - local sR = tostring(tV[2] and ("\""..tostring(tV[2]).."\"") or nil) - if(tV[1]:sub(1,1) == sTr) then tV[1] = tV[1]:sub(2,-1) - tTyp.Txt = tTyp.Txt.."\nr = setBranch(r, \""..tostring(tV[1]).."\", true, "..sR..")" - else - tTyp.Txt = tTyp.Txt.."\nr = setBranch(r, \""..tostring(tV[1]).."\", false, "..sR..")" + else + ModelToNameRule("CLR"); SetOpVar("DEFAULT_TYPE", tostring(oTyp)) + if(CLIENT) then local tTyp -- Categories for the panel + local sTyp = tostring(GetOpVar("DEFAULT_TYPE") or "") + local fsLog = GetOpVar("FORM_LOGSOURCE") -- The actual format value + local ssLog = "*"..fsLog:format("TYPE","Categorize",tostring(oTyp)) + LogInstance("Name "..GetReport(oTyp, sTyp, type(fCat)), ssLog) + if(isstring(fCat)) then + tTyp = (tCat[sTyp] or {}); tCat[sTyp] = tTyp; tTyp.Txt = fCat + elseif(istable(fCat)) then local tArg = {...} + local sTr = GetOpVar("OPSYM_REVISION") -- Trigger + local sSe = GetOpVar("OPSYM_DIRECTORY") -- Separator + tTyp = (tCat[sTyp] or {}); tCat[sTyp] = tTyp + tTyp.Txt = [[function(m) + local o = {} + function setBranch(v, p, b, q) + if(v:find(p)) then + local e = v:gsub("%W*"..p.."%W*", "_") + if(b and o.M) then return e end + if(b and not o.M) then o.M = true end + table.insert(o, (q or p)); return e + end; return v + end]] + tTyp.Txt = tTyp.Txt.."\nlocal r = m:gsub(\""..tostring(tArg[1] or "").."\",\"\"):gsub(\"%.mdl$\",\"\");" + for iD = 1, #fCat do + local tV = sSe:Explode(fCat[iD]) + local sR = tostring(tV[2] and ("\""..tostring(tV[2]).."\"") or nil) + if(tV[1]:sub(1,1) == sTr) then tV[1] = tV[1]:sub(2,-1) + tTyp.Txt = tTyp.Txt.."\nr = setBranch(r, \""..tostring(tV[1]).."\", true, "..sR..")" + else + tTyp.Txt = tTyp.Txt.."\nr = setBranch(r, \""..tostring(tV[1]).."\", false, "..sR..")" + end end - end - tTyp.Txt = tTyp.Txt.."\no.M = nil; return o, r:gsub(\"^_+\", \"\"):gsub(\"_+$\", \"\"):gsub(\"_+\", \"_\") end" - elseif(isnumber(fCat)) then local tArg = {...} - tTyp = (tCat[sTyp] or {}); tCat[sTyp] = tTyp - tTyp.Txt = "function(m)" - tTyp.Txt = tTyp.Txt.."\nlocal n = math.floor(tonumber("..fCat..") or 0)" - tTyp.Txt = tTyp.Txt.."\nlocal m = m:gsub(\""..tostring(tArg[1] or "").."\", \"\")\n" - for i = 2, #tArg do local aP, aN = tArg[i], tArg[i+1] - if(aP and aN) then tTyp.Txt = tTyp.Txt.."\nlocal m = m:gsub(\""..aP.."\", \""..aN.."\")\n" end end - tTyp.Txt = tTyp.Txt..[[local t, x = {n = 0}, m:find("/", 1, true) - while(x and x > 0) do - t.n = t.n + 1; t[t.n] = m:sub(1, x-1) - m = m:sub(x+1, -1); x = m:find("/", 1, true) - end; m = m:gsub("%.mdl$","") - if(n == 0) then return t, m end; local a = math.abs(n) - if(a > t.n) then return t, m end; local s = #t-a - if(n < 0) then for i = 1, a do t[i] = t[i+s] end end - while(s > 0) do table.remove(t); s = s - 1 end - return t, m - end]] - else LogInstance("Skip "..GetReport(fCat), ssLog); return nil end - tTyp.Cmp = CompileString("return ("..tTyp.Txt..")", sTyp) - local bS, vO = pcall(tTyp.Cmp); if(not bS) then - LogInstance("Failed "..GetReport(fCat)..": "..vO, ssLog); return nil end - tTyp.Cmp = vO; return sTyp, tTyp.Txt, tTyp.Cmp + tTyp.Txt = tTyp.Txt.."\no.M = nil; return o, r:gsub(\"^_+\", \"\"):gsub(\"_+$\", \"\"):gsub(\"_+\", \"_\") end" + elseif(isnumber(fCat)) then local tArg = {...} + tTyp = (tCat[sTyp] or {}); tCat[sTyp] = tTyp + tTyp.Txt = "function(m)" + tTyp.Txt = tTyp.Txt.."\nlocal n = math.floor(tonumber("..fCat..") or 0)" + tTyp.Txt = tTyp.Txt.."\nlocal m = m:gsub(\""..tostring(tArg[1] or "").."\", \"\")\n" + for i = 2, #tArg do local aP, aN = tArg[i], tArg[i+1] + if(aP and aN) then tTyp.Txt = tTyp.Txt.."\nlocal m = m:gsub(\""..aP.."\", \""..aN.."\")\n" end end + tTyp.Txt = tTyp.Txt..[[local t, x = {n = 0}, m:find("/", 1, true) + while(x and x > 0) do + t.n = t.n + 1; t[t.n] = m:sub(1, x-1) + m = m:sub(x+1, -1); x = m:find("/", 1, true) + end; m = m:gsub("%.mdl$","") + if(n == 0) then return t, m end; local a = math.abs(n) + if(a > t.n) then return t, m end; local s = #t-a + if(n < 0) then for i = 1, a do t[i] = t[i+s] end end + while(s > 0) do table.remove(t); s = s - 1 end + return t, m + end]] + else LogInstance("Skip "..GetReport(fCat), ssLog); return nil end + tTyp.Cmp = CompileString("return ("..tTyp.Txt..")", sTyp) + local bS, vO = pcall(tTyp.Cmp); if(not bS) then + LogInstance("Failed "..GetReport(fCat)..": "..vO, ssLog); return nil end + tTyp.Cmp = vO; return sTyp, tTyp.Txt, tTyp.Cmp + end end end @@ -2513,7 +2584,7 @@ function GetCacheCurve(pPly) stData.CSize = 0 -- The amount of points for the calculated nodes array stData.SSize = 0 -- The amount of points for the snaps node array stData.SKept = 0 -- The amount of total snap points the snaps node array - end; + end if(not stData.Size ) then stData.Size = 0 end if(not stData.CSize) then stData.CSize = 0 end if(not stData.SSize) then stData.SSize = 0 end @@ -2551,17 +2622,6 @@ end -------------------------- BUILDSQL ------------------------------ -function CacheStmt(sHash,sStmt,...) - if(not IsHere(sHash)) then LogInstance("Missing hash"); return nil end - local sHash, tStore = tostring(sHash), GetOpVar("QUERY_STORE") - if(not IsHere(tStore)) then LogInstance("Missing storage"); return nil end - if(IsHere(sStmt)) then -- If the key is located return the query - tStore[sHash] = tostring(sStmt); LogTable(tStore,"STMT") end - local sBase = tStore[sHash]; if(not IsHere(sBase)) then - LogInstance("Missing statement "..GetReport(sHash, sStmt)); return nil end - return sBase:format(...) -end - function GetBuilderNick(sTable) if(not isstring(sTable)) then LogInstance("Table mismatch "..GetReport(sTable)); return nil end @@ -2581,11 +2641,11 @@ function GetBuilderID(vID) return makTab -- Return the dedicated table builder object end -function CreateTable(sTable,defTab,bDelete,bReload) +function NewTable(sTable,defTab,bDelete,bReload) if(not isstring(sTable)) then LogInstance("Table nick mismatch "..GetReport(sTable)); return false end if(IsBlank(sTable)) then - LogInstance("Table name must not be empty"); return false end + LogInstance("Table nick is mandatory"); return false end if(not istable(defTab)) then LogInstance("Table definition missing for "..GetReport(sTable)); return false end defTab.Nick = sTable:upper(); defTab.Name = GetOpVar("TOOLNAME_PU")..defTab.Nick @@ -2617,10 +2677,34 @@ function CreateTable(sTable,defTab,bDelete,bReload) function self:GetCommand(vK) if(vK) then return tabCmd[vK] end; return tabCmd end - -- Alias for reading the last created SQL statement - function self:Get(vK) + -- Deny the currently built statement + function self:Deny() local qtCmd = self:GetCommand() - local iK = (vK or qtCmd.STMT); return qtCmd[iK] + if(not qtCmd.STMT) then return self end + qtCmd[qtCmd.STMT] = false; return self + end + -- Store built query in command list + function self:Store(vK, sQ) + if(not IsHere(vK)) then return self end + local qtCmd = self:GetCommand() -- Current query + local mQ, tQ = qtCmd.STMT, GetOpVar("QUERY_STORE") + local sQ = (sQ or (mQ and qtCmd[mQ] or nil)) + LogInstance("Entry "..GetReport(vK, sQ), tabDef.Nick) + tQ[vK] = sQ; return self + end + -- Alias for reading the last created SQL statement + function self:Get(vK, ...) + if(vK) then + local tQ = GetOpVar("QUERY_STORE") + local sQ = tQ[vK] -- Store entry + if(not IsHere(sQ)) then return sQ end + if(not sQ) then return sQ end + return sQ:format(...) + else + local qtCmd = self:GetCommand() + local iK = (vK or qtCmd.STMT) + return qtCmd[iK] + end end -- Returns ID of the found column valid > 0 function self:GetColumnID(sN) @@ -2660,13 +2744,31 @@ function CreateTable(sTable,defTab,bDelete,bReload) -- Generates a timer settings table and keeps the defaults function self:TimerSetup(vTim) local qtCmd, qtDef = self:GetCommand(), self:GetDefinition() - local sTm = tostring((vTim and vTim or qtDef.Timer) or "") - local tTm = GetOpVar("OPSYM_REVISION"):Explode(sTm) - tTm[1] = tostring(tTm[1] or "CQT") -- Timer mode - tTm[2] = (tonumber(tTm[2]) or 0) -- Record life - tTm[3] = ((tonumber(tTm[3]) or 0) ~= 0) and true or false -- Kill command - tTm[4] = ((tonumber(tTm[4]) or 0) ~= 0) and true or false -- Collect garbage call - qtCmd.Timer = tTm; return self + local vTm, tTm = (vTim and vTim or qtDef.Timer), qtCmd.Timer + if(not tTm) then qtCmd.Timer = {}; tTm = qtCmd.Timer end + if(isstring(vTm)) then -- String or table passed + local cTm = GetOpVar("OPSYM_REVISION"):Explode(vTm) + tTm[1] = tostring(cTm[1] or "CQT") -- Timer mode + tTm[2] = (tonumber(cTm[2]) or 0) -- Record life + tTm[3] = ((tonumber(cTm[3]) or 0) ~= 0) -- Kill command + tTm[4] = ((tonumber(cTm[4]) or 0) ~= 0) -- Collect garbage call + elseif(istable(vTm)) then -- Transfer table data from definition + tTm[1] = tostring(vTm[1] or vTm["Mo"] or "CQT") -- Timer mode + tTm[2] = (tonumber(vTm[2] or vTm["Li"]) or 0) -- Record life + tTm[3] = ((tonumber(vTm[3] or vTm["Rm"]) or 0) ~= 0) -- Kill command + tTm[4] = ((tonumber(vTm[4] or vTm["Co"]) or 0) ~= 0) -- Collect garbage call + elseif(isfunction(vTm)) then -- Transfer table data from definition + local bS, vO = pcall(vTm); if(not bS) then + LogInstance("Generator "..vO,tabDef.Nick); return self end + return self:TimerSetup(vO) -- Force function return value + elseif(isvector(vTm) or isangle(vTm) or ismatrix(vTm)) then + local cA, cB, cC = vTm:Unpack() + tTm[2] = (cA or 0) -- Record life + tTm[3] = ((cB or 0) ~= 0) -- Kill command + tTm[4] = ((cC or 0) ~= 0) -- Collect garbage call + else -- Transfer table data from definition + tTm[2] = (tonumber(vTm) or 0) -- Record life + end; return self end -- Navigates the reference in the cache function self:GetNavigate(...) @@ -2682,16 +2784,18 @@ function CreateTable(sTable,defTab,bDelete,bReload) end -- Attaches timer to a record related in the table cache function self:TimerAttach(vMsg, ...) - local sDiv = GetOpVar("OPSYM_DIVIDER") local oSpot, kKey, tKey = self:GetNavigate(...) - local sMoDB, iCnt = GetOpVar("MODE_DATABASE"), select("#", ...) if(not (IsHere(oSpot) and IsHere(kKey))) then - LogInstance("Navigation failed",tabDef.Nick); return nil end + LogInstance("Navigation miss "..GetReport(unpack(tKey)),tabDef.Nick) + LogTable(oSpot, "Navigation", tabDef.Nick); return nil + end -- Navigated to the last table node and returned the value key + local sDiv, nNow = GetOpVar("OPSYM_DIVIDER"), Time() + local sMoDB, iCnt = GetOpVar("MODE_DATABASE"), select("#", ...) LogInstance("Called by "..GetReport(vMsg, kKey),tabDef.Nick) + oSpot[kKey].Used = nNow -- Make the first selected deleteable to avoid phantom records if(sMoDB == "SQL") then local qtCmd = self:GetCommand() -- Read the command and current time - local nNow, tTim = Time(), qtCmd.Timer; if(not IsHere(tTim)) then + local tTim = qtCmd.Timer; if(not IsHere(tTim)) then LogInstance("Missing timer settings",tabDef.Nick); return oSpot[kKey] end - oSpot[kKey].Used = nNow -- Make the first selected deleteable to avoid phantom records local smTM, tmLif, tmDie, tmCol = tTim[1], tTim[2], tTim[3], tTim[4]; if(tmLif <= 0) then LogInstance("Timer attachment ignored",tabDef.Nick); return oSpot[kKey] end LogInstance("Stats "..GetReport(iCnt, smTM, tmLif, tmDie, tmCol), tabDef.Nick) @@ -2738,21 +2842,23 @@ function CreateTable(sTable,defTab,bDelete,bReload) end); timerStart(tmID); return oSpot[kKey] else LogInstance("Unsupported mode "..GetReport(smTM),tabDef.Nick); return oSpot[kKey] end elseif(sMoDB == "LUA") then - LogInstance("Memory manager impractical",tabDef.Nick); return oSpot[kKey] + LogInstance("Memory manager skip",tabDef.Nick); return oSpot[kKey] else LogInstance("Unsupported mode "..GetReport(sMoDB),tabDef.Nick); return nil end end -- Restarts timer to a record related in the table cache function self:TimerRestart(vMsg, ...) - local sDiv = GetOpVar("OPSYM_DIVIDER") - local sMoDB = GetOpVar("MODE_DATABASE") local oSpot, kKey, tKey = self:GetNavigate(...) if(not (IsHere(oSpot) and IsHere(kKey))) then - LogInstance("Navigation failed",tabDef.Nick); return nil end + LogInstance("Navigation miss "..GetReport(unpack(tKey)),tabDef.Nick) + LogTable(oSpot, "Navigation", tabDef.Nick); return nil + end -- Navigated to the last table node and returned the value key + local sMoDB = GetOpVar("MODE_DATABASE") + local sDiv, nNow = GetOpVar("OPSYM_DIVIDER"), Time() LogInstance("Called by "..GetReport(vMsg, kKey),tabDef.Nick) + oSpot[kKey].Used = nNow -- Mark the current caching time stamp if(sMoDB == "SQL") then local qtCmd = self:GetCommand() local tTim = qtCmd.Timer; if(not IsHere(tTim)) then LogInstance("Missing timer settings",tabDef.Nick); return oSpot[kKey] end - oSpot[kKey].Used = Time() -- Mark the current caching time stamp local smTM, tmLif = tTim[1], tTim[2]; if(tmLif <= 0) then LogInstance("Timer life ignored",tabDef.Nick); return oSpot[kKey] end if(smTM == "CQT") then smTM = "CQT" -- Cache query timer does nothing @@ -2761,7 +2867,8 @@ function CreateTable(sTable,defTab,bDelete,bReload) LogInstance("Timer missing "..GetReport(tmID),tabDef.Nick); return nil end timerStart(tmID) else LogInstance("Mode mismatch "..GetReport(smTM),tabDef.Nick); return nil end - elseif(sMoDB == "LUA") then oSpot[kKey].Used = Time() + elseif(sMoDB == "LUA") then + LogInstance("Memory manager skip",tabDef.Nick); return oSpot[kKey] else LogInstance("Unsupported mode "..GetReport(sMoDB),tabDef.Nick); return nil end return oSpot[kKey] end @@ -2794,14 +2901,19 @@ function CreateTable(sTable,defTab,bDelete,bReload) end; return bStat -- Successfully validated the builder table end -- Creates table column list as string - function self:GetColumnList(sD) - if(not IsHere(sD)) then return "" end - local qtDef, sRes, iCnt = self:GetDefinition(), "", 1 + function self:GetColumnList(sD, ...) local sD = tostring(sD or "\t"):sub(1,1); if(IsBlank(sD)) then LogInstance("Missing delimiter",tabDef.Nick); return "" end - while(iCnt <= qtDef.Size) do - sRes, iCnt = (sRes..qtDef[iCnt][1]), (iCnt + 1) - if(qtDef[iCnt]) then sRes = sRes..sD end + local nA, tA = select("#", ...), nil + local qtDef, sRes = self:GetDefinition(), "" + if(nA > 0) then tA = {...} else tA, nA = {}, qtDef.Size + for iD = 1, nA do tableInsert(tA, iD) end end + for iD = 1, nA do local iC = tA[iD] + local tC = qtDef[iC]; if(not tC) then + LogInstance("Column missing "..GetReport(iD,iC,nA), tabDef.Nick); return nil end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column name mismatch "..GetReport(iD,iC,nA),tabDef.Nick); return nil end + local sCon = ((iD ~= nA) and sD or ""); sRes = (sRes..sC..sCon) end; return sRes end -- Internal type matching @@ -2811,13 +2923,13 @@ function CreateTable(sTable,defTab,bDelete,bReload) LogInstance("Column ID mismatch "..GetReport(ivID),tabDef.Nick); return nil end local defCol = qtDef[nvID]; if(not IsHere(defCol)) then LogInstance("Invalid column "..GetReport(nvID),tabDef.Nick); return nil end - local sMoDB, snOut = GetOpVar("MODE_DATABASE") - local tyCol, opCol = tostring(defCol[2]), defCol[3] + local tyCol, opCol, snOut = tostring(defCol[2]), defCol[3] + local sMoDB = GetOpVar("MODE_DATABASE"); if(sMoDB ~= "SQL" and sMoDB ~= "LUA") then + LogInstance("Unsupported mode "..GetReport(sMoDB,ivID,tyCol,opCol),tabDef.Nick); return nil end if(tyCol == "TEXT") then snOut = tostring(snValue or "") if(not bNoNull and IsBlank(snOut)) then if (sMoDB == "SQL") then snOut = sNull - elseif(sMoDB == "LUA") then snOut = sNull - else LogInstance("Unsupported mode "..GetReport(sMoDB,ivID,tyCol),tabDef.Nick); return nil end + elseif(sMoDB == "LUA") then snOut = sNull end end if (opCol == "LOW") then snOut = snOut:lower() elseif(opCol == "CAP") then snOut = snOut:upper() end @@ -2828,163 +2940,235 @@ function CreateTable(sTable,defTab,bDelete,bReload) sqChar = tostring(sQuote or ""):sub(1,1) else if (sMoDB == "SQL") then sqChar = "'" - elseif(sMoDB == "LUA") then sqChar = "\"" - else LogInstance("Unsupported mode "..GetReport(sMoDB,ivID,tyCol),tabDef.Nick); return nil end + elseif(sMoDB == "LUA") then sqChar = "\"" end end; snOut = sqChar..snOut..sqChar end elseif(tyCol == "REAL" or tyCol == "INTEGER") then - snOut = tonumber(snValue) - if(IsHere(snOut)) then - if(tyCol == "INTEGER") then - if (opCol == "FLR") then snOut = mathFloor(snOut) - elseif(opCol == "CEL") then snOut = mathCeil (snOut) end - end - else LogInstance("Failed converting number"..GetReport(snValue, nvID),tabDef.Nick); return nil end + snOut = tonumber(snValue); if(not IsHere(snOut)) then + LogInstance("Failed converting number"..GetReport(snValue, nvID),tabDef.Nick); return nil end + if(tyCol == "INTEGER") then + if (opCol == "FLR") then snOut = mathFloor(snOut) + elseif(opCol == "CEL") then snOut = mathCeil (snOut) end + end else LogInstance("Invalid column type "..GetReport(tyCol),tabDef.Nick); return nil end; return snOut end - -- Build drop statement + function self:GetConcat(tLine, sDelim, fFoo, ...) + local qtDef, sLine = self:GetDefinition(), ""; if(not istable(tLine)) then + LogInstance("Source not table "..GetReport(tLine, sDelim), tabDef.Nick); return nil end + local sDelim, nA, tA = tostring(sDelim or "\t"):sub(1,1), select("#", ...), nil + if(nA > 0) then tA = {...} else tA, nA = {}, qtDef.Size + for iD = 1, nA do tableInsert(tA, iD) end end + for iD = 1, nA do local iC = tA[iD] + local tC = qtDef[iC]; if(not tC) then + LogInstance("Column missing "..GetReport(iD,iC,nA), tabDef.Nick); return nil end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column name mismatch "..GetReport(iD,iC,nA),tabDef.Nick); return nil end + local vC, sD = tLine[sC], (iD == 1 and "" or sDelim) -- Extract the value + if(fFoo) then -- Call the conversion handler function when provided + local bS, sR = pcall(fFoo, iC, sC, vC, iD, nA); if(not bS) then + LogInstance("Value convert error "..GetReport(iD,iC,vC,nA)..": "..sR,tabDef.Nick); return nil end + vC = sR -- The value is converted and updated successfully + end; sLine = sLine..sD..tostring(vC or "") + end; return sLine + end + -- Build SQL drop statement function self:Drop() local qtDef = self:GetDefinition() - local qtCmd = self:GetCommand(); qtCmd.STMT = "Drop" + local qtCmd = self:GetCommand(); qtCmd.STMT = "DROP" local qsKey = GetOpVar("FORM_KEYSTMT"):format(qtCmd.STMT, "") - local sStmt = CacheStmt(qsKey, nil, qtDef.Name) - if(not sStmt) then sStmt = CacheStmt(qsKey, "DROP TABLE %s;", qtDef.Name) end - qtCmd[qtCmd.STMT] = sStmt; return self + local sStmt = self:Get(qsKey, qtDef.Name) + if(not IsHere(sStmt)) then + sStmt = qtCmd.STMT.." TABLE %s;" + sStmt = self:Store(qsKey, sStmt):Get(qsKey, qtDef.Name) + end; qtCmd[qtCmd.STMT] = sStmt; return self end - -- Build delete statement + -- Build SQL delete statement function self:Delete() local qtDef = self:GetDefinition() - local qtCmd = self:GetCommand(); qtCmd.STMT = "Delete" + local qtCmd = self:GetCommand(); qtCmd.STMT = "DELETE" local qsKey = GetOpVar("FORM_KEYSTMT"):format(qtCmd.STMT, "") - local sStmt = CacheStmt(qsKey, nil, qtDef.Name) - if(not sStmt) then sStmt = CacheStmt(qsKey, "DELETE FROM %s;", qtDef.Name) end - qtCmd[qtCmd.STMT] = sStmt; return self + local sStmt = self:Get(qsKey, qtDef.Name) + if(not sStmt) then + sStmt = qtCmd.STMT.." FROM %s;" + sStmt = self:Store(qsKey, sStmt):Get(qsKey, qtDef.Name) + end; qtCmd[qtCmd.STMT] = sStmt; return self end -- https://wiki.garrysmod.com/page/sql/Begin + -- Build SQL begin statement function self:Begin() - local qtCmd = self:GetCommand() - qtCmd.Begin = "BEGIN;"; return self + local qtCmd = self:GetCommand(); qtCmd.STMT = "BEGIN" + local qsKey = GetOpVar("FORM_KEYSTMT"):format(qtCmd.STMT, "") + local sStmt = self:Get(qsKey) + if(not sStmt) then + sStmt = qtCmd.STMT..";" + sStmt = self:Store(qsKey, sStmt):Get(qsKey) + end; qtCmd[qtCmd.STMT] = sStmt; return self end -- https://wiki.garrysmod.com/page/sql/Commit + -- Build SQL commit statement function self:Commit() - local qtCmd = self:GetCommand() - qtCmd.Commit = "COMMIT;"; return self + local qtCmd = self:GetCommand(); qtCmd.STMT = "COMMIT" + local qsKey = GetOpVar("FORM_KEYSTMT"):format(qtCmd.STMT, "") + local sStmt = self:Get(qsKey) + if(not sStmt) then + sStmt = qtCmd.STMT..";" + sStmt = self:Store(qsKey, sStmt):Get(qsKey) + end; qtCmd[qtCmd.STMT] = sStmt; return self end -- Build create/drop/delete statement table of statements + -- Build SQL create table statement function self:Create() local qtDef = self:GetDefinition() - local qtCmd, iInd = self:GetCommand(), 1; qtCmd.STMT = "Create" - qtCmd.Create = "CREATE TABLE "..qtDef.Name.." ( " - while(qtDef[iInd]) do local v = qtDef[iInd] - if(not v[1]) then LogInstance("Missing col name "..GetReport(iInd),tabDef.Nick); return nil end - if(not v[2]) then LogInstance("Missing col type "..GetReport(iInd),tabDef.Nick); return nil end - qtCmd.Create = qtCmd.Create..(v[1]):upper().." "..(v[2]):upper() - iInd = (iInd + 1); if(qtDef[iInd]) then qtCmd.Create = qtCmd.Create ..", " end - end - qtCmd.Create = qtCmd.Create.." );"; return self + local qtCmd = self:GetCommand(); qtCmd.STMT = "CREATE" + local sStmt = qtCmd.STMT.." TABLE IF NOT EXISTS "..qtDef.Name.." ( " + for iCnt = 1, qtDef.Size do + local tC = qtDef[iCnt]; if(not tC) then + LogInstance("Column missing "..GetReport(iCnt,qtDef.Size), tabDef.Nick); return self:Deny() end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column name mismatch "..GetReport(iCnt,qtDef.Size),tabDef.Nick); return self:Deny() end + local sT = tostring(tC[2] or ""); if(IsBlank(sT)) then + LogInstance("Column type mismatch "..GetReport(iCnt,qtDef.Size),tabDef.Nick); return self:Deny() end + sStmt = sStmt..sC.." "..sT..(iCnt ~= qtDef.Size and ", " or " );") + end; qtCmd[qtCmd.STMT] = sStmt; return self end - -- Build SQL table indexes - function self:Index(...) local tIndex = {...} - local qtCmd, qtDef = self:GetCommand(), self:GetDefinition() - if(not (istable(tIndex) and tIndex[1])) then - tIndex = qtDef.Index end -- Empty stack use table definition - if(istable(qtCmd.Index)) then tableEmpty(qtCmd.Index) - else qtCmd.Index = {} end; local iCnt, iInd = 1, 1 - while(tIndex[iInd]) do -- Build index query and reload index commands - local vI = tIndex[iInd]; if(not istable(vI)) then - LogInstance("Value not table "..GetReport(iInd, vI),tabDef.Nick); return nil end - local cU, cC = "", ""; qtCmd.Index[iInd], iCnt = "CREATE INDEX IND_"..qtDef.Name, 1 - while(vI[iCnt]) do local vF = tonumber(vI[iCnt]); if(not vF) then - LogInstance("Value NaN "..GetReport(vI[iCnt], iInd, iCnt),tabDef.Nick); return nil end - if(not qtDef[vF]) then - LogInstance("Column missing "..GetReport(vF, tabDef.Size),tabDef.Nick); return nil end - cU, cC = (cU.."_" ..(qtDef[vF][1]):upper()), (cC..(qtDef[vF][1]):upper()); vI[iCnt] = vF - iCnt = iCnt + 1; if(vI[iCnt]) then cC = cC ..", " end - end - qtCmd.Index[iInd] = qtCmd.Index[iInd]..cU.." ON "..qtDef.Name.." ( "..cC.." );" - iInd = iInd + 1 - end; return self + -- Build SQL table indexes statement + function self:Index(...) + local nA, tA = select("#", ...) + local qtDef = self:GetDefinition() + if(nA > 0) then tA = {...} else + tA = qtDef.Index; nA = #tA + LogInstance("Definition source", tabDef.Nick) + end + local qtCmd = self:GetCommand(); qtCmd.STMT = "INDEX" + local tStmt = qtCmd[qtCmd.STMT] + if(not tStmt) then tStmt = {}; qtCmd[qtCmd.STMT] = tStmt end + local sDiv = GetOpVar("OPSYM_DIVIDER"); tableEmpty(tStmt); tStmt.Size = nA + for iCnt = 1, nA do local vA = tA[iCnt] + if(isnumber(vA)) then vA = {vA} end; if(not istable(vA)) then + LogInstance("Argument not table "..GetReport(nA,iCnt,vA),tabDef.Nick); return self:Deny() end + local sV, nV, bNe = "", #vA, (vA.Ne or not IsHere(vA.Ne)) + tStmt[iCnt] = "CREATE "..(vA.Un and "UNIQUE " or "")..qtCmd.STMT..(bNe and " IF NOT EXISTS " or " ") + .."IND_"..qtDef.Name..sDiv..tableConcat(vA,sDiv).." ON "..qtDef.Name.." ( " + for iInd = 1, nV do + local iV = mathFloor(tonumber(vA[iInd]) or 0); if(iV == 0) then + LogInstance("Index mismatch "..GetReport(nA,iCnt,iInd),tabDef.Nick); return self:Deny() end + local tC = qtDef[iV]; if(not tC) then + LogInstance("Column missing "..GetReport(nA,iCnt,iInd,iV), tabDef.Nick); return self:Deny() end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column mismatch "..GetReport(nA,iCnt,iInd,iV),tabDef.Nick); return self:Deny() end + sV = sV..sC..(iInd ~= nV and ", " or " );") + end; tStmt[iCnt] = tStmt[iCnt]..sV + end return self end - -- Build SQL select statement + -- Builds an SQL select statement function self:Select(...) local qtCmd = self:GetCommand() - local qtDef = self:GetDefinition(); qtCmd.STMT = "Select" - local sStmt, iCnt, tCols = "SELECT ", 1, {...} - if(tCols[1]) then - while(tCols[iCnt]) do - local v = tonumber(tCols[iCnt]); if(not IsHere(v)) then - LogInstance("Index type mismatch "..GetReport(tCols[iCnt]),tabDef.Nick); return nil end - if(not qtDef[v]) then - LogInstance("Missing column "..GetReport(v),tabDef.Nick); return nil end - if(qtDef[v][1]) then sStmt = sStmt..qtDef[v][1] - else LogInstance("Missing column name "..GetReport(v),tabDef.Nick); return nil end - iCnt = (iCnt + 1); if(tCols[iCnt]) then sStmt = sStmt ..", " end + local qtDef = self:GetDefinition(); qtCmd.STMT = "SELECT" + local sStmt, nA = qtCmd.STMT.." ", select("#", ...) + if(nA > 0) then local tA = {...} + for iCnt = 1, nA do + local vA = mathFloor(tonumber(tA[iCnt]) or 0); if(vA == 0) then + LogInstance("Index mismatch "..GetReport(nA,iCnt),tabDef.Nick); return self:Deny() end + local tC = qtDef[vA]; if(not tC) then + LogInstance("Column missing "..GetReport(nA,iCnt,vA), tabDef.Nick); return self:Deny() end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column mismatch "..GetReport(nA,iCnt,vA),tabDef.Nick); return self:Deny() end + sStmt = sStmt..sC..(iCnt ~= nA and ", " or "") end else sStmt = sStmt.."*" end - qtCmd.Select = sStmt .." FROM "..qtDef.Name..";"; return self + qtCmd[qtCmd.STMT] = sStmt .." FROM "..qtDef.Name..";"; return self end - -- Add where clause to the select statement - function self:Where(...) local tWhere = {...} - if(not tWhere[1]) then return self end - local iCnt, qtDef, qtCmd = 1, self:GetDefinition(), self:GetCommand() - local sStmt = qtCmd.Select:Trim("%s"):Trim(";") - while(tWhere[iCnt]) do local k = tonumber(tWhere[iCnt][1]) - local v, t = tWhere[iCnt][2], qtDef[k][2]; if(not (k and v and t) ) then - LogInstance("Where clause inconsistent "..GetReport(k, v, t), tabDef.Nick); return nil end - if(not IsHere(v)) then - LogInstance("Data matching failed "..GetReport(iCnt, v),tabDef.Nick); return nil end - if(iCnt == 1) then sStmt = sStmt.." WHERE "..qtDef[k][1].." = "..tostring(v) - else sStmt = sStmt.." AND " ..qtDef[k][1].." = "..tostring(v) end - iCnt = iCnt + 1 - end; qtCmd.Select = sStmt..";"; return self + -- Add where clause to the current statement + function self:Where(...) + local nA = select("#", ...); if(nA == 0) then + LogInstance("Arguments missing", tabDef.Nick); return self end + local qtCmd = self:GetCommand(); if(not qtCmd.STMT) then + LogInstance("Current missing "..GetReport(nA,...), tabDef.Nick); return self end + local sStmt = qtCmd[qtCmd.STMT]; if(not IsHere(sStmt)) then + LogInstance("Statement missing "..GetReport(nA,qtCmd.STMT), tabDef.Nick); return self end + if(not sStmt and isbool(sStmt)) then + LogInstance("Statement deny "..GetReport(nA,qtCmd.STMT), tabDef.Nick); return self:Deny() end + if(not isstring(sStmt)) then + LogInstance("Previous mismatch "..GetReport(nA,qtCmd.STMT,sStmt),tabDef.Nick); return self:Deny() end + local tA, qtDef = {...}, self:GetDefinition(); sStmt = sStmt:Trim("%s"):Trim(";") + for iCnt = 1, nA do + local vA, sW = tA[iCnt], ((iCnt == 1) and " WHERE " or " AND "); if(not istable(vA)) then + LogInstance("Argument not table "..GetReport(nA,iCnt), tabDef.Nick); return self:Deny() end + local wC, wV = vA[1], vA[2]; if(not (wC and wV)) then + LogInstance("Parameters missing "..GetReport(nA,iCnt,wC,wV), tabDef.Nick); return self:Deny() end + local tC = qtDef[wC]; if(not tC) then + LogInstance("Column missing "..GetReport(nA,iCnt,wC,wV), tabDef.Nick); return self:Deny() end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column mismatch "..GetReport(nA,iCnt,wC,wV),tabDef.Nick); return self:Deny() end + sStmt = sStmt..sW..sC.." = "..tostring(wV) + end; qtCmd[qtCmd.STMT] = sStmt..";"; return self end - -- Add order by clause to the select statement - function self:Order(...) local tOrder = {...} - if(not tOrder[1]) then return self end - local qtCmd, qtDef = self:GetCommand(), self:GetDefinition() - local sDir, sStmt, iCnt = "", " ORDER BY ", 1 - qtCmd.Select = qtCmd.Select:Trim("%s"):Trim(";") - while(tOrder[iCnt]) do local v = tOrder[iCnt] - if(v ~= 0) then if(v > 0) then sDir = " ASC" - else sDir, tOrder[iCnt] = " DESC", -v; v = -v end - else LogInstance("Mismatch column ID "..GetReport(iCnt),tabDef.Nick); return nil end - sStmt, iCnt = (sStmt..qtDef[v][1]..sDir), (iCnt + 1) - if(tOrder[iCnt]) then sStmt = sStmt..", " end - end; qtCmd.Select = qtCmd.Select..sStmt..";" return self + -- Add order by clause to the current statement + function self:Order(...) + local nA = select("#", ...); if(nA == 0) then + LogInstance("Arguments missing", tabDef.Nick); return self end + local qtCmd = self:GetCommand(); if(not qtCmd.STMT) then + LogInstance("Current missing "..GetReport(nA,...), tabDef.Nick); return self end + local sStmt = qtCmd[qtCmd.STMT]; if(not IsHere(sStmt)) then + LogInstance("Statement missing "..GetReport(nA,qtCmd.STMT), tabDef.Nick); return self end + if(not sStmt and isbool(sStmt)) then + LogInstance("Statement deny "..GetReport(nA,qtCmd.STMT), tabDef.Nick); return self:Deny() end + if(not isstring(sStmt)) then + LogInstance("Previous mismatch "..GetReport(nA,qtCmd.STMT,sStmt),tabDef.Nick); return self:Deny() end + local qtDef, tA = self:GetDefinition(), {...}; sStmt = sStmt:Trim("%s"):Trim(";").." ORDER BY " + for iCnt = 1, nA do + local vA = mathFloor(tonumber(tA[iCnt]) or 0); if(vA == 0) then + LogInstance("Column undefined "..GetReport(nA,iCnt,vA),tabDef.Nick); return self:Deny() end + local sDir = ((vA > 0) and " ASC" or " DESC"); vA = mathAbs(vA) + local tC = qtDef[vA]; if(not tC) then + LogInstance("Column missing "..GetReport(nA,iCnt,vA), tabDef.Nick); return self:Deny() end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column mismatch "..GetReport(nA,iCnt,vA),tabDef.Nick); return self:Deny() end + sStmt = sStmt..sC..sDir..(iCnt ~= nA and ", " or ";") + end; qtCmd[qtCmd.STMT] = sStmt; return self end -- Build SQL insert statement function self:Insert(...) - local qtCmd, iCnt, qIns = self:GetCommand(), 1, "" - local tInsert, qtDef = {...}, self:GetDefinition(); qtCmd.STMT = "Insert" - local sStmt = "INSERT INTO "..qtDef.Name.." ( " - if(not tInsert[1]) then - for iCnt = 1, qtDef.Size do qIns = qIns..qtDef[iCnt][1] - if(iCnt < qtDef.Size) then qIns = qIns..", " else qIns = qIns.." ) " end end - else - while(tInsert[iCnt]) do local vInd = tInsert[iCnt] - local iIns = tonumber(vInd); if(not IsHere(iIns)) then - LogInstance("Column ID NaN "..GetReport(vInd), tabDef.Nick); return nil end - local cIns = qtDef[iIns]; if(not IsHere(cIns)) then - LogInstance("Column ID mismatch "..GetReport(iIns), tabDef.Nick); return nil end - iCnt, qIns = (iCnt + 1), qIns..cIns[1] - if(tInsert[iCnt]) then qIns = qIns..", " else qIns = qIns.." ) " end + local qtCmd, nA = self:GetCommand(), select("#", ...) + local qtDef = self:GetDefinition(); qtCmd.STMT = "INSERT" + local sStmt = qtCmd.STMT.." INTO "..qtDef.Name.." ( " + if(nA > 0) then local tA = {...} + for iCnt = 1, nA do -- Assume the user wants to build custom insert + local vA = mathFloor(tonumber(tA[iCnt]) or 0); if(vA == 0) then + LogInstance("Column undefined "..GetReport(nA,iCnt,vA),tabDef.Nick); return self:Deny() end + local tC = qtDef[vA]; if(not tC) then + LogInstance("Column missing "..GetReport(nA,iCnt,vA), tabDef.Nick); return self:Deny() end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column mismatch "..GetReport(nA,iCnt,vA),tabDef.Nick); return self:Deny() end + sStmt = sStmt..sC..(iCnt ~= nA and ", " or " )") + end + else nA = qtDef.Size -- When called with no arguments is the same as picking all columns + for iCnt = 1, nA do + local tC = qtDef[iCnt]; if(not tC) then + LogInstance("Column missing "..GetReport(nA,iCnt), tabDef.Nick); return self:Deny() end + local sC = tostring(tC[1] or ""); if(IsBlank(sC)) then + LogInstance("Column mismatch "..GetReport(nA,iCnt),tabDef.Nick); return self:Deny() end + sStmt = sStmt..sC..(iCnt ~= nA and ", " or " )") end - end; qtCmd.Insert = sStmt..qIns; return self + end; qtCmd[qtCmd.STMT] = sStmt; return self end - -- Build SQL values statement + -- Add values clause to the current statement function self:Values(...) - local qtDef, tValues = self:GetDefinition(), {...} - local qtCmd, iCnt, qVal = self:GetCommand(), 1, "" - local sStmt = qtCmd.Insert.." VALUES ( " - while(tValues[iCnt]) do - iCnt, qVal = (iCnt + 1), qVal..tostring(tValues[iCnt]) - if(tValues[iCnt]) then qVal = qVal..", " else qVal = qVal.." )" end - end; qtCmd.Insert = sStmt..qVal..";"; return self + local qtCmd, qtDef = self:GetCommand(), self:GetDefinition() + local tA, nA, sStmt = {...}, select("#", ...), qtCmd[qtCmd.STMT] + if(not sStmt and isbool(sStmt)) then + LogInstance("Statement deny "..GetReport(nA,qtCmd.STMT), tabDef.Nick); return self:Deny() end + if(not isstring(sStmt)) then + LogInstance("Previous mismatch "..GetReport(nA,qtCmd.STMT,sStmt),tabDef.Nick); return self:Deny() end + sStmt = sStmt:Trim("%s"):Trim(";").." VALUES ( " + for iCnt = 1, nA do sStmt = sStmt..tostring(tA[iCnt])..(iCnt ~= nA and ", " or " );") end + qtCmd[qtCmd.STMT] = sStmt; return self end -- Uses the given array to create a record in the table function self:Record(arLine) - local qtDef, sMoDB, sFunc = self:GetDefinition(), GetOpVar("MODE_DATABASE"), "Record" + local qtDef = self:GetDefinition() + local sMoDB, sFunc = GetOpVar("MODE_DATABASE"), debugGetinfo(1).name if(not arLine) then LogInstance("Missing data table",tabDef.Nick); return false end if(not arLine[1]) then LogInstance("Missing PK",tabDef.Nick) for key, val in pairs(arLine) do @@ -2994,25 +3178,23 @@ function CreateTable(sTable,defTab,bDelete,bReload) local fsLog = GetOpVar("FORM_LOGSOURCE") -- The actual format value local ssLog = "*"..fsLog:format(qtDef.Nick,sFunc,"%s") -- Call the trigger when provided - if(istable(qtDef.Trigs)) then local bS, sR = pcall(qtDef.Trigs[sFunc], arLine, ssLog:format("Trigs")) + if(istable(qtDef.Trigs)) then + local bS, sR = pcall(qtDef.Trigs[sFunc], arLine, ssLog:format("Trigs")) if(not bS) then LogInstance("Trigger manager "..sR,tabDef.Nick); return false end if(not sR) then LogInstance("Trigger routine fail",tabDef.Nick); return false end end -- Populate the data after the trigger does its thing if(sMoDB == "SQL") then local qsKey = GetOpVar("FORM_KEYSTMT") for iD = 1, qtDef.Size do arLine[iD] = self:Match(arLine[iD],iD,true) end - local Q = CacheStmt(qsKey:format(sFunc, qtDef.Nick), nil, unpack(arLine)) - if(not Q) then local sStmt = self:Insert():Values(unpack(qtDef.Query[sFunc])):Get() - if(not IsHere(sStmt)) then LogInstance("Build statement failed",tabDef.Nick); return nil end - Q = CacheStmt(qsKey:format(sFunc, qtDef.Nick), sStmt, unpack(arLine)) - end -- The query is built based on table definition - if(not IsHere(Q)) then - LogInstance("Internal cache error",tabDef.Nick); return false end + local qIndx = qsKey:format(sFunc, qtDef.Nick) + local Q = self:Get(qIndx, unpack(arLine)); if(not IsHere(Q)) then + Q = self:Insert():Values(unpack(qtDef.Query[sFunc])):Store(qIndx):Get(qIndx, unpack(arLine)) end + if(not Q) then LogInstance("Build statement failed "..GetReport(qIndx,arLine[1]),tabDef.Nick); return false end local qRez = sqlQuery(Q); if(not qRez and isbool(qRez)) then LogInstance("Execution error "..GetReport(sqlLastError(), Q),tabDef.Nick); return false end return true -- The dynamic statement insertion was successful elseif(sMoDB == "LUA") then local snPK = self:Match(arLine[1],1) if(not IsHere(snPK)) then -- If primary key becomes a number - LogInstance("Primary key mismatch "..GetReport(arLine[1], qtDef[1][1], snPK), tabDef.Nick); return nil end + LogInstance("Primary key mismatch "..GetReport(arLine[1], qtDef[1][1], snPK), tabDef.Nick); return false end local tCache = libCache[qtDef.Name]; if(not IsHere(tCache)) then LogInstance("Cache missing",tabDef.Nick); return false end if(not istable(qtDef.Cache)) then @@ -3024,28 +3206,28 @@ function CreateTable(sTable,defTab,bDelete,bReload) return true -- The dynamic cache population was successful end -- When database mode is SQL create a table in sqlite - if(sMoDB == "SQL") then local makTab - makTab = self:Create(); if(not IsHere(makTab)) then + if(sMoDB == "SQL") then local vO + vO = self:Create():Get(); if(not IsHere(vO)) then LogInstance("Build create failed"); return self:Remove(false) end - makTab = self:Index(); if(not IsHere(makTab)) then + vO = self:Index():Get(); if(not IsHere(vO)) then LogInstance("Build index failed"); return self:Remove(false) end - makTab = self:Drop(); if(not IsHere(makTab)) then + vO = self:Drop():Get(); if(not IsHere(vO)) then LogInstance("Build drop failed"); return self:Remove(false) end - makTab = self:Delete(); if(not IsHere(makTab)) then + vO = self:Delete():Get(); if(not IsHere(vO)) then LogInstance("Build delete failed"); return self:Remove(false) end - makTab = self:Begin(); if(not IsHere(makTab)) then + vO = self:Begin():Get(); if(not IsHere(vO)) then LogInstance("Build begin failed"); return self:Remove(false) end - makTab = self:Commit(); if(not IsHere(makTab)) then + vO = self:Commit():Get(); if(not IsHere(vO)) then LogInstance("Build commit failed"); return self:Remove(false) end - makTab = self:TimerSetup(); if(not IsHere(makTab)) then + vO = self:TimerSetup(); if(not IsHere(vO)) then LogInstance("Build timer failed"); return self:Remove(false) end local tQ = self:GetCommand(); if(not IsHere(tQ)) then - LogInstance("Build statement failed"); return self:Remove(false) end + LogInstance("Build command failed"); return self:Remove(false) end -- When enabled forces a table drop if(bReload) then - if(sqlTableExists(defTab.Name)) then local qRez = sqlQuery(tQ.Drop) - if(not qRez and isbool(qRez)) then -- Remove table when SQL error is present - LogInstance("Table drop fail "..GetReport(sqlLastError(), tQ.Drop), tabDef.Nick) + if(sqlTableExists(defTab.Name)) then -- Remove table when SQL error is present + local qRez = sqlQuery(tQ.DROP); if(not qRez and isbool(qRez)) then + LogInstance("Table drop fail "..GetReport(sqlLastError(), tQ.DROP), tabDef.Nick) return self:Remove(false) -- Remove table when SQL error is present else LogInstance("Table drop success",tabDef.Nick) end else LogInstance("Table drop skipped",tabDef.Nick) end @@ -3053,29 +3235,29 @@ function CreateTable(sTable,defTab,bDelete,bReload) -- Create the table using the given name and properties if(sqlTableExists(defTab.Name)) then LogInstance("Table create skipped",tabDef.Nick) - else local qRez = sqlQuery(tQ.Create) - if(not qRez and isbool(qRez)) then -- Remove table when SQL error is present - LogInstance("Table create fail "..GetReport(sqlLastError(), tQ.Create), tabDef.Nick) + else -- Remove table when SQL error is present + local qRez = sqlQuery(tQ.CREATE); if(not qRez and isbool(qRez)) then + LogInstance("Table create fail "..GetReport(sqlLastError(), tQ.CREATE), tabDef.Nick) return self:Remove(false) -- Remove table when SQL error is present end -- Check when SQL query has passed and the table is not yet created if(sqlTableExists(defTab.Name)) then - for k, v in pairs(tQ.Index) do local qRez = sqlQuery(v) - if(not qRez and isbool(qRez)) then -- Check when the index query has passed - LogInstance("Table create index fail "..GetReport(k, sqlLastError(), v), tabDef.Nick) + for iQ = 1, tQ.INDEX.Size do local qInx = tQ.INDEX[iQ] + local qRez = sqlQuery(qInx); if(not qRez and isbool(qRez)) then + LogInstance("Table create index fail "..GetReport(sqlLastError(), iQ, qInx), tabDef.Nick) return self:Remove(false) -- Clear table when index is not created - end - LogInstance("Table create index: "..v,tabDef.Nick) + end -- Check when the index query has passed + LogInstance("Table create index: "..qInx,tabDef.Nick) end else - LogInstance("Table create check fail "..GetReport(sqlLastError(), tQ.Create), tabDef.Nick) + LogInstance("Table create check fail "..GetReport(sqlLastError(), tQ.CREATE), tabDef.Nick) return self:Remove(false) -- Clear table when it is not created by the first pass end end -- When the table is present delete all records if(bDelete) then - if(sqlTableExists(defTab.Name)) then local qRez = sqlQuery(tQ.Delete) + if(sqlTableExists(defTab.Name)) then local qRez = sqlQuery(tQ.DELETE) if(not qRez and isbool(qRez)) then -- Remove table when SQL error is present - LogInstance("Table delete fail "..GetReport(sqlLastError(), tQ.Delete), tabDef.Nick) + LogInstance("Table delete fail "..GetReport(sqlLastError(), tQ.DELETE), tabDef.Nick) return self:Remove(false) -- Remove table when SQL error is present else LogInstance("Table delete success",tabDef.Nick) end else LogInstance("Table delete skipped",tabDef.Nick) end @@ -3121,8 +3303,8 @@ function CacheQueryPiece(sModel) LogInstance("Missing table definition"); return nil end local tCache = libCache[defTab.Name]; if(not IsHere(tCache)) then LogInstance("Cache missing for "..GetReport(defTab.Name)); return nil end - local sModel, qsKey = makTab:Match(sModel,1,false,"",true,true), GetOpVar("FORM_KEYSTMT") - local stData, sFunc = tCache[sModel], "CacheQueryPiece" + local sModel = makTab:Match(sModel,1,false,"",true,true) + local stData, sFunc = tCache[sModel], debugGetinfo(1).name if(IsHere(stData) and IsHere(stData.Size)) then if(stData.Size <= 0) then stData = nil else stData = makTab:TimerRestart(sFunc, defTab.Name, sModel) end @@ -3130,33 +3312,32 @@ function CacheQueryPiece(sModel) else local sMoDB = GetOpVar("MODE_DATABASE") if(sMoDB == "SQL") then + local qsKey = GetOpVar("FORM_KEYSTMT") local qModel = makTab:Match(sModel,1,true) LogInstance("Save >> "..GetReport(sModel)) tCache[sModel] = {}; stData = tCache[sModel]; stData.Size = 0 - local Q = CacheStmt(qsKey:format(sFunc, ""), nil, qModel) - if(not Q) then - local sStmt = makTab:Select():Where({1,"%s"}):Order(4):Get() - if(not IsHere(sStmt)) then - LogInstance("Build statement failed"); return nil end - Q = CacheStmt(qsKey:format(sFunc, ""), sStmt, qModel) - end + local qIndx = qsKey:format(sFunc, "") + local Q = makTab:Get(qIndx, qModel); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc] + Q = makTab:Select():Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, qModel) end + if(not Q) then LogInstance("Build statement failed "..GetReport(qIndx, qModel)); return nil end local qData = sqlQuery(Q); if(not qData and isbool(qData)) then LogInstance("SQL exec error "..GetReport(sqlLastError(), Q)); return nil end if(not IsHere(qData) or IsEmpty(qData)) then LogInstance("No data found "..GetReport(Q)); return nil end - local iCnt = 1; stData.Slot, stData.Size = sModel, 0 - stData.Type = qData[iCnt][makTab:GetColumnName(2)] - stData.Name = qData[iCnt][makTab:GetColumnName(3)] - stData.Unit = qData[iCnt][makTab:GetColumnName(8)] - while(qData[iCnt]) do local qRec = qData[iCnt] - if(not IsHere(RegisterPOA(stData,iCnt, - qRec[makTab:GetColumnName(5)], - qRec[makTab:GetColumnName(6)], - qRec[makTab:GetColumnName(7)]))) then + stData.Slot, stData.Size = sModel, #qData + stData.Type = qData[1][makTab:GetColumnName(2)] + stData.Name = qData[1][makTab:GetColumnName(3)] + stData.Unit = qData[1][makTab:GetColumnName(8)] + local coID, coP = makTab:GetColumnName(4), makTab:GetColumnName(5) + local coO , coA = makTab:GetColumnName(6), makTab:GetColumnName(7) + for iCnt = 1, stData.Size do + local qRec = qData[iCnt]; if(iCnt ~= tonumber(qRec[coID])) then + LogInstance("Sequential mismatch "..GetReport(iCnt,sModel)); return nil end + if(not IsHere(RegisterPOA(stData,iCnt, qRec[coP], qRec[coO], qRec[coA]))) then LogInstance("Cannot process offset "..GetReport(iCnt, sModel)); return nil - end; stData.Size, iCnt = iCnt, (iCnt + 1) + end end; stData = makTab:TimerAttach(sFunc, defTab.Name, sModel); return stData - elseif(sMoDB == "LUA") then LogInstance("Record missing"); return nil + elseif(sMoDB == "LUA") then LogInstance("Record missing: "..sModel); return nil else LogInstance("Unsupported mode "..GetReport(sMoDB,defTab.Nick)); return nil end end end @@ -3171,7 +3352,7 @@ function CacheQueryAdditions(sModel) local tCache = libCache[defTab.Name]; if(not IsHere(tCache)) then LogInstance("Cache missing for "..GetReport(defTab.Name, sModel)); return nil end local sModel, qsKey = makTab:Match(sModel,1,false,"",true,true), GetOpVar("FORM_KEYSTMT") - local stData, sFunc = tCache[sModel], "CacheQueryAdditions" + local stData, sFunc = tCache[sModel], debugGetinfo(1).name if(IsHere(stData) and IsHere(stData.Size)) then if(stData.Size <= 0) then stData = nil else stData = makTab:TimerRestart(sFunc, defTab.Name, sModel) end @@ -3182,21 +3363,20 @@ function CacheQueryAdditions(sModel) local qModel = makTab:Match(sModel,1,true) LogInstance("Save >> "..GetReport(sModel)) tCache[sModel] = {}; stData = tCache[sModel]; stData.Size = 0 - local Q = CacheStmt(qsKey:format(sFunc, ""), nil, qModel) - if(not Q) then - local sStmt = makTab:Select(2,3,4,5,6,7,8,9,10,11,12):Where({1,"%s"}):Order(4):Get() - if(not IsHere(sStmt)) then - LogInstance("Build statement failed"); return nil end - Q = CacheStmt(qsKey:format(sFunc, ""), sStmt, qModel) - end + local qIndx = qsKey:format(sFunc, "") + local Q = makTab:Get(qIndx, qModel); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc] + Q = makTab:Select():Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, qModel) end + if(not Q) then LogInstance("Build statement failed "..GetReport(qIndx,qModel)); return nil end local qData = sqlQuery(Q); if(not qData and isbool(qData)) then LogInstance("SQL exec error "..GetReport(sqlLastError(), Q)); return nil end if(not IsHere(qData) or IsEmpty(qData)) then LogInstance("No data found "..GetReport(Q)); return nil end - local iCnt = 1; stData.Slot, stData.Size = sModel, 0 - while(qData[iCnt]) do local qRec = qData[iCnt]; stData[iCnt] = {} - for col, val in pairs(qRec) do stData[iCnt][col] = val end - stData.Size, iCnt = iCnt, (iCnt + 1) + stData.Slot, stData.Size = sModel, #qData + local coMo, coID = makTab:GetColumnName(1), makTab:GetColumnName(4) + for iCnt = 1, stData.Size do + local qRec = qData[iCnt]; qRec[coMo] = nil; if(iCnt ~= tonumber(qRec[coID])) then + LogInstance("Sequential mismatch "..GetReport(iCnt,sModel)); return nil end + stData[iCnt] = {}; for col, val in pairs(qRec) do stData[iCnt][col] = val end end; stData = makTab:TimerAttach(sFunc, defTab.Name, sModel); return stData elseif(sMoDB == "LUA") then LogInstance("Record missing"); return nil else LogInstance("Unsupported mode "..GetReport(sMoDB, sModel)); return nil end @@ -3206,86 +3386,78 @@ end ----------------------- PANEL QUERY ------------------------------- --[[ - * Exports panel information to dedicated DB file - * stPanel > The actual panel information to export - * bExp > Export panel data into a DB file - * makTab > Table maker object - * sFunc > Export requestor ( CacheQueryPanel ) + * Updates panel category to dedicated hash + * stPanel > The actual panel information to populate ]] -function ExportPanelDB(stPanel, bExp, makTab, sFunc) - if(bExp) then - local sMiss = GetOpVar("MISS_NOAV") - local sExpo = GetOpVar("DIRPATH_EXP") - local sMoDB = GetOpVar("MODE_DATABASE") - local symSep, cT = GetOpVar("OPSYM_SEPARATOR") - local iCnt, sBase = 1, GetOpVar("DIRPATH_BAS") - if(not fileExists(sBase, "DATA")) then fileCreateDir(sBase) end - local fName = (sBase..sExpo..GetOpVar("NAME_LIBRARY").."_db.txt") - local F = fileOpen(fName, "wb" ,"DATA"), sMiss; if(not F) then - LogInstance("Open fail "..GetReport(fName)); return stPanel end - F:Write("# "..sFunc..":("..tostring(bExp)..") "..GetDateTime().." [ "..sMoDB.." ]\n") - while(stPanel[iCnt]) do local vPanel = stPanel[iCnt] - local sM = vPanel[makTab:GetColumnName(1)] - local sT = vPanel[makTab:GetColumnName(2)] - local sN = vPanel[makTab:GetColumnName(3)] - if(not cT or cT ~= sT) then -- Category has been changed - F:Write("# Categorize [ "..sMoDB.." ]("..sT.."): "..tostring(WorkshopID(sT) or sMiss)) - F:Write("\n"); cT = sT -- Cache category name - end -- Otherwise just write down the piece active point - F:Write("\""..sM.."\""..symSep.."\""..sT.."\""..symSep.."\""..sN.."\"") - F:Write("\n"); iCnt = iCnt + 1 - end; F:Flush(); F:Close() - end; return stPanel +local function SortCategory(stPanel) + local tCat = GetOpVar("TABLE_CATEGORIES") + for iCnt = 1, stPanel.Size do local vRec = stPanel[iCnt] + -- Register the category if definition functional is given + if(tCat[vRec.T]) then -- There is a category definition + local bS, vC, vN = pcall(tCat[vRec.T].Cmp, vRec.M) + if(bS) then -- When the call is successful in protected mode + if(vN and not IsBlank(vN)) then vRec.N = GetBeautifyName(vN) end + -- Custom name override when the addon requests + if(IsBlank(vC)) then vC = nil end + if(IsHere(vC)) then + if(not istable(vC)) then vC = {tostring(vC or "")} end + vRec.C = vC; vC.Size = #vC -- Make output category to point to local one + for iD = 1, vC.Size do -- Create category tree path + vC[iD] = tostring(vC[iD] or ""):lower():Trim() + if(IsBlank(vC[iD])) then vC[iD] = "other" end + vC[iD] = GetBeautifyName(vC[iD]) -- Beautify the category + end -- When the category has at least one element + end -- Is there is any category apply it. When available process it now + else -- When there is an error in the category execution report it + LogInstance("Process "..GetReport(vRec.T, vRec.M).." [[["..tCat[vRec.T].Txt.."]]] execution error: "..vC) + end -- Category factory has been executed and sub-folders are created + end -- Category definition has been processed and nothing more to be done + end; tableSort(stPanel, GetOpVar("VCOMPARE_SPAN")); return stPanel end --[[ * Caches the data needed to populate the CPanel tree - * bExp > Export panel data into a DB file ]] -function CacheQueryPanel(bExp) +function CacheQueryTree() local makTab = GetBuilderNick("PIECES"); if(not IsHere(makTab)) then LogInstance("Missing table builder"); return nil end local defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then LogInstance("Missing table definition"); return nil end if(not IsHere(libCache[defTab.Name])) then LogInstance("Missing cache allocated "..GetReport(defTab.Name)); return nil end - local keyPan , sFunc = GetOpVar("HASH_USER_PANEL"), "CacheQueryPanel" - local stPanel, qsKey = libCache[keyPan], GetOpVar("FORM_KEYSTMT") - if(IsHere(stPanel) and IsHere(stPanel.Size)) then LogInstance("Retrieve") - if(stPanel.Size <= 0) then stPanel = nil else - stPanel = makTab:TimerRestart(sFunc, keyPan) end - return ExportPanelDB(stPanel, bExp, makTab, sFunc) + local keyPan , sFunc = GetOpVar("HASH_USER_PANEL"), debugGetinfo(1).name + local stPan, qsKey = libCache[keyPan], GetOpVar("FORM_KEYSTMT") + if(IsHere(stPan) and IsHere(stPan.Size)) then LogInstance("Retrieve") + if(stPan.Size <= 0) then stPan = nil else + stPan = makTab:TimerRestart(sFunc, keyPan) end + return stPan else - libCache[keyPan] = {}; stPanel = libCache[keyPan] + local coMo = makTab:GetColumnName(1) + local coTy = makTab:GetColumnName(2) + local coNm = makTab:GetColumnName(3) local sMoDB = GetOpVar("MODE_DATABASE") + libCache[keyPan] = {}; stPan = libCache[keyPan] if(sMoDB == "SQL") then - local Q = CacheStmt(qsKey:format(sFunc,""), nil, 1) - if(not Q) then - local sStmt = makTab:Select(1,2,3):Where({4,"%d"}):Order(2,1):Get() - if(not IsHere(sStmt)) then - LogInstance("Build statement failed"); return nil end - Q = CacheStmt(qsKey:format(sFunc,""), sStmt, 1) - end + local qIndx = qsKey:format(sFunc,"") + local Q = makTab:Get(qIndx, 1); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc] + Q = makTab:Select(unpack(tQ.S)):Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, 1) end + if(not Q) then LogInstance("Build statement failed "..GetReport(qIndx,1)); return nil end local qData = sqlQuery(Q); if(not qData and isbool(qData)) then LogInstance("SQL exec error "..GetReport(sqlLastError())); return nil end if(not IsHere(qData) or IsEmpty(qData)) then LogInstance("No data found "..GetReport(Q)); return nil end - local iCnt = 1; stPanel.Size = 0 - while(qData[iCnt]) do - stPanel[iCnt] = qData[iCnt] - stPanel.Size, iCnt = iCnt, (iCnt + 1) - end; stPanel = makTab:TimerAttach(sFunc, keyPan) - return ExportPanelDB(stPanel, bExp, makTab, sFunc) + stPan.Size = #qData -- Store the amount of SQL rows + for iCnt = 1, stPan.Size do local qRow = qData[iCnt] + stPan[iCnt] = {M = qRow[coMo], T = qRow[coTy], N = qRow[coNm]} + end; SortCategory(stPan) + return makTab:TimerAttach(sFunc, keyPan) elseif(sMoDB == "LUA") then - local tCache = libCache[defTab.Name] -- Sort directly by the model - local tSort = Sort(tCache,{"Type","Slot"}); if(not tSort) then - LogInstance("Cannot sort cache data"); return nil end; stPanel.Size = 0 - for iCnt = 1, tSort.Size do stPanel[iCnt] = {} - local vSort, vPanel = tSort[iCnt], stPanel[iCnt] - vPanel[makTab:GetColumnName(1)] = vSort.Key - vPanel[makTab:GetColumnName(2)] = vSort.Rec.Type - vPanel[makTab:GetColumnName(3)] = vSort.Rec.Name; stPanel.Size = iCnt - end; return ExportPanelDB(stPanel, bExp, makTab, sFunc) + local tCache, stPan = libCache[defTab.Name], {Size = 0} + for mod, rec in pairs(tCache) do + local iCnt = stPan.Size; iCnt = iCnt + 1 + stPan[iCnt] = {M = rec.Slot, T = rec.Type, N = rec.Name} + stPan.Size = iCnt -- Store the amount of rows + end; SortCategory(stPan); return stPan else LogInstance("Unsupported mode "..GetReport(sMoDB)); return nil end end end @@ -3302,7 +3474,7 @@ function CacheQueryProperty(sType) LogInstance("Missing table definition"); return nil end local tCache = libCache[defTab.Name]; if(not tCache) then LogInstance("Cache missing for "..GetReport(defTab.Name)); return nil end - local sMoDB, sFunc = GetOpVar("MODE_DATABASE"), "CacheQueryProperty" + local sMoDB, sFunc = GetOpVar("MODE_DATABASE"), debugGetinfo(1).name local qsKey = GetOpVar("FORM_KEYSTMT") if(isstring(sType) and not IsBlank(sType)) then local sType = makTab:Match(sType,1,false,"",true,true) @@ -3317,24 +3489,24 @@ function CacheQueryProperty(sType) return stName else if(sMoDB == "SQL") then - local qType = makTab:Match(sType,1,true) arNames[sType] = {}; stName = arNames[sType]; stName.Size = 0 - local Q = CacheStmt(qsKey:format(sFunc,keyName), nil, qType) - if(not Q) then - local sStmt = makTab:Select(3):Where({1,"%s"}):Order(2):Get() - if(not IsHere(sStmt)) then - LogInstance("Build statement failed"); return nil end - Q = CacheStmt(qsKey:format(sFunc,keyName), sStmt, qType) - end + local qType = makTab:Match(sType,1,true) + local qIndx = qsKey:format(sFunc,keyName) + local Q = makTab:Get(qIndx, qType); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc].N + Q = makTab:Select(unpack(tQ.S)):Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, qType) end + if(not Q) then LogInstance("Build statement failed "..GetReport(qIndx,qType)); return nil end local qData = sqlQuery(Q); if(not qData and isbool(qData)) then LogInstance("SQL exec error "..GetReport(sqlLastError(), Q)); return nil end if(not IsHere(qData) or IsEmpty(qData)) then LogInstance("No data found "..GetReport(Q)); return nil end - local iCnt = 1; stName.Size, stName.Slot = 0, sType - while(qData[iCnt]) do - stName[iCnt] = qData[iCnt][makTab:GetColumnName(3)] - stName.Size, iCnt = iCnt, (iCnt + 1) - end; LogInstance("Save >> "..GetReport(sType, keyName)) + local coID, coNm = makTab:GetColumnName(2), makTab:GetColumnName(3) + stName.Slot, stName.Size = sType, #qData + for iCnt = 1, stName.Size do + local qRec = qData[iCnt]; if(iCnt ~= tonumber(qRec[coID])) then + LogInstance("Sequential mismatch "..GetReport(iCnt,sType)); return nil end + stName[iCnt] = qRec[coNm] -- Properties are stored as arrays of strings + end + LogInstance("Save >> "..GetReport(sType, keyName)) stName = makTab:TimerAttach(sFunc, defTab.Name, keyName, sType); return stName elseif(sMoDB == "LUA") then LogInstance("Record missing"); return nil else LogInstance("Unsupported mode "..GetReport(sMoDB, keyName)); return nil end @@ -3350,22 +3522,17 @@ function CacheQueryProperty(sType) else if(sMoDB == "SQL") then tCache[keyType] = {}; stType = tCache[keyType]; stType.Size = 0 - local Q = CacheStmt(qsKey:format(sFunc,keyType), nil, 1) - if(not Q) then - local sStmt = makTab:Select(1):Where({2,"%d"}):Order(1):Get() - if(not IsHere(sStmt)) then - LogInstance("Build statement failed"); return nil end - Q = CacheStmt(qsKey:format(sFunc,keyType), sStmt, 1) - end + local qIndx = qsKey:format(sFunc,keyType) + local Q = makTab:Get(qIndx, 1); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc].T + Q = makTab:Select(unpack(tQ.S)):Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, 1) end + if(not Q) then LogInstance("Build statement failed "..GetReport(qIndx,1)); return nil end local qData = sqlQuery(Q); if(not qData and isbool(qData)) then LogInstance("SQL exec error "..GetReport(sqlLastError(), Q)); return nil end if(not IsHere(qData) or IsEmpty(qData)) then LogInstance("No data found "..GetReport(Q)); return nil end - local iCnt = 1; stType.Size = 0 - while(qData[iCnt]) do - stType[iCnt] = qData[iCnt][makTab:GetColumnName(1)] - stType.Size, iCnt = iCnt, (iCnt + 1) - end; LogInstance("Save >> "..GetReport(keyType)) + local coNm = makTab:GetColumnName(1); stType.Size = #qData + for iCnt = 1, stType.Size do stType[iCnt] = qData[iCnt][coNm] end + LogInstance("Save >> "..GetReport(keyType)) stType = makTab:TimerAttach(sFunc, defTab.Name, keyType); return stType elseif(sMoDB == "LUA") then LogInstance("Record missing"); return nil else LogInstance("Unsupported mode "..GetReport(sMoDB, keyType)); return nil end @@ -3375,51 +3542,150 @@ end ---------------------- EXPORT -------------------------------- +--[[ + * Creates the directories needed and concatenates the + * file path to be ready for opening the file object +]] +function GetLibraryPath(sT, sP, sN) + local fName = GetOpVar("DIRPATH_BAS") + if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end + fName = fName..tostring(sT or "") -- Target folder in `trackassembly/` + if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end + if(not (sP or sN)) then return fName end -- Create the folders only + local sForm = GetOpVar("FORM_PREFIXDSV") -- Concatenate file name + return fName..sForm:format(tostring(sP or ""), tostring(sN or "")) +end + +--[[ + * Checks whenever a generic database is present + * When present uses it instead of importing DSV + * sSors > The source file name being checked +]] +function IsGenericDB(sSors) + local sSors = tostring(sSors or "") + local sName, fGenc = GetOpVar("TOOLNAME_PU"), GetOpVar("DBEXP_PREFGEN") + local fName = GetLibraryPath(GetOpVar("DIRPATH_DSV"), fGenc, sName..sSors) + return fileExists(fName, "DATA") +end + +--[[ + * Export database inventory contents as a sync file + * The result of this function is used to sync contents + * between addons and show what is missing or discontinued +]] +function ExportSyncDB(sDelim) + if(SERVER) then LogInstance("Working on server"); return true end + local sDelim = tostring(sDelim or "\t"):sub(1,1) + local sMiss, sTable = GetOpVar("MISS_NOAV"), "PIECES" + local tHew, sMoDB = GetOpVar("PATTEM_EXDSVHED"), GetOpVar("MODE_DATABASE") + local sHew, sFunc = tHew[2]:format(sMiss, sTable, sDelim), debugGetinfo(1).name + local fName = GetLibraryPath(GetOpVar("DIRPATH_EXP"), GetOpVar("NAME_LIBRARY"), "_db") + local makTab = GetBuilderNick(sTable); if(not IsHere(makTab)) then + LogInstance(sHew.." Missing table builder"); return false end + local defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then + LogInstance(sHew.." Missing table definition"); return false end + local F = fileOpen(fName, "wb" ,"DATA"); if(not F) then + LogInstance(sHew.." Open fail "..GetReport(fName)); return false end + F:Write("# "..sFunc..":"..sHew.." "..GetDateTime().." [ "..sMoDB.." ]\n") + F:Write("# "..defTab.Nick..":("..makTab:GetColumnList(nil,1,2,3)..")\n") + if(sMoDB == "SQL") then + local qsKey = GetOpVar("FORM_KEYSTMT") + local qIndx = qsKey:format(sFunc, "") + local Q = makTab:Get(qIndx, 1); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc] + Q = makTab:Select(unpack(tQ.S)):Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, 1) end + if(not IsHere(Q)) then LogInstance(sHew.." Build statement failed"); F:Flush(); F:Close(); return false end + local qData = sqlQuery(Q); if(not qData and isbool(qData)) then F:Flush(); F:Close() + LogInstance(sHew.." SQL exec error "..GetReport(sqlLastError(), Q)); return false end + if(not IsHere(qData) or IsEmpty(qData)) then F:Flush(); F:Close() + LogInstance(sHew.." No data found "..GetReport(Q)); return false end + F:Write("# Query("..#qData.."):<"..Q..">\n") + local coTy, cT = makTab:GetColumnName(2), nil + for iD = 1, #qData do local vRow = qData[iD] + if(not cT or cT ~= vRow[coTy]) then cT = vRow[coTy] + local sW = tostring(WorkshopID(cT) or sMiss) + F:Write("# Categorize("..cT.."): "..sW.."\n") + end; F:Write(makTab:GetConcat(vRow, sDelim, + function(iCT, sCT, vCT) return makTab:Match(vCT,iCT,true,"\"",true) end).."\n") + end + elseif(sMoDB == "LUA") then + local fsLog = GetOpVar("FORM_LOGSOURCE") + local ssLog = "*"..fsLog:format(defTab.Nick,sFunc,"Cache") + local tCache = libCache[defTab.Name]; if(not IsHere(tCache)) then + LogInstance(sHew.." Cache missing"); F:Flush(); F:Close(); return false end + local bS, sR = pcall(defTab.Cache[sFunc], F, makTab, tCache, sDelim, ssLog) + if(not bS) then F:Flush(); F:Close() + LogInstance(sHew.." Cache manager error: "..sR); return false end + if(not sR) then F:Flush(); F:Close() + LogInstance(sHew.." Cache routine fail"); return false end + else + LogInstance(sHew.." Unsupported mode "..GetReport(sMoDB, fName)) + F:Flush(); F:Close(); return false + end; F:Flush(); F:Close(); LogInstance(sHew.." Success"); return true +end + --[[ * Save/Load the category generation * vEq > Amount of internal comment depth * tData > The local data table to be exported ( if given ) - * sPref > Prefix used on exporting ( if not uses instance prefix ) + * sPref > Prefix used on exporting ( if none uses instance prefix ) + * bExp > Forces the output in the export folder.( defaults to DSV ) ]] -function ExportCategory(vEq, tData, sPref) +function ExportCategory(vEq, tData, sPref, bExp) if(SERVER) then LogInstance("Working on server"); return true end + local fPref = tostring(sPref or GetInstPref()) local nEq = (tonumber(vEq) or 0); if(nEq <= 0) then LogInstance("Wrong equality "..GetReport(vEq)); return false end + local tHew, sMoDB = GetOpVar("PATTEM_EXCATHED"), GetOpVar("MODE_DATABASE") + local sHew, sFunc = tHew[2]:format(fPref, nEq), debugGetinfo(1).name local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then - LogInstance("("..fPref..") Prefix empty"); return false end + LogInstance(sHew.." Prefix empty"); return false end if(IsFlag("en_dsv_datalock")) then - LogInstance("("..fPref..") User disabled"); return true end - local fName, sFunc = GetOpVar("DIRPATH_BAS"), "ExportCategory" - if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end - fName = fName..GetOpVar("DIRPATH_DSV") - if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end - local fForm, sTool = GetOpVar("FORM_PREFIXDSV"), GetOpVar("TOOLNAME_PU") - fName = fName..fForm:format(fPref, sTool.."CATEGORY") - local F = fileOpen(fName, "wb", "DATA") - if(not F) then LogInstance("("..fPref..")("..fName..") Open fail"); return false end - local sEq, nLen, sMoDB = ("="):rep(nEq), (nEq+2), GetOpVar("MODE_DATABASE") + LogInstance(sHew.." User disabled"); return true end + if(IsGenericDB("CATEGORY")) then + LogInstance(sHew.." Generic database",sTable); return true end + local sSnam = GetOpVar("TOOLNAME_PU").."CATEGORY" + local sSors = (bExp and GetOpVar("DIRPATH_EXP") or GetOpVar("DIRPATH_DSV")) + local fName = GetLibraryPath(sSors, fPref, sSnam) + local F = fileOpen(fName, "wb", "DATA"); if(not F) then + LogInstance(sHew.." Open fail: "..fName); return false end + local sEq, nLen = ("="):rep(nEq), (nEq+2) local tCat = (istable(tData) and tData or GetOpVar("TABLE_CATEGORIES")) - F:Write("# "..sFunc..":("..tostring(nEq).."@"..fPref..") "..GetDateTime().." [ "..sMoDB.." ]\n") - for cat, rec in pairs(tCat) do - if(isstring(rec.Txt)) then - local exp = "["..sEq.."["..cat..sEq..rec.Txt:Trim().."]"..sEq.."]" - if(not rec.Txt:find("\n")) then F:Flush(); F:Close() - LogInstance("("..fPref.."):("..fPref..") Category one-liner "..GetReport(cat)); return false end - F:Write(exp.."\n") - else F:Flush(); F:Close(); LogInstance("("..fPref..") Category code mismatch "..GetReport(cat, rec.Txt)); return false end - end; F:Flush(); F:Close(); LogInstance("("..fPref..") Success"); return true -end - -function ImportCategory(vEq, sPref) + local tSort = Arrange(tCat); if(not tSort) then + LogInstance(sHew.." Sorting keys fail"); return false end + F:Write("# "..sFunc..":"..sHew.." "..GetDateTime().." [ "..sMoDB.." ]\n") + for iS = 1, tSort.Size do local rec, cat = tSort[iS], nil; rec, cat = rec.Rec, rec.Key + if(isstring(rec.Txt)) then F:Write("["..sEq.."["..cat..sEq..rec.Txt:Trim().."]"..sEq.."]".."\n") + else F:Flush(); F:Close(); LogInstance(sHew.." Category code mismatch "..GetReport(cat, rec.Txt)); return false end + end; F:Flush(); F:Close(); LogInstance(sHew.." Success"); return true +end + +--[[ + * Save/Load the category generation + * vEq > Amount of internal comment depth ( when invalid uses header ) + * sPref > Prefix used on importing ( if none uses instance prefix ) + * bExp > Forces the input from the export folder.( defaults to DSV ) +]] +function ImportCategory(vEq, sPref, bExp) if(SERVER) then LogInstance("Working on server"); return true end - local nEq = (tonumber(vEq) or 0); if(nEq <= 0) then - LogInstance("Wrong equality "..GetReport(vEq)); return false end local fPref = tostring(sPref or GetInstPref()) - local fForm, sTool = GetOpVar("FORM_PREFIXDSV"), GetOpVar("TOOLNAME_PU") - local fName = GetOpVar("DIRPATH_BAS")..GetOpVar("DIRPATH_DSV") - fName = fName..fForm:format(fPref, sTool.."CATEGORY") - local F = fileOpen(fName, "rb", "DATA") - if(not F) then LogInstance("("..fName..") Open fail"); return false end + local nEq = mathMax(mathFloor(tonumber(vEq) or 0), 0) + local tHew = GetOpVar("PATTEM_EXCATHED") + local sHew = tHew[2]:format(fPref, nEq) + local sSnam = GetOpVar("TOOLNAME_PU").."CATEGORY" + local sSors = (bExp and GetOpVar("DIRPATH_EXP") or GetOpVar("DIRPATH_DSV")) + local fName = GetLibraryPath(sSors, fPref, sSnam) + local F = fileOpen(fName, "rb", "DATA"); if(not F) then + LogInstance(sHew.." Open fail: "..fName); return false end + if(nEq == 0) then local iF = F:Tell() -- Store the initial file pointer + local sLine, isEOF = GetStringFile(F) -- Read the file header + local sPar = sLine:match(tHew[3]); if(not sPar) then + LogInstance(sHew.." Intern header missing"); return false end + local tPar = tHew[1]:Explode(sPar:match(tHew[4]):Trim():sub(2,-2):Trim()) + nEq = mathMax(mathFloor(tonumber(tPar[2]) or 0), 0); if(nEq <= 0) then + LogInstance(sHew.." Marker length error "..GetReport(nEq,vEq)); return false end + sHew = tHew[2]:format(fPref, nEq); F:Seek(iF) + LogInstance(sHew.." Intern success "..GetReport(sPar)) + end local sEq, sLine, nLen = ("="):rep(nEq), "", (nEq+2) local cFr, cBk = "["..sEq.."[", "]"..sEq.."]" local tCat = GetOpVar("TABLE_CATEGORIES") @@ -3427,29 +3693,29 @@ function ImportCategory(vEq, sPref) while(not isEOF) do sLine, isEOF = GetStringFile(F) if(not IsBlank(sLine)) then local sFr, sBk = sLine:sub(1,nLen), sLine:sub(-nLen,-1) - if(sFr == cFr and sBk == cBk) then + if(sFr == cFr and sBk == cBk) then -- Check for line markers sLine, isPar, sPar = sLine:sub(nLen+1,-1), true, "" end - if(sFr == cFr and not isPar) then - sPar, isPar = sLine:sub(nLen+1,-1).."\n", true - elseif(sBk == cBk and isPar) then - sPar, isPar = sPar..sLine:sub(1,-nLen-1), false - local tBoo = sEq:Explode(sPar) + if(sFr == cFr and not isPar) then -- Starts here and ends elsewhere + sPar, isPar = sLine:sub(nLen+1,-1).."\n", true -- Skip the marker + elseif(sBk == cBk and isPar) then -- Currently processed ends here + sPar, isPar = sPar..sLine:sub(1,-nLen-1), false -- Skip the marker + local tBoo = sEq:Explode(sPar) -- Explode the pair on the delimiter local key, txt = tBoo[1]:Trim(), tBoo[2] - if(not IsBlank(key)) then + if(not IsBlank(key)) then -- Process the key when not blank if(txt:find("function")) then if(not IsDisable(key)) then tCat[key] = {}; tCat[key].Txt = txt:Trim() tCat[key].Cmp = CompileString("return ("..tCat[key].Txt..")",key) local bS, vO = pcall(tCat[key].Cmp) if(bS) then tCat[key].Cmp = vO else tCat[key].Cmp = nil - LogInstance("Compilation fail "..GetReport(key, vO)) + LogInstance(sHew.." Compilation fail "..GetReport(key, vO)) end - else LogInstance("Key skipped "..GetReport(key)) end - else LogInstance("Function missing "..GetReport(key)) end - else LogInstance("Name missing "..GetReport(txt)) end + else LogInstance(sHew.." Key skipped "..GetReport(key)) end + else LogInstance(sHew.." Function missing "..GetReport(key)) end + else LogInstance(sHew.." Name missing "..GetReport(txt)) end else sPar = sPar..sLine.."\n" end end - end; F:Close(); LogInstance("Success"); return true + end; F:Close(); LogInstance(sHew.." Success"); return true end --[[ @@ -3459,95 +3725,127 @@ end * sTable > The table you want to export * sPref > The external data prefix to be used * sDelim > What delimiter is the server using ( default tab ) + * bExp > Forces the input from the export folder.( defaults to DSV ) ]] -function ExportDSV(sTable, sPref, sDelim) +function ExportDSV(sTable, sPref, sDelim, bExp) if(not isstring(sTable)) then LogInstance("Table mismatch "..GetReport(sTable)); return false end + local sDelim = tostring(sDelim or "\t"):sub(1,1) + local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then + LogInstance("Prefix mismatch "..GetReport(fPref,sPref), sTable); return false end + local tHew, sMoDB = GetOpVar("PATTEM_EXDSVHED"), GetOpVar("MODE_DATABASE") + local sHew, sFunc = tHew[2]:format(fPref, sTable, sDelim), debugGetinfo(1).name + if(IsFlag("en_dsv_datalock")) then + LogInstance(sHew.." User disabled",sTable); return true end + if(IsGenericDB(sTable)) then + LogInstance(sHew.." Generic database",sTable); return true end local makTab = GetBuilderNick(sTable); if(not IsHere(makTab)) then - LogInstance("("..fPref..") Missing table builder",sTable); return false end + LogInstance(sHew.." Missing table builder",sTable); return false end local defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then - LogInstance("("..fPref..") Missing table definition",sTable); return nil end - local fName, fPref = GetOpVar("DIRPATH_BAS"), tostring(sPref or GetInstPref()) - if(IsBlank(fPref)) then - LogInstance("("..fPref..") Prefix empty"); return false end - if(IsFlag("en_dsv_datalock")) then - LogInstance("("..fPref..") User disabled"); return true end - if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end - fName = fName..GetOpVar("DIRPATH_DSV") - if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end - local fForm = GetOpVar("FORM_PREFIXDSV") - fName = fName..fForm:format(fPref, defTab.Name) + LogInstance(sHew.." Missing table definition",sTable); return nil end + local sSors = (bExp and GetOpVar("DIRPATH_EXP") or GetOpVar("DIRPATH_DSV")) + local fName = GetLibraryPath(sSors, fPref, defTab.Name) local F = fileOpen(fName, "wb", "DATA"); if(not F) then - LogInstance("("..fPref..")("..fName..") Open fail",sTable); return false end - local sDelim, sFunc = tostring(sDelim or "\t"):sub(1,1), "ExportDSV" - local fsLog = GetOpVar("FORM_LOGSOURCE") -- Read the log source format - local ssLog = "*"..fsLog:format(defTab.Nick,sFunc,"%s") - local sMoDB = GetOpVar("MODE_DATABASE") -- Read database mode - F:Write("#1 "..sFunc..":("..fPref.."@"..sTable..") "..GetDateTime().." [ "..sMoDB.." ]\n") - F:Write("#2 "..sTable..":("..makTab:GetColumnList(sDelim)..")\n") + LogInstance(sHew.." Open fail: "..fName,sTable); return false end + F:Write("# "..sFunc..":"..sHew.." "..GetDateTime().." [ "..sMoDB.." ]\n") + F:Write("# "..sTable..":("..makTab:GetColumnList(sDelim)..")\n") if(sMoDB == "SQL") then - local Q = makTab:Select():Order(unpack(defTab.Query[sFunc])):Get() + local qsKey = GetOpVar("FORM_KEYSTMT") + local qIndx = qsKey:format(sFunc, sTable) + local Q = makTab:Get(qIndx); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc] + Q = makTab:Select():Order(unpack(tQ.O)):Store(qIndx):Get(qIndx) end if(not IsHere(Q)) then F:Flush(); F:Close() - LogInstance("("..fPref..") Build statement failed",sTable); return false end - F:Write("#3 Query:<"..Q..">\n") + LogInstance(sHew.." Build statement failed",sTable); return false end + F:Write("# Query:<"..Q..">\n") local qData = sqlQuery(Q); if(not qData and isbool(qData)) then F:Flush(); F:Close() - LogInstance("("..fPref..") SQL exec error "..GetReport(sqlLastError(), Q), sTable); return nil end + LogInstance(sHew.." SQL exec error "..GetReport(sqlLastError(), Q), sTable); return nil end if(not IsHere(qData) or IsEmpty(qData)) then F:Flush(); F:Close() - LogInstance("("..fPref..") No data found "..GetReport(Q), sTable); return false end - local sData, sTab = "", defTab.Name - for iCnt = 1, #qData do local qRec = qData[iCnt]; sData = sTab - for iInd = 1, defTab.Size do local sHash = defTab[iInd][1] - sData = sData..sDelim..makTab:Match(qRec[sHash],iInd,true,"\"",true) - end; F:Write(sData.."\n"); sData = "" + LogInstance(sHew.." No data found "..GetReport(Q), sTable); return false end + for iCnt = 1, #qData do + F:Write(defTab.Name..sDelim..makTab:GetConcat(qData[iCnt], sDelim, + function(iCT, sCT, vCT) return makTab:Match(vCT,iCT,true,"\"",true) end).."\n") end -- Matching will not crash as it is matched during insertion elseif(sMoDB == "LUA") then + local fsLog = GetOpVar("FORM_LOGSOURCE") -- Read the log source format + local ssLog = "*"..fsLog:format(defTab.Nick,sFunc,"Cache") local tCache = libCache[defTab.Name]; if(not IsHere(tCache)) then F:Flush(); F:Close() - LogInstance("("..fPref..") Cache missing",sTable); return false end - local bS, sR = pcall(defTab.Cache[sFunc], F, makTab, tCache, fPref, sDelim, ssLog:format("Cache")) - if(not bS) then LogInstance("("..fPref..") Cache manager fail for "..sR,sTable); return false end - if(not sR) then LogInstance("("..fPref..") Cache routine fail",sTable); return false end - else LogInstance("("..fPref..") Unsupported mode "..GetReport(sMoDB, fName),sTable); return false end + LogInstance(sHew.." Cache missing",sTable); return false end + local bS, sR = pcall(defTab.Cache[sFunc], F, makTab, tCache, fPref, sDelim, ssLog) + if(not bS) then F:Flush(); F:Close() + LogInstance(sHew.." Cache manager error: "..sR,sTable); return false end + if(not sR) then F:Flush(); F:Close() + LogInstance(sHew.." Cache routine fail",sTable); return false end + else F:Flush(); F:Close(); LogInstance(sHew.." Unsupported mode "..GetReport(sMoDB, fName),sTable); return false end -- The dynamic cache population was successful then send a message - F:Flush(); F:Close(); LogInstance("("..fPref..") Success",sTable); return true + F:Flush(); F:Close(); LogInstance(sHew.." Success",sTable); return true end --[[ * Import table data from DSV database created earlier - * sTable > Definition KEY to import + * sTable > Table definition KEY being imported ( or a file ) * bComm > Calls TABLE:Record(arLine) when set to true * sPref > Prefix used on importing ( optional ) * sDelim > Delimiter separating the values + * bExp > Forces the input from the export folder.( defaults to DSV ) ]] -function ImportDSV(sTable, bComm, sPref, sDelim) - local fPref = tostring(sPref or GetInstPref()); if(not isstring(sTable)) then - LogInstance("("..fPref..") Table mismatch "..GetReport(sTable)); return false end - local makTab = GetBuilderNick(sTable); if(not IsHere(makTab)) then - LogInstance("("..fPref..") Missing table builder",sTable); return nil end - local defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then - LogInstance("("..fPref..") Missing table definition",sTable); return false end - local cmdTab = makTab:GetCommand(); if(not IsHere(cmdTab)) then - LogInstance("("..fPref..") Missing table command",sTable); return false end - local fName = (GetOpVar("DIRPATH_BAS")..GetOpVar("DIRPATH_DSV")) - local fForm, sMoDB = GetOpVar("FORM_PREFIXDSV"), GetOpVar("MODE_DATABASE") - fName = fName..fForm:format(fPref, defTab.Name) - local F = fileOpen(fName, "rb", "DATA"); if(not F) then - LogInstance("("..fPref..")("..fName..") Open fail",sTable); return false end - local sDelim = tostring(sDelim or "\t"):sub(1,1) - local sLine, isEOF, nLen = "", false, defTab.Name:len() - if(sMoDB == "SQL") then sqlQuery(cmdTab.Begin) - LogInstance("("..fPref..") Begin",sTable) end +function ImportDSV(sTable, bComm, sPref, sDelim, bExp) + local sTable = tostring(sTable or ""); if(IsBlank(sTable)) then + LogInstance("Table mismatch "..GetReport(sTable)); return false end + local bFile, sLine, isEOF, F = fileExists(sTable, "DATA"), "", false + local tHew, sHew = GetOpVar("PATTEM_EXDSVHED") + local sMoDB, makTab, defTab, cmdTab = GetOpVar("MODE_DATABASE") + if(bFile) then + local tHew, fName = GetOpVar("PATTEM_EXDSVHED"), sTable + LogInstance("Reading configuration: "..fName) + F = fileOpen(fName, "rb", "DATA"); if(not F) then + LogInstance("Open fail: "..fName); return false end + local iF = F:Tell() -- Store the initial file pointer + local sLine, isEOF = GetStringFile(F) -- Read the file header + local sPar = sLine:match(tHew[3]); if(not sPar) then + LogInstance("Intern header missing"); return false end + local tPar = tHew[1]:Explode(sPar:match(tHew[4]):Trim():sub(2,-2):Trim()) + fPref, sTable = tPar[1]:Trim(), tPar[2]:Trim() + sDelim = tostring(tPar[3] or "\t"):sub(1,1) + sHew = tHew[2]:format(fPref, sTable, sDelim) + F:Seek(iF); sLine, isEOF = "", false + makTab = GetBuilderNick(sTable); if(not IsHere(makTab)) then + LogInstance(sHew.." Missing table builder",sTable); return nil end + defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then + LogInstance(sHew.." Missing table definition",sTable); return false end + cmdTab = makTab:GetCommand(); if(not IsHere(cmdTab)) then + LogInstance(sHew.." Missing table command",sTable); return false end + F = fileOpen(fName, "rb", "DATA"); if(not F) then + LogInstance(sHew.." Open fail: "..fName,sTable); return false end + LogInstance(sHew.." Intern success "..GetReport(sPar)) + else + sDelim = tostring(sDelim or "\t"):sub(1,1) + local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then + LogInstance("Prefix mismatch "..GetReport(fPref,sPref), sTable); return false end + sHew = tHew[2]:format(fPref, sTable, sDelim) + makTab = GetBuilderNick(sTable); if(not IsHere(makTab)) then + LogInstance(sHew.." Missing table builder",sTable); return nil end + defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then + LogInstance(sHew.." Missing table definition",sTable); return false end + cmdTab = makTab:GetCommand(); if(not IsHere(cmdTab)) then + LogInstance(sHew.." Missing table command",sTable); return false end + local sSors = (bExp and GetOpVar("DIRPATH_EXP") or GetOpVar("DIRPATH_DSV")) + local fName = GetLibraryPath(sSors, fPref, defTab.Name) + F = fileOpen(fName, "rb", "DATA"); if(not F) then + LogInstance(sHew.." Open fail: "..fName,sTable); return false end + end + if(sMoDB == "SQL") then sqlQuery(cmdTab.BEGIN); LogInstance(sHew.." Begin",sTable) end while(not isEOF) do sLine, isEOF = GetStringFile(F) if((not IsBlank(sLine)) and (not IsDisable(sLine))) then - if(sLine:sub(1,nLen) == defTab.Name) then - local tData = sDelim:Explode(sLine:sub(nLen+2,-1)) - for iCnt = 1, defTab.Size do tData[iCnt] = GetStrip(tData[iCnt]) end - if(bComm) then makTab:Record(tData) end - end + local tData = sDelim:Explode(sLine); if((#tData-1) > defTab.Size) then + LogInstance(sHew.." Internal length mismatch "..GetReport(sLine),sTable); return false end + local sSors = tableRemove(tData, 1); if(sSors ~= defTab.Name) then + LogInstance(sHew.." Internal table mismatch "..GetReport(sLine),sTable); return false end + for iCnt = 1, defTab.Size do tData[iCnt] = GetStrip(tData[iCnt]) end + if(bComm) then makTab:Record(tData) end end end; F:Close() - if(sMoDB == "SQL") then sqlQuery(cmdTab.Commit) - LogInstance("("..fPref..") Commit",sTable) - end; LogInstance("("..fPref..") Success",sTable); return true + if(sMoDB == "SQL") then sqlQuery(cmdTab.COMMIT); LogInstance(sHew.." Commit",sTable) end + LogInstance(sHew.." Success",sTable); return true end --[[ @@ -3560,51 +3858,52 @@ end * sDelim > What delimiter is the server using ]] function SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) - local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then - LogInstance("("..fPref..") Prefix empty"); return false end if(not isstring(sTable)) then - LogInstance("("..fPref..") Table mismatch "..GetReport(sTable)); return false end + LogInstance("Table mismatch "..GetReport(sTable)); return false end + local sDelim, fData = tostring(sDelim or "\t"):sub(1,1), {} + local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then + LogInstance("Prefix mismatch "..GetReport(fPref,sPref),sTable); return false end + local tHew, sMoDB = GetOpVar("PATTEM_EXDSVHED"), GetOpVar("MODE_DATABASE") + local sHew, sFunc = tHew[2]:format(fPref, sTable, sDelim), debugGetinfo(1).name if(IsFlag("en_dsv_datalock")) then - LogInstance("("..fPref..") User disabled"); return true end + LogInstance(sHew.." User disabled",sTable); return true end + if(IsGenericDB(sTable)) then + LogInstance(sHew.." Generic database",sTable); return true end local makTab = GetBuilderNick(sTable); if(not IsHere(makTab)) then - LogInstance("("..fPref.."@"..sTable..") Missing table builder"); return false end + LogInstance(sHew.." Missing table builder",sTable); return false end local defTab, iD = makTab:GetDefinition(), makTab:GetColumnID("LINEID") - local fName, sDelim = GetOpVar("DIRPATH_BAS"), tostring(sDelim or "\t"):sub(1,1) - if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end - fName = fName..GetOpVar("DIRPATH_DSV") - if(not fileExists(fName,"DATA")) then fileCreateDir(fName) end - local fForm, sMoDB = GetOpVar("FORM_PREFIXDSV"), GetOpVar("MODE_DATABASE") - local sFunc = "SynchronizeDSV"; fName = fName..fForm:format(fPref, defTab.Name) - local I, fData = fileOpen(fName, "rb", "DATA"), {} - if(I) then local sLine, isEOF = "", false + local fName = GetLibraryPath(GetOpVar("DIRPATH_DSV"), fPref, defTab.Name) + if(fileExists(fName, "DATA")) then + local sLine, isEOF = "", false + local I = fileOpen(fName, "rb", "DATA"); if(not I) then + LogInstance(sHew.." Open fail: "..fName,sTable); return false end while(not isEOF) do sLine, isEOF = GetStringFile(I) if((not IsBlank(sLine)) and (not IsDisable(sLine))) then local tLine = sDelim:Explode(sLine) if(tLine[1] == defTab.Name) then local nL = #tLine for iCnt = 2, nL do local vV, iL = tLine[iCnt], (iCnt-1); vV = GetStrip(vV) vM = makTab:Match(vV,iL,false,"",true,true) - if(not IsHere(vV)) then LogInstance("("..fPref.."@"..sTable - ..") Read matching failed "..GetReport(vV, iL, defTab[iL][1])); return false end + if(not IsHere(vV)) then LogInstance(sHew.." Read matching failed " + ..GetReport(vV, iL, defTab[iL][1]),sTable); return false end tLine[iCnt] = vM -- Register the matched value end -- Allocate table memory for the matched key local vK = tLine[2]; if(not fData[vK]) then fData[vK] = {Size = 0} end -- Where the line ID must be read from. Validate the value local fRec, vID, nID = fData[vK], tLine[iD+1]; nID = (tonumber(vID) or 0) if((fRec.Size < 0) or (nID <= fRec.Size) or ((nID - fRec.Size) ~= 1)) then - I:Close(); LogInstance("("..fPref.."@"..sTable..") Scatter line ID "..GetReport(vID, vK)); return false end + I:Close(); LogInstance(sHew.." Scatter line ID "..GetReport(vID, vK),sTable); return false end fRec.Size = nID; fRec[nID] = {}; local fRow = fRec[nID] -- Register the new line for iCnt = 3, nL do fRow[iCnt-2] = tLine[iCnt] end -- Transfer the extracted data else I:Close() - LogInstance("("..fPref.."@"..sTable..") Read table name mismatch"); return false end + LogInstance(sHew.." Read table name mismatch",sTable); return false end end end; I:Close() - else LogInstance("("..fPref.."@"..sTable..") Creating file "..GetReport(fName)) end + else LogInstance(sHew.." Creating file "..GetReport(fName),sTable) end for key, rec in pairs(tData) do -- Check the given table and match the key - local vK = makTab:Match(key,1,false,"",true,true); - if(not IsHere(vK)) then LogInstance("("..fPref.."@"..sTable.."@" - ..tostring(key)..") Sync matching PK failed"); return false end + local vK = makTab:Match(key,1,false,"",true,true); if(not IsHere(vK)) then + LogInstance(sHew.." Sync matching PK failed "..GetReport(key),sTable); return false end local sKey, sVK = tostring(key), tostring(vK); if(sKey ~= sVK) then - LogInstance("("..fPref.."@"..sTable..") Sync key mismatch "..GetReport(sKey, sVK)); + LogInstance(sHew.." Sync key mismatch "..GetReport(sKey, sVK),sTable) tData[vK] = tData[key]; tData[key] = nil -- Override the key casing after matching end local tRec = tData[vK] -- Create local reference to the record of the matched key for iCnt = 1, #tRec do local tRow, vID, nID, sID = tRec[iCnt] -- Read the processed row reference @@ -3612,19 +3911,19 @@ function SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) nID = (nID or (IsDisable(sID) and iCnt or 0)) -- Where the line ID must be read from. Skip the key itself and convert the disabled value if(iCnt ~= nID) then -- Validate the line ID being in proper borders and sequential - LogInstance("("..fPref.."@"..sTable.."@"..sKey..") Sync point ID scatter " - ..GetReport(iCnt, vID, nID, sID)); return false end; tRow[iD-1] = nID + LogInstance(sHew.." Sync point ID scatter " + ..GetReport(iCnt, vID, nID, sID, sKey),sTable); return false end; tRow[iD-1] = nID for nCnt = 1, #tRow do -- Do a value matching without quotes local vM = makTab:Match(tRow[nCnt],nCnt+1,false,"",true,true); if(not IsHere(vM)) then - LogInstance("("..fPref.."@"..sTable.."@"..sKey..") Sync matching failed " - ..GetReport(tRow[nCnt], (nCnt+1), defTab[nCnt+1][1])); return false + LogInstance(sHew.." Sync matching failed " + ..GetReport(tRow[nCnt], (nCnt+1), defTab[nCnt+1][1], sKey),sTable); return false end; tRow[nCnt] = vM -- Store the matched value in the same place as the original end -- Check whenever triggers are available. Run them if present if(istable(defTab.Trigs)) then tableInsert(tRow, 1, vK) -- Apply trigger format local bS, sR = pcall(defTab.Trigs["Record"], tRow, sFunc); if(not bS) then - LogInstance("("..fPref.."@"..sTable..") Trigger "..GetReport(nID, vK).." error: "..sR); return false end + LogInstance(sHew.." Trigger "..GetReport(nID, vK).." error: "..sR,sTable); return false end if(not sR) then -- Rise log error when something gets wrong inside the trigger routine - LogInstance("("..fPref.."@"..sTable..") Trigger "..GetReport(nID, vK).." routine fail"); return false end + LogInstance(sHew.." Trigger "..GetReport(nID, vK).." routine fail",sTable); return false end tableRemove(tRow, 1) -- Remove the fictive duplicated primary key from the row data first column end end -- Register the read line to the output file @@ -3633,50 +3932,52 @@ function SynchronizeDSV(sTable, tData, bRepl, sPref, sDelim) fData[vK] = tRec; fData[vK].Size = #tRec end end end - local tSort = Sort(tableGetKeys(fData)); if(not tSort) then - LogInstance("("..fPref.."@"..sTable..") Sorting failed"); return false end + local tSort = Arrange(fData); if(not tSort) then + LogInstance(sHew.." Sorting failed",sTable); return false end local O = fileOpen(fName, "wb" ,"DATA"); if(not O) then - LogInstance("("..fPref.."@"..sTable..")("..fName..") Open fail"); return false end - O:Write("# "..sFunc..":("..fPref.."@"..sTable..") "..GetDateTime().." [ "..sMoDB.." ]\n") + LogInstance(sHew.." Open fail: "..fName,sTable); return false end + O:Write("# "..sFunc..":"..sHew.." "..GetDateTime().." [ "..sMoDB.." ]\n") O:Write("# "..sTable..":("..makTab:GetColumnList(sDelim)..")\n") - for iKey = 1, tSort.Size do local key = tSort[iKey].Val + for iKey = 1, tSort.Size do local key = tSort[iKey].Key local vK = makTab:Match(key,1,true,"\"",true); if(not IsHere(vK)) then - O:Flush(); O:Close(); LogInstance("("..fPref.."@"..sTable.."@"..tostring(key)..") Write matching PK failed"); return false end + O:Flush(); O:Close(); LogInstance(sHew.." Write matching PK failed " + ..GetReport(key),sTable); return false end local fRec, sCash, sData = fData[key], defTab.Name..sDelim..vK, "" for iCnt = 1, fRec.Size do local fRow = fRec[iCnt] for nCnt = 1, #fRow do local vM = makTab:Match(fRow[nCnt],nCnt+1,true,"\"",true); if(not IsHere(vM)) then - O:Flush(); O:Close(); LogInstance("("..fPref.."@"..sTable.."@"..tostring(key)..") Write matching failed " - ..GetReport(fRow[nCnt], (nCnt+1), defTab[nCnt+1][1])); return false + O:Flush(); O:Close(); LogInstance(sHew.." Write matching failed " + ..GetReport(fRow[nCnt], (nCnt+1), defTab[nCnt+1][1], key),sTable); return false end; sData = sData..sDelim..tostring(vM) end; O:Write(sCash..sData.."\n"); sData = "" end end O:Flush(); O:Close() - LogInstance("("..fPref.."@"..sTable..") Success"); return true + LogInstance(sHew.." Success",sTable); return true end function TranslateDSV(sTable, sPref, sDelim) - local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then - LogInstance("("..fPref..") Prefix empty"); return false end if(not isstring(sTable)) then - LogInstance("("..fPref..") Table mismatch "..GetReport(sTable)); return false end + LogInstance("Table mismatch "..GetReport(sTable)); return false end + local sDelim = tostring(sDelim or "\t"):sub(1,1) + local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then + LogInstance("Prefix mismatch "..GetReport(fPref,sPref), sTable); return false end + local tHew, sMoDB = GetOpVar("PATTEM_EXDSVHED"), GetOpVar("MODE_DATABASE") + local sHew, sFunc = tHew[2]:format(fPref, sTable, sDelim), debugGetinfo(1).name if(IsFlag("en_dsv_datalock")) then - LogInstance("("..fPref..") User disabled"); return true end + LogInstance(sHew.." User disabled",sTable); return true end + if(IsGenericDB(sTable)) then + LogInstance(sHew.." Generic database",sTable); return true end local makTab = GetBuilderNick(sTable); if(not IsHere(makTab)) then - LogInstance("("..fPref..") Missing table builder",sTable); return false end - local defTab, sFunc = makTab:GetDefinition(), "TranslateDSV" - local sNdsv, sNins = GetOpVar("DIRPATH_BAS"), GetOpVar("DIRPATH_BAS") - if(not fileExists(sNins,"DATA")) then fileCreateDir(sNins) end - sNdsv, sNins = sNdsv..GetOpVar("DIRPATH_DSV"), sNins..GetOpVar("DIRPATH_EXP") - if(not fileExists(sNins,"DATA")) then fileCreateDir(sNins) end - local fForm, sMoDB = GetOpVar("FORM_PREFIXDSV"), GetOpVar("MODE_DATABASE") - sNdsv, sNins = sNdsv..fForm:format(fPref, defTab.Name), sNins..fForm:format(fPref, defTab.Name) - local sDelim = tostring(sDelim or "\t"):sub(1,1) - local D = fileOpen(sNdsv, "rb", "DATA"); if(not D) then - LogInstance("("..fPref..")("..sNdsv..") Open fail",sTable); return false end - local I = fileOpen(sNins, "wb", "DATA"); if(not I) then - LogInstance("("..fPref..")("..sNins..") Open fail",sTable); return false end - I:Write("# "..sFunc..":("..fPref.."@"..sTable..") "..GetDateTime().." [ "..sMoDB.." ]\n") + LogInstance(sHew.." Missing table builder",sTable); return false end + local defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then + LogInstance(sHew.." Missing table definition",sTable); return false end + local sDSV = GetLibraryPath(GetOpVar("DIRPATH_DSV"), fPref, defTab.Name) + local sEXP = GetLibraryPath(GetOpVar("DIRPATH_EXP"), "["..sMoDB.."-tr]"..fPref, defTab.Name) + local D = fileOpen(sDSV, "rb", "DATA"); if(not D) then + LogInstance(sHew.." Open fail: "..sDSV,sTable); return false end + local I = fileOpen(sEXP, "wb", "DATA"); if(not I) then + LogInstance(sHew.." Open fail: "..sEXP,sTable); return false end + I:Write("# "..sFunc..":"..sHew.." "..GetDateTime().." [ "..sMoDB.." ]\n") I:Write("# "..sTable..":("..makTab:GetColumnList(sDelim)..")\n") local sLine, isEOF = "", false local sFr, sBk = sTable:upper()..":Record({", "})\n" @@ -3687,13 +3988,13 @@ function TranslateDSV(sTable, sPref, sDelim) for nCnt = 1, #tBoo do local vMatch = makTab:Match(GetStrip(tBoo[nCnt]),nCnt,true,"\"",true) if(not IsHere(vMatch)) then D:Close(); I:Flush(); I:Close() - LogInstance("("..fPref..") Given matching failed " + LogInstance(sHew.." Given matching failed " ..GetReport(tBoo[nCnt], nCnt, defTab[nCnt][1]), sTable); return false end sCat = sCat..", "..tostring(vMatch) end; I:Write(sFr..sCat:sub(3,-1)..sBk) end end; D:Close(); I:Flush(); I:Close() - LogInstance("("..fPref..") Success",sTable); return true + LogInstance(sHew.." Success",sTable); return true end --[[ @@ -3705,47 +4006,44 @@ end * bSkip > Skip addition for the DSV prefix if exists ]] function RegisterDSV(sProg, sPref, sDelim, bSkip) + local sProg = tostring(sProg or ""); if(IsBlank(sProg)) then + LogInstance("Program empty "..GetReport(sProg, sPref)); return false end local fPref = tostring(sPref or GetInstPref()); if(IsBlank(fPref)) then - LogInstance("("..fPref..") Prefix empty"); return false end - if(IsFlag("en_dsv_datalock")) then - LogInstance("("..fPref..") User disabled"); return true end + LogInstance("Prefix empty "..GetReport(sProg, sPref)); return false end if(CLIENT and gameSinglePlayer()) then - LogInstance("("..fPref..") Single client"); return true end - local sBas = GetOpVar("DIRPATH_BAS") - if(not fileExists(sBas,"DATA")) then fileCreateDir(sBas) end - local sBas = sBas..GetOpVar("DIRPATH_SET") - if(not fileExists(sBas,"DATA")) then fileCreateDir(sBas) end - local lbNam, sMiss = GetOpVar("NAME_LIBRARY"), GetOpVar("MISS_NOAV") - local fName = (sBas..lbNam.."_dsv.txt") - local sDelim = tostring(sDelim or "\t"):sub(1,1) + LogInstance("Single client "..GetReport(sProg, sPref)); return true end + if(IsFlag("en_dsv_datalock")) then + LogInstance("User disabled "..GetReport(sProg, sPref)); return true end + local sDelim, sMiss = tostring(sDelim or "\t"):sub(1,1), GetOpVar("MISS_NOAV") + local fName = GetLibraryPath(GetOpVar("DIRPATH_SET"), GetOpVar("NAME_LIBRARY"), "_dsv") if(bSkip) then if(fileExists(fName, "DATA")) then - local fPool, isEOF, isAct = {}, false, true + local fPool, isEOF = {}, false local F, sLine = fileOpen(fName, "rb" ,"DATA"), ""; if(not F) then - LogInstance("Skip fail "..GetReport(fPref, fName)); return false end - while(not isEOF) do sLine, isEOF = GetStringFile(F) - if(not IsBlank(sLine)) then - if(IsDisable(sLine)) then - isAct, sLine = false, sLine:sub(2,-1) else isAct = true end + LogInstance("Skip fail: "..GetReport(sProg, fPref, fName)); return false end + while(not isEOF) do + sLine, isEOF = GetStringFile(F) + if(not IsBlank(sLine)) then local isAct = true + if(IsDisable(sLine)) then isAct, sLine = false, sLine:sub(2,-1) end local tab = sDelim:Explode(sLine) - local prf, src = tab[1]:Trim(), tab[2]:Trim() + local prf = tostring(tab[1]):Trim() + local src = tostring(tab[2] or sMiss):Trim() local inf = fPool[prf]; if(not inf) then fPool[prf] = {Size = 0}; inf = fPool[prf] end - inf.Size = inf.Size + 1; inf[inf.Size] = {src, isAct} + tableInsert(inf, {isAct and "V" or "X", src}); inf.Size = inf.Size + 1 end end; F:Close() if(fPool[fPref]) then local inf = fPool[fPref] - for ID = 1, inf.Size do local tab = inf[ID] - local sta = (tab[2] and "On " or "Off") - LogInstance(GetReport(fPref, sta, tab[1])) end - LogInstance("Skip "..GetReport(fPref, sProg)); return true + for iP = 1, inf.Size do local tab = inf[iP] + LogInstance("Status "..GetReport(sProg, fPref, tab[1], tab[2])) + end; LogInstance("Skip "..GetReport(sProg, fPref)); return true end - else LogInstance("Skip miss "..GetReport(fPref, fName)) end + else LogInstance("Skip miss "..GetReport(sProg, fPref, fName)) end end local F = fileOpen(fName, "ab" ,"DATA"); if(not F) then - LogInstance("Update fail "..GetReport(fPref, fName)); return false end + LogInstance("Update fail "..GetReport(sProg, fPref, fName)); return false end F:Write(fPref..sDelim..tostring(sProg or sMiss).."\n"); F:Flush(); F:Close() - LogInstance("Register "..GetReport(fPref)); return true + LogInstance("Register "..GetReport(sProg, fPref)); return true end --[[ @@ -3757,16 +4055,13 @@ end * sDelim > The delimiter to be used while processing the DSV list ]] function ProcessDSV(sDelim) - local sBas = GetOpVar("DIRPATH_BAS") - local sSet = GetOpVar("DIRPATH_SET") - local lbNam = GetOpVar("NAME_LIBRARY") - local fName = (sBas..sSet..lbNam.."_dsv.txt") + local lbNam, sPU = GetOpVar("NAME_LIBRARY"), GetOpVar("TOOLNAME_PU") + local fName = GetLibraryPath(GetOpVar("DIRPATH_SET"), lbNam, "_dsv") + local sDelim = tostring(sDelim or "\t"):sub(1,1) + local sDsv, tProc = GetOpVar("DIRPATH_DSV"), {} local F = fileOpen(fName, "rb" ,"DATA"); if(not F) then - LogInstance("Open fail "..GetReport(fName)); return false end - local sLine, isEOF = "", false - local sNt, fForm = GetOpVar("TOOLNAME_PU"), GetOpVar("FORM_PREFIXDSV") - local sDelim, tProc = tostring(sDelim or "\t"):sub(1,1), {} - local sDv = sBas..GetOpVar("DIRPATH_DSV") + LogInstance("Open fail: "..GetReport(fName)); return false end + local sLine, isEOF, sGen = "", false, GetOpVar("DBEXP_PREFGEN") while(not isEOF) do sLine, isEOF = GetStringFile(F) if(not IsBlank(sLine)) then if(not IsDisable(sLine)) then @@ -3774,24 +4069,27 @@ function ProcessDSV(sDelim) local fPrf = GetStrip(tostring(tInf[1] or ""):Trim()) local fSrc = GetStrip(tostring(tInf[2] or ""):Trim()) if(not IsBlank(fPrf)) then -- Is there something - if(not tProc[fPrf]) then - tProc[fPrf] = {Cnt = 1, [1] = fSrc} - else local tStore = tProc[fPrf] -- Prefix is processed already - tStore.Cnt = tStore.Cnt + 1 -- Store the count of the repeated prefixes - tStore[tStore.Cnt] = fSrc + local tStore = tProc[fPrf] + if(not tStore) then + tProc[fPrf] = {Size = 1} + tStore = tProc[fPrf] + tableInsert(tStore, fSrc) + else -- Prefix is processed already + tStore.Size = tStore.Size + 1 -- Store the count of the repeated prefixes + tableInsert(tStore, fSrc) end -- What user puts there is a problem of his own end -- If the line is disabled/comment else LogInstance("Skipped "..GetReport(sLine)) end end end; F:Close() for prf, tab in pairs(tProc) do - if(tab.Cnt > 1) then - LogInstance("Prefix clones "..GetReport(prf, tab.Cnt, fName)) - for iD = 1, tab.Cnt do LogInstance("Prefix "..GetReport(iD, prf, tab[iD])) end - else local irf = GetInstPref() - if(CLIENT) then - if(not fileExists(sDv..fForm:format(irf, sNt.."CATEGORY"), "DATA")) then - if(fileExists(sDv..fForm:format(prf, sNt.."CATEGORY"), "DATA")) then + if(tab.Size > 1) then + LogInstance("Prefix clones "..GetReport(prf, tab.Size, fName)) + for iD = 1, tab.Size do LogInstance("Prefix "..GetReport(iD, prf, tab[iD])) end + else + if(CLIENT) then local srNam = (sPU.."CATEGORY") + if(not fileExists(GetLibraryPath(sDsv, sGen, srNam), "DATA")) then + if(fileExists(GetLibraryPath(sDsv, prf, srNam), "DATA")) then if(not ImportCategory(3, prf)) then LogInstance("Failed "..GetReport(prf, "CATEGORY")) end else LogInstance("Missing "..GetReport(prf, "CATEGORY")) end @@ -3800,8 +4098,9 @@ function ProcessDSV(sDelim) for iD = 1, #libQTable do local makTab = GetBuilderID(iD) local defTab = makTab:GetDefinition() - if(not fileExists(sDv..fForm:format(irf, sNt..defTab.Nick), "DATA")) then - if(fileExists(sDv..fForm:format(prf, sNt..defTab.Nick), "DATA")) then + local srNam = (sPU..defTab.Nick) + if(not fileExists(GetLibraryPath(sDsv, sGen, srNam), "DATA")) then + if(fileExists(GetLibraryPath(sDsv, prf, srNam), "DATA")) then if(not ImportDSV(defTab.Nick, true, prf)) then LogInstance("Failed "..GetReport(prf, defTab.Nick)) end else LogInstance("Missing "..GetReport(prf, defTab.Nick)) end @@ -3817,98 +4116,101 @@ end * makTab > Reference to additions table builder * qList > The list to insert the found additions ]] -function SetAdditionsAR(sModel, makTab, qList) - if(not IsHere(makTab)) then return end - local defTab = makTab:GetDefinition() - if(not IsHere(defTab)) then LogInstance("Table definition missing") end - local sMoDB, sFunc, qData = GetOpVar("MODE_DATABASE"), "SetAdditionsAR" +function SetAdditionsRun(sModel, makTab, qList) + if(not IsHere(makTab)) then + LogInstance("Table builder missing "..GetReport(qModel)); return false end + local defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then + LogInstance("Table definition missing "); return false end + local sMoDB, sFunc, qData = GetOpVar("MODE_DATABASE"), debugGetinfo(1).name if(sMoDB == "SQL") then local qsKey = GetOpVar("FORM_KEYSTMT") local qModel = makTab:Match(tostring(sModel or ""), 1, true) - local Q = CacheStmt(qsKey:format(sFunc, "ADDITIONS"), nil, qModel) - if(not Q) then - local sStmt = makTab:Select():Where({1,"%s"}):Order(4):Get() - if(not IsHere(sStmt)) then LogInstance("Build statement failed"); return - end; Q = CacheStmt(qsKey:format(sFunc, "ADDITIONS"), sStmt, qModel) - end -- Check whenever we have some data present. Quit when not found + local qIndx = qsKey:format(sFunc, "ADDITIONS") + local Q = makTab:Get(qIndx, qModel); if(not IsHere(Q)) then local tQ = defTab.Query[sFunc] + Q = makTab:Select():Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, qModel) end + if(not IsHere(Q)) then LogInstance("Build statement failed "..GetReport(qIndx,qModel)); return false end qData = sqlQuery(Q); if(not qData and isbool(qData)) then - LogInstance("SQL exec error "..GetReport(sqlLastError(), Q)); return - end + LogInstance("SQL exec error "..GetReport(sqlLastError(), Q)); return false end elseif(sMoDB == "LUA") then local iCnt = 0; qData = {} local tCache = libCache[defTab.Name] - local pkModel = makTab:GetColumnName(1) - local sLineID = makTab:GetColumnName(4) + local coMo = makTab:GetColumnName(1) + local coLn = makTab:GetColumnName(4) for mod, rec in pairs(tCache) do if(mod == sModel) then for iD = 1, rec.Size do iCnt = (iCnt + 1) - qData[iCnt] = {[pkModel] = mod} + qData[iCnt] = {[coMo] = mod} for iC = 2, defTab.Size do - local sN = makTab:GetColumnName(iC) + local sN = defTab[iC][1] qData[iCnt][sN] = rec[iD][sN] end end end end - local tSort = Sort(qData, {pkModel, sLineID}); if(not tSort) then - LogInstance("Sort cache mismatch"); return end; tableEmpty(qData) + local tSort = Arrange(qData, coMo, coLn); if(not tSort) then + LogInstance("Sort cache mismatch"); return false end; tableEmpty(qData) for iD = 1, tSort.Size do qData[iD] = tSort[iD].Rec end - else - LogInstance("Unsupported mode "..GetReport(sMoDB, sModel)) - fE:Flush(); fE:Close(); fS:Close(); return - end; local iE = #qList - if(not IsHere(qData) or IsEmpty(qData)) then return end - for iD = 1, #qData do qList[iE + iD] = qData[iD] end + else LogInstance("Unsupported mode "..GetReport(sMoDB, sModel)); return false end + if(not IsHere(qData) or IsEmpty(qData)) then + LogInstance("Additions empty "..GetReport(IsHere(qData), IsEmpty(qData), sModel)); return true end + local iE = #qList; for iD = 1, #qData do qList[iE + iD] = qData[iD] end + return true end -function ExportPiecesAR(fF,qData,sName,sInd,qList) +function ExportContentsRun(fF,qData,sName,sInd,qList) local dbNull = GetOpVar("MISS_NOSQL") local keyBld, makAdd = GetOpVar("KEYQ_BUILDER") local makTab = qData[keyBld]; if(not IsHere(makTab)) then - LogInstance("Missing table builder"); return end + LogInstance("Missing table builder"); return false end local defTab = makTab:GetDefinition(); if(not IsHere(defTab)) then - LogInstance("Missing table definition"); return end + LogInstance("Missing table definition"); return false end local mgrTab = defTab.Cache; if(not IsHere(mgrTab)) then - LogInstance("Cache manager missing"); return end - if(not IsHere(mgrTab.ExportAR)) then - LogInstance("Missing data handler"); return end + LogInstance("Cache manager missing"); return false end + local sFunc = debugGetinfo(1).name; if(not IsHere(mgrTab[sFunc])) then + LogInstance("Missing data handler"); return false end if(IsHere(qList) and istable(qList)) then if(IsHere(qList[keyBld])) then makAdd = qList[keyBld] else makAdd = GetBuilderNick("ADDITIONS"); if(not IsHere(makAdd)) then - LogInstance("Missing table list builder"); return end - qList[keyBld] = makAdd; LogInstance("Store list builder") + LogInstance("Missing table list builder"); return false end + qList[keyBld] = makAdd; LogInstance("Store addition builder "..GetReport(qList, keyBld)) end end if(istable(qData) and IsHere(qData[1])) then fF:Write("local "..sName.." = {\n") local pkID, sInd, fRow = 1, " ", true - local idxID = makTab:GetColumnID("LINEID") - for iD = 1, #qData do local qRow = qData[iD] - local mMod = qRow[makTab:GetColumnName(1)] + local ixID = makTab:GetColumnID("LINEID") + local coMo = makTab:GetColumnName(1) + for iD = 1, #qData do + local qRow = qData[iD] + local mMod = qRow[coMo] local aRow = makTab:GetArrayRow(qRow) for iA = 1, #aRow do local vA = aRow[iA] aRow[iA] = makTab:Match(vA,iA,true,"\"",true,true); if(not IsHere(aRow[iA])) then - LogInstance("Matching error "..GetReport(iA,vA,mMod)); return end + LogInstance("Matching error "..GetReport(iA,vA,mMod)); return false end if(vA == dbNull) then aRow[iA] = "gsMissDB" end end if(fRow) then fRow = false fF:Write(sInd:rep(1).."["..aRow[pkID].."] = {\n") - SetAdditionsAR(mMod, makAdd, qList) + if(makAdd and qList) then if(not SetAdditionsRun(mMod, makAdd, qList)) then + LogInstance("Addition primary error "..GetReport(iD,qList,mMod)); return false end end else - if(aRow[idxID] == 1) then fF:Seek(fF:Tell() - 2) + if(aRow[ixID] == 1) then fF:Seek(fF:Tell() - 2) fF:Write("\n"..sInd:rep(1).."},\n"..sInd:rep(1).."["..aRow[pkID].."] = {\n") - SetAdditionsAR(mMod, makAdd, qList) + if(makAdd and qList) then if(not SetAdditionsRun(mMod, makAdd, qList)) then + LogInstance("Addition secondary error "..GetReport(iD,qList,mMod)); return false end end end end - mgrTab.ExportAR(aRow); tableRemove(aRow, 1) - fF:Write(sInd:rep(2).."{"..tableConcat(aRow, ", ").."},\n") + local bS, sR = pcall(mgrTab[sFunc], aRow); + if(not bS) then LogInstance("Routine error "..GetReport(iD,mMod)..": "..sR); return false end + if(not sR) then LogInstance("Internal error "..GetReport(iD,mMod)); return false end + tableRemove(aRow, 1); fF:Write(sInd:rep(2).."{"..tableConcat(aRow, ", ").."},\n") end fF:Seek(fF:Tell() - 2) fF:Write("\n"..sInd:rep(1).."}\n") fF:Write("}\n") else fF:Write("local "..sName.." = {}\n") - end + end; return true end --[[ @@ -3917,83 +4219,67 @@ end * to the database by using external plugable DSV prefix list * sType > Track type the autorun file is created for ]] -function ExportTypeAR(sType) - if(SERVER) then return nil end - if(IsBlank(sType)) then return nil end +function ExportTypeRun(sType) + if(SERVER) then + LogInstance("Working on server"); return end + if(IsBlank(sType)) then + LogInstance("Track type blank"); return end local qPieces, qAdditions - local sFunc = "ExportTypeAR" + local sFunc = debugGetinfo(1).name local sBase = GetOpVar("DIRPATH_BAS") local noSQL = GetOpVar("MISS_NOSQL") local sTool = GetOpVar("TOOLNAME_NL") local sPref = sType:gsub("[^%w]","_") local sMoDB = GetOpVar("MODE_DATABASE") local sForm = GetOpVar("FORM_FILENAMEAR") + local fMon = "["..sMoDB:lower().."-run]" local sS = sBase..GetOpVar("DIRPATH_SET") sS = sS..sForm:format(sTool) local sN = sBase..GetOpVar("DIRPATH_EXP") - sN = sN..sForm:format(sPref) + sN = sN..fMon..sForm:format(sPref) local fE = fileOpen(sN, "wb", "DATA"); if(not fE) then LogInstance("Generate fail "..GetReport(sN)); return end local fS = fileOpen(sS, "rb", "DATA"); if(not fS) then fE:Flush(); fE:Close() LogInstance("Source fail "..GetReport(sS)) return end - local makP = GetBuilderNick("PIECES"); if(not makP) then + local makP = GetBuilderNick("PIECES"); if(not makP) then LogInstance("Missing table builder"); return end local defP = makP:GetDefinition(); if(not defP) then LogInstance("Missing table definition"); return end if(sMoDB == "SQL") then local qsKey = GetOpVar("FORM_KEYSTMT") if(not IsHere(makP)) then - LogInstance("Missing table builder PIECES") + LogInstance("Missing table builder",defP.Nick) fE:Flush(); fE:Close(); fS:Close(); return end local qType = makP:Match(sType, 2, true) - local Q = CacheStmt(qsKey:format(sFunc, "PIECES"), nil, qType) + local qIndx = qsKey:format(sFunc, "PIECES") + local Q = makP:Get(qIndx, qType); if(not IsHere(Q)) then local tQ = defP.Query[sFunc] + Q = makP:Select():Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qIndx):Get(qIndx, qType) end if(not Q) then - local sStmt = makP:Select():Where({2,"%s"}):Order(1,4):Get() - if(not IsHere(sStmt)) then LogInstance("Build statement failed") - fE:Flush(); fE:Close(); fS:Close(); return - end; Q = CacheStmt(qsKey:format(sFunc, "PIECES"), sStmt, qType) - end -- Check whenever we have some data present. Quit when not found + LogInstance("Build statement failed "..GetReport(qIndx,qType),defP.Nick) + fE:Flush(); fE:Close(); fS:Close(); return + end qPieces = sqlQuery(Q); if(not qPieces and isbool(qPieces)) then - LogInstance("SQL exec error "..GetReport(sqlLastError(), Q)) + LogInstance("SQL exec error "..GetReport(sqlLastError(), Q),defP.Nick) fE:Flush(); fE:Close(); fS:Close(); return end + if(not IsHere(qPieces) or IsEmpty(qPieces)) then + LogInstance("No data found "..GetReport(Q),defP.Nick) + if(not IsHere(qPieces)) then qPieces = {} end + end elseif(sMoDB == "LUA") then - local iCnt = 0; qPieces = {} local tCache = libCache[defP.Name] - local pkModel = makP:GetColumnName(1) - local sLineID = makP:GetColumnName(4) - local sClass = GetOpVar("ENTITY_DEFCLASS") - for mod, rec in pairs(tCache) do - if(rec.Type == sType) then - local iID, tOffs = 1, rec.Offs -- Start from the first point - local rPOA = tOffs[iID]; if(not IsHere(rPOA)) then - LogInstance("Missing point ID "..GetReport(iID, rec.Slot)) - fE:Flush(); fE:Close(); fS:Close(); return - end - while(rPOA) do - iCnt = (iCnt + 1); qPieces[iCnt] = {} -- Allocate row memory - local qRow = qPieces[iCnt] - local sP, sO, sA = rPOA.P:Export(rPOA.O), rPOA.O:Export(), rPOA.A:Export() - local sC = (IsHere(rec.Unit) and tostring(rec.Unit) or noSQL) - sC = ((sC == sClass) and noSQL or sC) -- Export default class as noSQL - qRow[makP:GetColumnName(1)] = rec.Slot - qRow[makP:GetColumnName(2)] = rec.Type - qRow[makP:GetColumnName(3)] = rec.Name - qRow[makP:GetColumnName(4)] = iID - qRow[makP:GetColumnName(5)] = sP - qRow[makP:GetColumnName(6)] = sO - qRow[makP:GetColumnName(7)] = sA - qRow[makP:GetColumnName(8)] = sC - iID = (iID + 1); rPOA = tOffs[iID] - end - end - end - local tSort = Sort(qPieces, {pkModel, sLineID}); if(not tSort) then - LogInstance("Sort cache mismatch"); return end; tableEmpty(qPieces) - for iD = 1, tSort.Size do qPieces[iD] = tSort[iD].Rec end + if(not IsHere(tCache)) then fE:Flush(); fE:Close(); fS:Close() + LogInstance("Cache missing",defP.Nick) ; return false end + local fsLog = GetOpVar("FORM_LOGSOURCE"); qPieces = {} + local ssLog = "*"..fsLog:format(defP.Nick,sFunc,"%s") + local bS, sR = pcall(defP.Cache[sFunc], fE, fS, sType, makP, tCache, qPieces, ssLog:format("Cache")) + if(not bS) then fE:Flush(); fE:Close(); fS:Close() + LogInstance("Cache manager error: "..sR,defP.Nick) ; return end + if(not sR) then fE:Flush(); fE:Close(); fS:Close() + LogInstance("Cache routine fail",defP.Nick) ; return end else - LogInstance("Unsupported mode "..GetReport(sMoDB)) + LogInstance("Unsupported mode "..GetReport(sMoDB),defP.Nick) fE:Flush(); fE:Close(); fS:Close(); return end if(IsHere(qPieces) and IsHere(qPieces[1])) then @@ -4028,19 +4314,111 @@ function ExportTypeAR(sType) fE:Write("asmlib.WorkshopID(myAddon)\n") end elseif(sLine:find(patPiece)) then isSkip = true - ExportPiecesAR(fE, qPieces, "myPieces", sInd, qAdditions) + if(not ExportContentsRun(fE, qPieces, "myPieces", sInd, qAdditions)) then + LogInstance("Pieces variable fail "..GetReport(patPiece,sLine),defP.Nick) + fE:Flush(); fE:Close(); fS:Close(); return + end elseif(sLine:find(patAddit)) then isSkip = true - ExportPiecesAR(fE, qAdditions, "myAdditions", sInd) + if(not ExportContentsRun(fE, qAdditions, "myAdditions", sInd)) then + LogInstance("Additions variable fail "..GetReport(patAddit,sLine),defP.Nick) + fE:Flush(); fE:Close(); fS:Close(); return + end else if(isSkip and IsBlank(sLine:Trim())) then isSkip = false end end if(not isSkip) then if(isEOF) then fE:Write(sLine) else fE:Write(sLine.."\n") end end - end - fE:Write("\n"); fE:Flush() - fE:Close(); fS:Close() - end + end; fE:Write("\n") + else LogInstance("Export content missing "..GetReport(sMoDB),defP.Nick) end + fE:Flush(); fE:Close(); fS:Close() +end + +--[[ + * This function extracts some track type from the database and creates + * dedicated DSV files adding the given type argument + * to the database by using external plugable DSV prefix list + * sType > Track type the DSV files are created for +]] +function ExportTypeDSV(sType, sDelim) + if(not isstring(sType)) then + LogInstance("Type mismatch "..GetReport(sType)); return false end + local fPref = sType:gsub("[^%w]","_"):lower() + local tHew = GetOpVar("PATTEM_EXDSVHED") + local makP = GetBuilderNick("PIECES"); if(not IsHere(makP)) then + LogInstance("("..fPref..") Missing pieces builder"); return false end + local defP = makP:GetDefinition(); if(not IsHere(defP)) then + LogInstance("("..fPref..") Missing pieces definition"); return nil end + local makA = GetBuilderNick("ADDITIONS"); if(not IsHere(makA)) then + LogInstance("("..fPref..") Missing additions builder"); return false end + local defA = makA:GetDefinition(); if(not IsHere(defA)) then + LogInstance("("..fPref..") Missing additions definition"); return nil end + local sMoDB, sFunc = GetOpVar("MODE_DATABASE"), debugGetinfo(1).name + local sDelim, fMon = tostring(sDelim or "\t"):sub(1,1), "["..sMoDB:lower().."-dsv]" + local pNam = GetLibraryPath(GetOpVar("DIRPATH_EXP"), fMon..fPref, defP.Name) + local aNam = GetLibraryPath(GetOpVar("DIRPATH_EXP"), fMon..fPref, defA.Name) + local P = fileOpen(pNam, "wb", "DATA"); if(not P) then + LogInstance("("..fPref..")("..fName..") Open fail"); return false end + local A = fileOpen(aNam, "wb", "DATA"); if(not A) then + LogInstance("("..fPref..")("..fName..") Open fail"); return false end + P:Write("# "..sFunc..":"..tHew[2]:format(fPref,defP.Nick,sDelim).." "..GetDateTime().." [ "..sMoDB.." ]\n") + P:Write("# "..defP.Nick..":("..makP:GetColumnList(sDelim)..")\n") + A:Write("# "..sFunc..":"..tHew[2]:format(fPref,defA.Nick,sDelim).." "..GetDateTime().." [ "..sMoDB.." ]\n") + A:Write("# "..defA.Nick..":("..makA:GetColumnList(sDelim)..")\n") + if(sMoDB == "SQL") then + local qsNov = GetOpVar("MISS_NOAV") + local qsKey = GetOpVar("FORM_KEYSTMT") + local qType = makP:Match(sType, 2, true) + local qInxP = qsKey:format(sFunc, defP.Nick) + local qInxA = qsKey:format(sFunc, defA.Nick) + local Q = makP:Get(qInxP, qType); if(not IsHere(Q)) then local tQ = defP.Query[sFunc] + Q = makP:Select():Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qInxP):Get(qInxP, qType) end + if(not IsHere(Q)) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") Build statement failed",defP.Nick); return false end + P:Write("# Query:<"..Q..">\n") + local qP = sqlQuery(Q); if(not qP and isbool(qP)) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") SQL exec error "..GetReport(sqlLastError(), Q), defP.Nick); return false end + if(not IsHere(qP) or IsEmpty(qP)) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") No data found "..GetReport(Q), defP.Nick); return false end + local coMo, coLI, rwM = makP:GetColumnName(1), makP:GetColumnName(4), "" + for iP = 1, #qP do + P:Write(defP.Name..sDelim..makP:GetConcat(qP[iP], sDelim, + function(iCP, sCP, vCP) + rwM = (sCP == coMo and vCP or rwM) + if(sCP == coLI and (tonumber(vCP) or 0) == 1) then + local qrMo = makP:Match(rwM, 1, true) + local Q = makA:Get(qInxA, qrMo); if(not IsHere(Q)) then local tQ = defA.Query[sFunc] + Q = makA:Select():Where(unpack(tQ.W)):Order(unpack(tQ.O)):Store(qInxA):Get(qInxA, qrMo) end + if(not IsHere(Q)) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") Build statement failed",defA.Nick); return qsNov end + if(iP == 1) then A:Write("# Query:<"..Q..">\n") end + local qA = sqlQuery(Q); if(not qA and isbool(qA)) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") SQL exec error "..GetReport(sqlLastError(), Q), defA.Nick); return qsNov end + if(not IsHere(qA) or IsEmpty(qA)) then + LogInstance("("..fPref..") No data found "..GetReport(Q), defA.Nick) + else + for iA = 1, #qA do + A:Write(defA.Name..sDelim..makA:GetConcat(qA[iA], sDelim, + function(iCA, sCA, vCA) return makA:Match(vCA,iCA,true,"\"",true) end).."\n") + end + end + end; return makP:Match(vCP,iCP,true,"\"",true) end).."\n") + end -- Matching will not crash as it is matched during insertion + elseif(sMoDB == "LUA") then + local fsLog = GetOpVar("FORM_LOGSOURCE") -- Read the log source format + local ssLog = "*"..fsLog:format(defP.Nick,sFunc,"%s") + local PCache, ACache = libCache[defP.Name], libCache[defA.Name] + if(not IsHere(PCache)) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") Cache missing",defP.Nick) ; return false end + local bS, sR = pcall(defP.Cache[sFunc], P, makP, PCache, A, makA, ACache, fPref, sDelim, ssLog:format("Cache")) + if(not bS) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") Cache manager error: "..sR,defP.Nick) ; return false end + if(not sR) then P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") Cache routine fail",defP.Nick) ; return false end + else P:Flush(); P:Close(); A:Flush(); A:Close() + LogInstance("("..fPref..") Unsupported mode "..GetReport(sMoDB, fName),defP.Nick); return false + end -- The dynamic cache population was successful then send a message + P:Flush(); P:Close(); A:Flush(); A:Close(); LogInstance("("..fPref..") Success"); return true end ----------------------------- SNAPPING ------------------------------ @@ -4115,7 +4493,7 @@ function GetNearest(vHit, tVec) if(mL and mD) then -- Length is allocated if(nT <= mL) then mD, mL = iD, nT end else mD, mL = iD, nT end; iD = (iD + 1) - end; return mD, mathSqrt(mL) + end; return mD, mL end --[[ @@ -4141,7 +4519,7 @@ function GetNormalSpawn(oPly,ucsPos,ucsAng,shdModel,ivhdPoID, stSpawn.HRec = hdRec if(ucsPos) then stSpawn.BPos:Set(ucsPos) end if(ucsAng) then stSpawn.BAng:Set(ucsAng) end - stSpawn.OPos:Set(stSpawn.BPos); stSpawn.OAng:Set(stSpawn.BAng); + stSpawn.OPos:Set(stSpawn.BPos); stSpawn.OAng:Set(stSpawn.BAng) -- Initialize F, R, U Copy the UCS like that to support database POA stSpawn.ANxt:SetUnpacked(tonumber(ucsAngP) or 0, tonumber(ucsAngY) or 0, @@ -4153,7 +4531,7 @@ function GetNormalSpawn(oPly,ucsPos,ucsAng,shdModel,ivhdPoID, if(not (stSpawn.ANxt:IsZero() and stSpawn.PNxt:IsZero())) then NegAngle(stSpawn.ANxt, true, true, false) local vW, aW = LocalToWorld(stSpawn.PNxt, stSpawn.ANxt, stSpawn.BPos, stSpawn.BAng) - stSpawn.OPos:Set(vW); stSpawn.OAng:Set(aW); + stSpawn.OPos:Set(vW); stSpawn.OAng:Set(aW) stSpawn.F:Set(stSpawn.OAng:Forward()) stSpawn.R:Set(stSpawn.OAng:Right()) stSpawn.U:Set(stSpawn.OAng:Up()) @@ -4252,7 +4630,7 @@ end * ivPoID > Point ID selected for its model * nLen > Length of the trace ]] -function GetTraceEntityPoint(trEnt, ivPoID, nLen) +function GetTraceEntityPoint(trEnt, ivPoID, nLen, vDir) if(not (trEnt and trEnt:IsValid())) then LogInstance("Trace entity invalid"); return nil end local nLen = (tonumber(nLen) or 0); if(nLen <= 0) then @@ -4262,13 +4640,16 @@ function GetTraceEntityPoint(trEnt, ivPoID, nLen) local trPOA = LocatePOA(trRec, ivPoID); if(not IsHere(trPOA)) then LogInstance("Point missing "..GetReport(ivPoID)); return nil end local trDt, trAng = GetOpVar("TRACE_DATA"), Angle() + trDt.length = nLen trDt.start:SetUnpacked(trPOA.O:Get()) trDt.start:Rotate(trEnt:GetAngles()) trDt.start:Add(trEnt:GetPos()) trAng:SetUnpacked(trPOA.A:Get()) trAng:Set(trEnt:LocalToWorldAngles(trAng)) - trDt.endpos:Set(trAng:Forward()); trDt.endpos:Mul(nLen) - trDt.endpos:Add(trDt.start); SetOpVar("TRACE_FILTER", trEnt) + trDt.endpos:Set(vDir or trAng:Forward()) + trDt.endpos:Mul(trDt.length) + trDt.endpos:Add(trDt.start) + SetOpVar("TRACE_FILTER", trEnt) return utilTraceLine(trDt), trDt end @@ -4282,7 +4663,7 @@ function ProjectRay(vO, vD, vP) local vN = vD:GetNormalized() local vX = Vector(vP); vX:Sub(vO) local nD = vX:Dot(vN); vX:Set(vN) - vX:Mul(nD); vX:Add(vO); + vX:Mul(nD); vX:Add(vO) return nD, vN, vX end @@ -4484,62 +4865,67 @@ end function AttachAdditions(ePiece) if(not (ePiece and ePiece:IsValid())) then LogInstance("Piece invalid"); return false end - local eAng, ePos, sMoc = ePiece:GetAngles(), ePiece:GetPos(), ePiece:GetModel() + local sMoc, dCass = ePiece:GetModel(), GetOpVar("ENTITY_DEFCLASS") local stData = CacheQueryAdditions(sMoc); if(not IsHere(stData)) then - LogInstance("Model skip "..GetReport(sMoc)); return true end - local makTab, iCnt = GetBuilderNick("ADDITIONS"), 1; if(not IsHere(makTab)) then + LogInstance("Skip attaching "..GetReport(sMoc)); return true end + local makTab = GetBuilderNick("ADDITIONS"); if(not IsHere(makTab)) then LogInstance("Missing table definition"); return nil end - local sEoa = GetOpVar("OPSYM_ENTPOSANG"); LogInstance("PIECE:MODEL("..sMoc..")") - while(stData[iCnt]) do -- While additions are present keep adding them - local arRec = stData[iCnt]; LogInstance("PIECE:ADDITION("..iCnt..")") - local dCass, oPOA = GetOpVar("ENTITY_DEFCLASS"), NewPOA() - local sCass = GetEmpty(arRec[makTab:GetColumnName(3)], nil, dCass) + local ePos, eAng = ePiece:GetPos(), ePiece:GetAngles() + local coMA, oPOA = makTab:GetColumnName(2), NewPOA() + local coEN, coLI = makTab:GetColumnName(3), makTab:GetColumnName(4) + local coPO, coAN = makTab:GetColumnName(5), makTab:GetColumnName(6) + local coMO, coPI = makTab:GetColumnName(7), makTab:GetColumnName(8) + local coDR, coPM = makTab:GetColumnName(9), makTab:GetColumnName(10) + local coPS, coSE = makTab:GetColumnName(11), makTab:GetColumnName(12) + LogInstance("PIECE:MODEL("..sMoc..")") -- Start processing for the base model + for iA = 1, stData.Size do -- While additions are present keep adding them + local arRec = stData[iA]; LogInstance("PIECE:ADDITION("..iA..")") + local sCass = GetEmpty(arRec[coEN], nil, dCass) local eBonus = entsCreate(sCass); LogInstance("ents.Create("..sCass..")") if(eBonus and eBonus:IsValid()) then - local sMoa = tostring(arRec[makTab:GetColumnName(2)]); if(not IsModel(sMoa, true)) then - LogInstance("Invalid attachment "..GetReport(iCnt, sMoc, sMoa)); return false end + local sMoa = tostring(arRec[coMA]); if(not IsModel(sMoa, true)) then + LogInstance("Invalid attachment "..GetReport(iA, sMoc, sMoa)); return false end eBonus:SetModel(sMoa) LogInstance("ENT:SetModel("..sMoa..")") - local sPos = arRec[makTab:GetColumnName(5)]; if(not isstring(sPos)) then - LogInstance("Position mismatch "..GetReport(iCnt, sMoc, sPos)); return false end + local sPos = arRec[coPO]; if(not isstring(sPos)) then + LogInstance("Position mismatch "..GetReport(iA, sMoc, sPos)); return false end if(not GetEmpty(sPos)) then oPOA:Decode(sPos, eBonus, "Pos") local vPos = oPOA:Vector(); vPos:Set(ePiece:LocalToWorld(vPos)) eBonus:SetPos(vPos); LogInstance("ENT:SetPos(DB)") else eBonus:SetPos(ePos); LogInstance("ENT:SetPos(PIECE:POS)") end - local sAng = arRec[makTab:GetColumnName(6)]; if(not isstring(sAng)) then - LogInstance("Angle mismatch "..GetReport(iCnt, sMoc, sAng)); return false end + local sAng = arRec[coAN]; if(not isstring(sAng)) then + LogInstance("Angle mismatch "..GetReport(iA, sMoc, sAng)); return false end if(not GetEmpty(sAng)) then oPOA:Decode(sAng, eBonus, "Ang") local aAng = oPOA:Angle(); aAng:Set(ePiece:LocalToWorldAngles(aAng)) eBonus:SetAngles(aAng); LogInstance("ENT:SetAngles(DB)") else eBonus:SetAngles(eAng); LogInstance("ENT:SetAngles(PIECE:ANG)") end - local nMo = (tonumber(arRec[makTab:GetColumnName(7)]) or -1) + local nMo = (tonumber(arRec[coMO]) or -1) if(nMo >= 0) then eBonus:SetMoveType(nMo) LogInstance("ENT:SetMoveType("..nMo..")") end - local nPh = (tonumber(arRec[makTab:GetColumnName(8)]) or -1) + local nPh = (tonumber(arRec[coPI]) or -1) if(nPh >= 0) then eBonus:PhysicsInit(nPh) LogInstance("ENT:PhysicsInit("..nPh..")") end - local nSh = (tonumber(arRec[makTab:GetColumnName(9)]) or 0) + local nSh = (tonumber(arRec[coDR]) or 0) if(nSh ~= 0) then nSh = (nSh > 0); eBonus:DrawShadow(nSh) LogInstance("ENT:DrawShadow("..tostring(nSh)..")") end eBonus:SetParent(ePiece); LogInstance("ENT:SetParent(PIECE)") eBonus:Spawn(); LogInstance("ENT:Spawn()") pPonus = eBonus:GetPhysicsObject() if(pPonus and pPonus:IsValid()) then - local bEm = (tonumber(arRec[makTab:GetColumnName(10)]) or 0) + local bEm = (tonumber(arRec[coPM]) or 0) if(bEm ~= 0) then bEm = (bEm > 0); pPonus:EnableMotion(bEm) LogInstance("ENT:EnableMotion("..tostring(bEm)..")") end - local nZe = (tonumber(arRec[makTab:GetColumnName(11)]) or 0) + local nZe = (tonumber(arRec[coPS]) or 0) if(nZe > 0) then pPonus:Sleep(); LogInstance("ENT:Sleep()") end end eBonus:Activate(); LogInstance("ENT:Activate()") ePiece:DeleteOnRemove(eBonus); LogInstance("PIECE:DeleteOnRemove(ENT)") - local nSo = (tonumber(arRec[makTab:GetColumnName(12)]) or -1) + local nSo = (tonumber(arRec[coSE]) or -1) if(nSo >= 0) then eBonus:SetSolid(nSo) LogInstance("ENT:SetSolid("..tostring(nSo)..")") end else - local mA = stData[iCnt][makTab:GetColumnName(2)] - local mC = stData[iCnt][makTab:GetColumnName(3)] - LogInstance("Entity invalid "..GetReport(iCnt, sMoc, mA, mC)); return false - end; iCnt = iCnt + 1 + local mA, mC = arRec[coMA], arRec[coEN] + LogInstance("Entity invalid "..GetReport(iA, sMoc, mA, mC)); return false + end end; LogInstance("Success"); return true end @@ -4558,14 +4944,18 @@ function GetEntityOrTrace(oEnt) LogInstance("Success "..tostring(trEnt)); return trEnt end +--[[ + * Reads a skin code from a given entity + * oEnt > The entity to read to code from +]] function GetPropSkin(oEnt) - local skEnt = GetEntityOrTrace(oEnt); if(not IsHere(skEnt)) then + local oEnt = GetEntityOrTrace(oEnt); if(not IsHere(oEnt)) then LogInstance("Failed to gather entity"); return "" end - if(IsOther(skEnt)) then + if(IsOther(oEnt)) then LogInstance("Entity other type"); return "" end - local Skin = tonumber(skEnt:GetSkin()); if(not IsHere(Skin)) then + local nRes = tonumber(oEnt:GetSkin()); if(not IsHere(nRes)) then LogInstance("Skin number mismatch"); return "" end - LogInstance("Success "..tostring(skEn)); return tostring(Skin) + LogInstance("Success "..tostring(skEn)); return tostring(mathFloor(nRes)) end --[[ @@ -4573,38 +4963,38 @@ end * oEnt > The entity to read to code from ]] function GetPropBodyGroup(oEnt) - local bgEnt = GetEntityOrTrace(oEnt); if(not IsHere(bgEnt)) then + local oEnt = GetEntityOrTrace(oEnt); if(not IsHere(oEnt)) then LogInstance("Failed to gather entity"); return "" end - if(IsOther(bgEnt)) then + if(IsOther(oEnt)) then LogInstance("Entity other type"); return "" end - local tBG = bgEnt:GetBodyGroups(); if(not (tBG and tBG[1])) then + local tBG = oEnt:GetBodyGroups(); if(not (tBG and tBG[1])) then LogInstance("Bodygroup table empty"); return "" end - local sRez, iCnt, symSep = "", 1, GetOpVar("OPSYM_SEPARATOR") - while(tBG[iCnt]) do local iD = tBG[iCnt].id -- Read ID - local sD = bgEnt:GetBodygroup(iD) -- Read value by ID - sRez = sRez..symSep..tostring(sD or 0) -- Attach - LogInstance("GetBodygroup "..GetReport(iCnt, iD, sD)) - iCnt = iCnt + 1 -- Prepare to take the next value - end; sRez = sRez:sub(2, -1) -- Remove last separator - LogInstance("Success "..GetReport(sRez)); return sRez + local sRes, iB, sySep = "", 1, GetOpVar("OPSYM_SEPARATOR") + while(tBG[iB]) do local iD = tBG[iB].id -- Read ID + local sD = oEnt:GetBodygroup(iD) -- Read value by ID + sRes = sRes..sySep..tostring(sD or 0) -- Attach + LogInstance("GetBodygroup "..GetReport(iB, iD, sD)) + iB = iB + 1 -- Prepare to take the next value + end; sRes = sRes:sub(2, -1) -- Remove last separator + LogInstance("Success "..GetReport(sRes)); return sRes end --[[ - * Attach bodygroup code to a given entity + * Apply bodygroup code to a given entity * oEnt > The entity to attach the code for + * sBG > Bodygroup code to attach like 1,2,3,4 ]] -function AttachBodyGroups(ePiece,sBgID) - if(not (ePiece and ePiece:IsValid())) then +function ApplyBodyGroups(oEnt, sBG) + if(not (oEnt and oEnt:IsValid())) then LogInstance("Base entity invalid"); return false end - local sBgID = tostring(sBgID or "") - local iCnt, tBG = 1, ePiece:GetBodyGroups() - local IDs = GetOpVar("OPSYM_SEPARATOR"):Explode(sBgID) - while(tBG[iCnt] and IDs[iCnt]) do local vBG = tBG[iCnt] - local maxID = (ePiece:GetBodygroupCount(vBG.id) - 1) - local curID = mathClamp(mathFloor(tonumber(IDs[iCnt]) or 0), 0, maxID) - LogInstance("SetBodygroup "..GetReport(iCnt, vBG.id, maxID, curID)) - ePiece:SetBodygroup(vBG.id, curID); iCnt = iCnt + 1 - end; LogInstance("Success "..GetReport(sBgID)); return true + local sBG, tBG, iB = tostring(sBG or ""), oEnt:GetBodyGroups(), 1 + local tID = GetOpVar("OPSYM_SEPARATOR"):Explode(sBG) + while(tBG[iB] and tID[iB]) do local vBG = tBG[iB] + local mBG = (oEnt:GetBodygroupCount(vBG.id) - 1) + local cBG = mathClamp(mathFloor(tonumber(tID[iB]) or 0), 0, mBG) + LogInstance("SetBodygroup "..GetReport(iB, vBG.id, mBG, cBG)) + oEnt:SetBodygroup(vBG.id, cBG); iB = iB + 1 + end; LogInstance("Success "..GetReport(sBG)); return true end function SetPosBound(ePiece,vPos,oPly,sMode) @@ -4651,7 +5041,7 @@ function InSpawnMargin(oPly,oRec,vPos,aAng) else -- Otherwise create memory entry and sore the piece location oRec.Mpos, oRec.Mray = Vector(vPos), aAng:Forward() return false -- Store the last location the piece was spawned - end -- Otherwise wipe the current memoty when not provided + end -- Otherwise wipe the current memory when not provided else oRec.Mpos, oRec.Mray = nil, nil end; return false end @@ -4698,7 +5088,7 @@ function NewPiece(pPly,sModel,vPos,aAng,nMass,sBgSkIDs,clColor,sMode) if(nMass > 0) then pPiece:SetMass(nMass) end -- Mass equal zero use model mass local tBgSk = GetOpVar("OPSYM_DIRECTORY"):Explode(sBgSkIDs or "") ePiece:SetSkin(mathClamp(tonumber(tBgSk[2]) or 0, 0, ePiece:SkinCount()-1)) - if(not AttachBodyGroups(ePiece, tBgSk[1])) then ePiece:Remove() + if(not ApplyBodyGroups(ePiece, tBgSk[1])) then ePiece:Remove() LogInstance("Failed attaching bodygroups"); return nil end if(not AttachAdditions(ePiece)) then ePiece:Remove() LogInstance("Failed attaching additions"); return nil end @@ -5035,14 +5425,15 @@ end * bCol > When enabled calls the garbage collector * Well gang, I guess that wraps up the mystery. ]] -function ClearGhosts(vSiz, bCol) +function ClearGhosts(vSiz, vStr, bCol) if(SERVER) then return true end local tGho = GetOpVar("ARRAY_GHOST") if(not IsHere(tGho)) then return true end if(tGho.Size == 0) then return true end + local iStr = mathFloor(tonumber(vStr) or 1) local iSiz = mathCeil(tonumber(vSiz) or tGho.Size) local nDer = GetOpVar("DELAY_REMOVE") - for iD = 1, iSiz do local eGho = tGho[iD] + for iD = iStr, iSiz do local eGho = tGho[iD] SafeRemoveEntityDelayed(eGho, nDer) end; tGho.Size, tGho.Slot = 0, GetOpVar("MISS_NOMD") if(bCol) then collectgarbage() end; return true @@ -5103,25 +5494,20 @@ end * Not until we walk around the ghost town and see what we can find. ]] function NewGhosts(nCnt, sModel) -- Only he's not a shadow, he's a green ghost! - if(SERVER) then return true end -- Ghosting is client side only - local tGho = GetOpVar("ARRAY_GHOST") -- Read ghosts stack array + if(SERVER) then return true end -- Leave it to Daphne to pick the wrong door! + local tGho = GetOpVar("ARRAY_GHOST") -- Let's split up and look for clues! if(not IsHere(tGho)) then return true end -- Not available then nothing to do if(nCnt == 0 and tGho.Size == 0) then return true end -- Skip processing - if(nCnt == 0 and tGho.Size ~= 0) then return ClearGhosts() end -- Disabled ghosting - local iD = 1; FadeGhosts(true) -- Fade the current ghost stack - while(iD <= nCnt) do local eGho = tGho[iD] + if(nCnt == 0 and tGho.Size ~= 0) then return ClearGhosts() end -- Disabled + FadeGhosts(true); ClearGhosts(nil, nCnt + 1) -- Trim the current ghost stack + for iD = 1, nCnt do local eGho = tGho[iD] -- Let's set a trap! if(eGho and eGho:IsValid()) then eGho:SetNoDraw(true) if(eGho:GetModel() ~= sModel) then eGho:SetModel(sModel) end - else -- Reconfigure the first `nCnt` ghosts + else -- Great, but next time, please don't do me any favors. tGho[iD] = NewEntityGhost(sModel); eGho = tGho[iD] - if(not (eGho and eGho:IsValid())) then ClearGhosts(iD) + if(not (eGho and eGho:IsValid())) then ClearGhosts(nCnt) LogInstance("Invalid "..GetReport(iD, sModel)); return false end - end; iD = iD + 1 -- Fade all the ghosts and refresh these that must be drawn - end -- Remove all others that must not be drawn to save memory - local nDer = GetOpVar("DELAY_REMOVE") - for iR = iD, tGho.Size do -- Executes only when (nCnt <= tGho.Size) - local eGho = tGho[iR] -- Read the current ghosted entity - SafeRemoveEntityDelayed(eGho, nDer) -- Make sure the item is NIL + end -- Fade all the ghosts and refresh these that must be drawn end; tGho.Size, tGho.Slot = nCnt, sModel; return true end @@ -5132,20 +5518,21 @@ end ]] function GetHookInfo(sW) if(SERVER) then return nil end + local sTo = GetOpVar("TOOLNAME_NL") local sDe = GetOpVar("TOOL_DEFMODE") local sWe = tostring(sW or sDe) local oPly = LocalPlayer(); if(not IsPlayer(oPly)) then LogInstance("Player invalid"); return nil end local acSw = oPly:GetActiveWeapon(); if(not IsValid(acSw)) then LogInstance("Swep invalid"); return nil end - if(acSw:GetClass() ~= sWe) then - LogInstance("Swep other "..GetReport(sWe)); return nil end + local uWe = acSw:GetClass(); if(uWe ~= sWe) then + LogInstance("Swep other "..GetReport(sWe, uWe)); return nil end if(sWe ~= sDe) then return oPly, acSw end - if(acSw:GetMode() ~= GetOpVar("TOOLNAME_NL")) then - LogInstance("Tool different"); return nil end + local uTo = acSw:GetMode(); if(uTo ~= sTo) then + LogInstance("Mode different "..GetReport(sTo, uTo)); return nil end -- Here player is holding the track assembly tool local acTo = acSw:GetToolObject(); if(not acTo) then - LogInstance("Tool invalid"); return nil end + LogInstance("Tool invalid "..GetReport(uWe, uTo)); return nil end return oPly, acSw, acTo end @@ -5388,7 +5775,7 @@ function UpdateCurveSnap(oPly, iD, nD) local vP2, vN2 = tC.CNode[iD + 1], tC.CNorm[iD + 1] local nS, nE = vP0:Distance(vP1), vP0:Distance(vP2) if(nS <= nD and nE >= nD) then - tC.SSize = (tC.SSize + 1) tC.Snap[tC.SSize] = {Size = 0, ID = tC.SSize}; + tC.SSize = (tC.SSize + 1) tC.Snap[tC.SSize] = {Size = 0, ID = tC.SSize} local tO, nL = UpdateCurveNormUCS(oPly, vP1, vN1, vP2, vN2, vP0, nD) while(nL > nD) do -- First segment track is snapped but end is not reached tO, nL = UpdateCurveNormUCS(oPly, vP0, vN0, vP2, vN2, vP0, nD) end diff --git a/lua/weapons/gmod_tool/stools/trackassembly.lua b/lua/weapons/gmod_tool/stools/trackassembly.lua index 84459c28..f5aa45eb 100644 --- a/lua/weapons/gmod_tool/stools/trackassembly.lua +++ b/lua/weapons/gmod_tool/stools/trackassembly.lua @@ -24,6 +24,7 @@ local netWriteBool = net and net.WriteBool local netWriteAngle = net and net.WriteAngle local netWriteEntity = net and net.WriteEntity local netWriteVector = net and net.WriteVector +local netWriteNormal = net and net.WriteNormal local vguiCreate = vgui and vgui.Create local stringUpper = string and string.upper local mathAbs = math and math.abs @@ -141,6 +142,7 @@ TOOL.ClientConVar = { [ "upspanchor" ] = 0, [ "crvturnlm" ] = 0.95, [ "crvleanlm" ] = 0.95, + [ "crvsuprev" ] = 0.45, [ "flipoverid" ] = "" } @@ -203,6 +205,10 @@ TOOL.Category = languageGetPhrase and languageGetPhrase("tool."..gsToolNameL.. TOOL.Command = nil -- Command on click (nil for default) TOOL.ConfigName = nil -- Configure file name (nil for default) +function TOOL:GetSuperElevation() + return mathClamp(self:GetClientNumber("crvsuprev", 0), 0, 1) +end + function TOOL:GetCurveFactor() return asmlib.GetAsmConvar("curvefact", "FLT") end @@ -786,15 +792,15 @@ end --[[ * Uses heuristics to provide the best suitable location the * curve note closest location can be updated with. Three cases: - * 1. Both neighbors are active points. Intersect their active rays - * 2. Only one node is an active point. Project on its active ray - * 3. None of the neighbors are active points. Project on line bisector * iD > Curve node index to be updated * vPnt > The new location to update the node with * bMute > Mute mode. Used to disable server status messages * Returns multiple values: - * 1. Curve node calculated heuristics location vector - * 2. The amount of neighbor nodes that are active rays + * V > Curve node calculated heuristics location vector + * N > The amount of neighbor nodes that are active rays + * (2) Both neighbors are active points. Intersect their active rays + * (1) Only one node is an active point. Project on its active ray + * (0) None of the neighbors are active points. Project on line bisector ]]-- function TOOL:GetCurveNodeActive(iD, vPnt, bMute) local user = self:GetOwner() @@ -862,16 +868,25 @@ function TOOL:CurveClear(bAll, bMute) tableRemove(tC.Rays) tableEmpty(tC.Snap); tC.SSize = 0 tableRemove(tC.Base); tC.Size = (tC.Size - 1) + if(tC.Size and tC.Size > 0) then + tC.Norm[tC.Size]:Set(tC.Rays[tC.Size][2]:Up()) + end end end; return tC -- Returns the updated curve nodes table end +--[[ + * Generates curve transform data structure + * It is used to create data for the curve nodes + * stTrace > Trace structure being used for generation + * bPnt > Whenever the generation is from active point +]] function TOOL:GetCurveTransform(stTrace, bPnt) if(not stTrace) then asmlib.LogInstance("Trace missing", gtLogs); return nil end if(not stTrace.Hit) then asmlib.LogInstance("Trace not hit", gtLogs); return nil end - local user = self:GetOwner() + local user, nT = self:GetOwner(), 0 local angsnap = self:GetAngSnap() local elevpnt = self:GetElevation() local surfsnap = self:GetSurfaceSnap() @@ -895,11 +910,16 @@ function TOOL:GetCurveTransform(stTrace, bPnt) tData.Orw:Set(tData.Org); tData.Anw:Set(tData.Ang) -- Transform of POA tData.ID = oID; tData.Min = oMin -- Point ID and minimum distance tData.POA = oPOA; tData.Rec = oRec -- POA and cache record + local trRz, trDt = asmlib.GetTraceEntityPoint(eEnt, oID, 30000, asmlib.GetOpVar("VEC_DW")) + if(trRz and trRz.Hit) then + nT = (trDt.length * trRz.Fraction - elevpnt) + asmlib.SetAsmConvar(user, "nextz", nT) + end end -- Use the track piece active end to create relative curve node else -- Offset the curve node when it is not driven by an active point tData.Org:Add(vNrm * elevpnt) -- Apply model active point elevation end -- Apply the positional and angular offsets to the return value - tData.Org:Add(tData.Ang:Up() * nextz) + tData.Org:Add(tData.Ang:Up() * (nextz - nT)) tData.Org:Add(tData.Ang:Right() * nexty) tData.Org:Add(tData.Ang:Forward() * nextx) tData.Ang:RotateAroundAxis(tData.Ang:Up() ,-nextyaw) @@ -908,12 +928,58 @@ function TOOL:GetCurveTransform(stTrace, bPnt) return tData end +--[[ + * Used to apply super-elevation on the previous node + * according to the location of the next node placed + * Must be run BEFORE inserting the new node placed + * tC > Curve data stricture with the normal modified + * tData > Reference to the node being inserted +]] +function TOOL:ApplySuperElevation(tC, tData, iD) + if(not tData) then -- The node being managed + asmlib.LogInstance("Data missing", gtLogs); return 0 end + if(not tC) then -- The curve containing all nodes + asmlib.LogInstance("Curve missing", gtLogs); return 0 end + local spnflat = self:GetSpawnFlat() + local crvsuprev = self:GetSuperElevation() + if(not (crvsuprev > 0 and not spnflat)) then + asmlib.LogInstance("Auto roll disabled", gtLogs); return 0 end + local iN, nS = tonumber(iD), asmlib.GetOpVar("FULL_SLOPEDG") + if(iN) then + local tR = tC.Rays + local tO, tN = tC.Node, tC.Norm + local vL, vP = tO[iN+1], tO[iN-1] + if(not (vL and vP)) then return 0 end + local vD = Vector(vL); vD:Sub(tData.Org); vD:Normalize() + local vF = Vector(vL); vF:Sub(vP); vF:Normalize() + local aN = vF:AngleEx(tR[iN][2]:Up()) + local nP = (crvsuprev * nS) * vD:Dot(aN:Right()) + aN:RotateAroundAxis(vF, nP) + local vN = aN:Up(); tN[iN]:Set(vN) + return iN, vN + else + if(not (tC.Size and tC.Size >= 2)) then + asmlib.LogInstance("Two vertices needed", gtLogs); return 0 end + local tR, iN = tC.Rays, tC.Size + local tO, tN = tC.Node, tC.Norm + local vL, vP = tO[iN], tO[iN - 1] + local vD = Vector(tData.Org); vD:Sub(vL); vD:Normalize() + local vF = Vector(tData.Org); vF:Sub(vP); vF:Normalize() + local aN = vF:AngleEx(tR[iN][2]:Up()) + local nP = (crvsuprev * nS) * vD:Dot(aN:Right()) + aN:RotateAroundAxis(vF, nP) + local vN = aN:Up(); tN[iN]:Set(vN) + return iN, vN + end +end + function TOOL:CurveInsert(stTrace, bPnt, bMute) local user, model = self:GetOwner(), self:GetModel() local tData = self:GetCurveTransform(stTrace, bPnt); if(not tData) then asmlib.LogInstance("Transform missing", gtLogs); return nil end local tC = asmlib.GetCacheCurve(user); if(not tC) then asmlib.LogInstance("Curve missing", gtLogs); return nil end + local iN, vN = self:ApplySuperElevation(tC, tData) tC.Size = (tC.Size + 1) -- Increment stack size. Adding stuff tableInsert(tC.Node, Vector(tData.Org)) tableInsert(tC.Norm, tData.Ang:Up()) @@ -924,11 +990,13 @@ function TOOL:CurveInsert(stTrace, bPnt, bMute) netStart(gsLibName.."SendCreateCurveNode") netWriteEntity(user) netWriteVector(tC.Node[tC.Size]) - netWriteVector(tC.Norm[tC.Size]) + netWriteNormal(tC.Norm[tC.Size]) netWriteVector(tC.Base[tC.Size]) netWriteVector(tC.Rays[tC.Size][1]) netWriteAngle (tC.Rays[tC.Size][2]) netWriteBool (tC.Rays[tC.Size][3]) + netWriteUInt (iN, 16) + if(iN > 0) then netWriteNormal(vN) end netSend(user) user:SetNWBool(gsToolPrefL.."engcurve", true) end @@ -945,7 +1013,30 @@ function TOOL:CurveUpdate(stTrace, bPnt, bMute) asmlib.Notify(user,"Populate nodes first !","ERROR") asmlib.LogInstance("Nodes missing", gtLogs); return nil end + local nrA = self:GetActiveRadius() local mD, mL = asmlib.GetNearest(tData.Hit, tC.Base) + local bTr = (mD and mD > 0 and mL < nrA^2) + if(bTr) then + if(not bPnt) then + local tN, vF = tC.Node, nil + local elevpnt = self:GetElevation() + local vB, tR = tC.Base[mD], tC.Rays[mD] + local vN, vD = tC.Norm[mD], tC.Node[mD] + local vO = Vector(); vO:Set(vD); vO:Sub(vB) + local nextx, nexty, nextz = vO:Unpack() + asmlib.SetAsmConvar(oPly,"nextx", nextx) + asmlib.SetAsmConvar(oPly,"nexty", nextx) + asmlib.SetAsmConvar(oPly,"nextz", nextz - elevpnt) + if(not (tN[mD-1] and tN[mD+1])) then vF = tR[2]:Forward() else + vF = Vector(tN[mD+1]); vF:Sub(tN[mD-1]); vF:Normalize() end + local aO = vF:AngleEx(vN) + local nextpic, nextyaw, nextrol = aO:Unpack() + asmlib.SetAsmConvar(oPly,"nextpic", nextpic) + asmlib.SetAsmConvar(oPly,"nextyaw", nextyaw) + asmlib.SetAsmConvar(oPly,"nextrol", nextrol) + return tC + end + end tC.Node[mD]:Set(tData.Org) tC.Norm[mD]:Set(tData.Ang:Up()) tC.Base[mD]:Set(tData.Hit) @@ -953,7 +1044,7 @@ function TOOL:CurveUpdate(stTrace, bPnt, bMute) tC.Rays[mD][2]:Set(tData.Ang) tC.Rays[mD][3] = (tData.POA ~= nil) -- Adjust node according to intersection - if(bPnt and not tData.POA) then + if(bPnt and not tData.POA and not bTr) then local xx = self:GetCurveNodeActive(mD, tData.Org) if(xx) then tC.Node[mD]:Set(xx) @@ -962,12 +1053,16 @@ function TOOL:CurveUpdate(stTrace, bPnt, bMute) tC.Norm[mD]:Normalize() end end + if(not bTr) then -- Try to apply the new super-elevation + local iN, vN = self:ApplySuperElevation(tC, tData, mD) + if(iN > 0) then tC.Norm[iN]:Set(vN) end + end if(not bMute) then asmlib.Notify(user, "Node ["..mD.."] updated !", "CLEANUP") netStart(gsLibName.."SendUpdateCurveNode") netWriteEntity(user) netWriteVector(tC.Node[mD]) - netWriteVector(tC.Norm[mD]) + netWriteNormal(tC.Norm[mD]) netWriteVector(tC.Base[mD]) netWriteVector(tC.Rays[mD][1]) netWriteAngle (tC.Rays[mD][2]) @@ -1182,19 +1277,18 @@ function TOOL:LeftClick(stTrace) }, function(oPly, oArg) for iD = oArg.stard, tC.SSize do tS = tC.Snap[iD] for iK = oArg.stark, tS.Size do local tV, ePiece = tS[iK], nil - oArg.spawn = asmlib.GetNormalSpawn(oPly, tV[1], tV[2], model, pointid, - nextx, nexty, nextz, nextpic, nextyaw, nextrol, oArg.spawn) + oArg.spawn = asmlib.GetNormalSpawn(oPly, tV[1], tV[2], model, pointid, 0, 0, 0, 0, 0, 0, oArg.spawn) if(not oArg.spawn) then -- Make sure it persists to set it afterwards asmlib.LogInstance(self:GetStatus(stTrace,"("..oArg.wname..") "..sItr..": Cannot obtain spawn data"),gtLogs); return false end if(crvturnlm > 0 or crvleanlm > 0) then local nF, nU = asmlib.GetTurningFactor(oPly, tS, iK) if(nF and nF < crvturnlm) then oArg.mundo = asmlib.GetReport(iD, asmlib.GetNearest(tV[1], tC.Node), ("%4.3f"):format(nF)) - asmlib.Notify(oPly, oArg.wname.." excessive turn at "..oArg.mundo.." !", "ERROR") + asmlib.Notify(oPly, oArg.wname..": excessive turn at "..oArg.mundo.." !", "ERROR") asmlib.LogInstance(self:GetStatus(stTrace,"("..oArg.wname..") "..oArg.mundo..": Turn excessive"), gtLogs); return false end if(nU and nU < crvleanlm) then oArg.mundo = asmlib.GetReport(iD, asmlib.GetNearest(tV[1], tC.Node),("%4.3f"):format(nU)) - asmlib.Notify(oPly, oArg.wname.." excessive lean at "..oArg.mundo.." !", "ERROR") + asmlib.Notify(oPly, oArg.wname..": excessive lean at "..oArg.mundo.." !", "ERROR") asmlib.LogInstance(self:GetStatus(stTrace,"("..oArg.wname..") "..oArg.mundo..": Lean excessive"), gtLogs); return false end end @@ -1364,7 +1458,7 @@ function TOOL:LeftClick(stTrace) end else -- Visual local IDs = gsSymDir:Explode(bgskids) - if(not asmlib.AttachBodyGroups(trEnt,IDs[1] or "")) then + if(not asmlib.ApplyBodyGroups(trEnt,IDs[1] or "")) then asmlib.LogInstance(self:GetStatus(stTrace,"(Bodygroup/Skin) Failed",trEnt),gtLogs); return false end trEnt:SetSkin(mathClamp(tonumber(IDs[2]) or 0,0,trEnt:SkinCount()-1)) asmlib.LogInstance("(Bodygroup/Skin) Success",gtLogs) @@ -1521,18 +1615,6 @@ function TOOL:Reload(stTrace) if(user:IsAdmin()) then if(self:GetDeveloperMode()) then asmlib.SetLogControl(self:GetLogLines(),self:GetLogFile()) end - if(self:GetExportDB()) then - if(user:KeyDown(IN_USE)) then - asmlib.SetAsmConvar(user,"openextdb") - asmlib.LogInstance("(World) Success open expdb",gtLogs) - else - asmlib.ExportDSV("PIECES") - asmlib.ExportDSV("ADDITIONS") - asmlib.ExportDSV("PHYSPROPERTIES") - asmlib.LogInstance("(World) Exporting DB",gtLogs) - end - asmlib.SetAsmConvar(user, "exportdb", 0) - end end if(user:KeyDown(IN_SPEED)) then if(workmode == 1) then @@ -1636,8 +1718,6 @@ function TOOL:UpdateGhostCurve() local stackcnt = self:GetStackCount() local pointid, pnextid = self:GetPointID() local tGho, iGho = asmlib.GetOpVar("ARRAY_GHOST"), 0 - local nextx, nexty, nextz = self:GetPosOffsets() - local nextpic, nextyaw, nextrol = self:GetAngOffsets() local bCrv = user:GetNWBool(gsToolPrefL.."engcurve", false) if(bCrv) then local workmode = self:GetWorkingMode() @@ -1657,8 +1737,7 @@ function TOOL:UpdateGhostCurve() for iD = 1, tCrv.SSize do local tS = tCrv.Snap[iD] for iK = 1, tS.Size do iGho = (iGho + 1) local tV, eGho = tS[iK], tGho[iGho] - local stSpawn = asmlib.GetNormalSpawn(user, tV[1], tV[2], model, pointid, - nextx, nexty, nextz, nextpic, nextyaw, nextrol) + local stSpawn = asmlib.GetNormalSpawn(user, tV[1], tV[2], model, pointid, 0, 0, 0, 0, 0, 0) if(eGho and eGho:IsValid()) then eGho:SetNoDraw(true) if(stackcnt > 0) then if(iGho > stackcnt) then eGho:SetNoDraw(true) else if(stSpawn) then eGho:SetPos(stSpawn.SPos); eGho:SetAngles(stSpawn.SAng); eGho:SetNoDraw(false) end end @@ -1930,7 +2009,7 @@ function TOOL:DrawCurveNode(oScreen, oPly, stTrace) if(not tData) then asmlib.LogInstance("Transform missing", gtLogs); return end local tC, nS = asmlib.GetCacheCurve(oPly), self:GetSizeUCS() if(not tC) then asmlib.LogInstance("Curve missing", gtLogs); return end - local nrB, nrS, mD, mL = 3, 1.5 + local nrB, nrS, nrA, mD, mL = 1.5, 1.5, self:GetActiveRadius() local xyO, xyH = tData.Org:ToScreen(), tData.Hit:ToScreen() local xyZ = (tData.Org + nS * tData.Ang:Up()):ToScreen() local xyX = (tData.Org + nS * tData.Ang:Forward()):ToScreen() @@ -1943,14 +2022,17 @@ function TOOL:DrawCurveNode(oScreen, oPly, stTrace) if(tC.Size and tC.Size > 0) then for iD = 1, tC.Size do local rN = (iD == 1 and nrB or nrS) - local vB, vD, vN = tC.Base[iD], tC.Node[iD], tC.Norm[iD] + local vB, tR = tC.Base[iD], tC.Rays[iD] + local vD, vN = tC.Node[iD], tC.Norm[iD] local nB = asmlib.GetViewRadius(oPly, vB, 2) local nD = asmlib.GetViewRadius(oPly, vD, rN) local xyB, xyD = vB:ToScreen(), vD:ToScreen() local xyN = (vD + nS * vN):ToScreen() + local xyF = (vD + nS * tR[2]:Forward()):ToScreen() oScreen:DrawLine(xyB, xyD, "y") oScreen:DrawCircle(xyB, nB) oScreen:DrawCircle(xyD, nD) + oScreen:DrawLine(xyF, xyD, "r") oScreen:DrawLine(xyN, xyD, "b") oScreen:DrawCircle(xyD, nD / 2, "r") if(tC.Node[iD - 1]) then @@ -1969,7 +2051,18 @@ function TOOL:DrawCurveNode(oScreen, oPly, stTrace) if(bRp and mD) then local xyN = tC.Node[mD]:ToScreen() oScreen:DrawLine(xyO, xyN, "r") - if(bPnt and not tData.POA) then + if(mL < nrA^2) then + local nP, vR = 10, oPly:GetRight() + if(bPnt) then + local vU = oPly:GetUp(); vU:Mul(-nP); vU:Add(tData.Org) + oScreen:DrawLine(xyO, (vU + nP * vR):ToScreen(), "m") + oScreen:DrawLine(xyO, (vU - nP * vR):ToScreen(), "m") + else + local vU = oPly:GetUp(); vU:Mul(nP); vU:Add(tData.Org) + oScreen:DrawLine(xyO, (vU + nP * vR):ToScreen(), "m") + oScreen:DrawLine(xyO, (vU - nP * vR):ToScreen(), "m") + end + elseif(bPnt and not tData.POA) then local xx, sx = self:GetCurveNodeActive(mD, tData.Org, true) if(xx) then local xyX = xx:ToScreen(); oScreen:DrawLine(xyX, xyO, "ry") @@ -2240,7 +2333,7 @@ function TOOL:DrawToolScreen(w, h) local actrad = self:GetActiveRadius() local pointid, pnextid = self:GetPointID() local workmode, workname = self:GetWorkingMode() - local trMaxCN, trModel, trOID, trRLen + local trMID, trModel, trOID, trRLen if(trEnt and trEnt:IsValid()) then if(asmlib.IsOther(trEnt)) then return end trModel = trEnt:GetModel() @@ -2256,7 +2349,7 @@ function TOOL:DrawToolScreen(w, h) trRLen = mathRound(stSpawn.RLen,2) end if(asmlib.IsHere(trRec)) then - trMaxCN = trRec.Size + trMID = trRec.Size trModel = stringGetFileName(trModel) else trModel = "["..gsNoMD.."]"..stringGetFileName(trModel) end end @@ -2265,7 +2358,7 @@ function TOOL:DrawToolScreen(w, h) maxrad = asmlib.GetAsmConvar("maxactrad", "FLT") scrTool:DrawText("TM: " ..(trModel or gsNoAV),"y") scrTool:DrawText("HM: " ..(model or gsNoAV),"m") - scrTool:DrawText("ID: ["..(trMaxCN or gsNoID) + scrTool:DrawText("ID: ["..(trMID or gsNoID) .."] " ..(trOID or gsNoID) .." >> "..(pointid or gsNoID) .. " (" ..(pnextid or gsNoID) @@ -2290,7 +2383,6 @@ function TOOL.BuildCPanel(CPanel) asmlib.SetAsmConvar(nil, "flipoverid") -- Reset flip-over mode on pickup CPanel:ClearControls(); CPanel:DockPadding(5, 0, 5, 10) local drmSkin, sLog = CPanel:GetSkin(), "*TOOL.BuildCPanel" - local devmode = asmlib.GetAsmConvar("devmode", "BUL") local nMaxLin = asmlib.GetAsmConvar("maxlinear","FLT") local iMaxDec = asmlib.GetAsmConvar("maxmenupr","INT") local sCall, pItem, sName, aData = "_cpan" -- pItem is the current panel created @@ -2304,13 +2396,11 @@ function TOOL.BuildCPanel(CPanel) pComboPresets:AddConVar(val) end CPanel:AddItem(pComboPresets) - local cqPanel = asmlib.CacheQueryPanel(devmode); if(not cqPanel) then + local qPanel = asmlib.CacheQueryTree(); if(not qPanel) then asmlib.LogInstance("Panel population empty",sLog); return end local makTab = asmlib.GetBuilderNick("PIECES"); if(not asmlib.IsHere(makTab)) then asmlib.LogInstance("Missing builder table",sLog); return end - local defTable = makTab:GetDefinition() - local catTypes = asmlib.GetOpVar("TABLE_CATEGORIES") - local pTree = vguiCreate("DTree", CPanel); if(not pTree) then + local pTree = vguiCreate("DTree", CPanel); if(not pTree) then asmlib.LogInstance("Database tree empty",sLog); return end pTree:Dock(TOP) -- Initialize to fill left and right bounds pTree:SetTall(400) -- Make it quite large @@ -2318,73 +2408,56 @@ function TOOL.BuildCPanel(CPanel) pTree:SetIndentSize(0) -- All track types are closed pTree:UpdateColours(drmSkin) -- Apply current skin CPanel:AddItem(pTree) -- Register it to the panel - local iCnt, iTyp, pTypes, pCateg, pNode = 1, 1, {}, {} - while(cqPanel[iCnt]) do - local vRec, bNow = cqPanel[iCnt], true - local sMod = vRec[makTab:GetColumnName(1)] - local sTyp = vRec[makTab:GetColumnName(2)] - local sNam = vRec[makTab:GetColumnName(3)] + local defTable = makTab:GetDefinition() + local tType, tRoot = {}, {Size = 0} + for iC = 1, qPanel.Size do + local vRec, bNow = qPanel[iC], true + local sMod, sTyp, sNam = vRec.M, vRec.T, vRec.N if(asmlib.IsModel(sMod)) then - if(not (asmlib.IsBlank(sTyp) or pTypes[sTyp])) then + if(not (asmlib.IsBlank(sTyp) or tType[sTyp])) then local pRoot = pTree:AddNode(sTyp) -- No type folder made already pRoot:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".type")) pRoot.Icon:SetImage(asmlib.ToIcon(defTable.Name)) - pRoot.DoClick = function() asmlib.SetExpandNode(pRoot) end - pRoot.Expander.DoClick = function() asmlib.SetExpandNode(pRoot) end - pRoot.DoRightClick = function() - local sID = asmlib.WorkshopID(sTyp) - if(sID and sID:len() > 0 and inputIsKeyDown(KEY_LSHIFT)) then - guiOpenURL(asmlib.GetOpVar("FORM_URLADDON"):format(sID)) - else SetClipboardText(pRoot:GetText()) end - end + pRoot.DoClick = function() asmlib.SetNodeExpand(pRoot) end + pRoot.Expander.DoClick = function() asmlib.SetNodeExpand(pRoot) end + pRoot.DoRightClick = function() asmlib.OpenNodeMenu(pRoot) end pRoot:UpdateColours(drmSkin) - pTypes[sTyp] = pRoot + tType[sTyp] = {Base = pRoot, Node = {}} end -- Reset the primary tree node pointer - if(pTypes[sTyp]) then pItem = pTypes[sTyp] else pItem = pTree end - -- Register the category if definition functional is given - if(catTypes[sTyp]) then -- There is a category definition - local bSuc, ptCat, psNam = pcall(catTypes[sTyp].Cmp, sMod) - if(bSuc) then -- When the call is successful in protected mode - if(psNam and not asmlib.IsBlank(psNam)) then - sNam = asmlib.GetBeautifyName(psNam) - end -- Custom name override when the addon requests - local pCurr = pCateg[sTyp] - if(not asmlib.IsHere(pCurr)) then - pCateg[sTyp] = {}; pCurr = pCateg[sTyp] end - if(asmlib.IsBlank(ptCat)) then ptCat = nil end - if(asmlib.IsHere(ptCat)) then - if(not istable(ptCat)) then ptCat = {ptCat} end - if(ptCat[1]) then local iD = 1 - while(ptCat[iD]) do local sCat = tostring(ptCat[iD]):lower():Trim() - if(asmlib.IsBlank(sCat)) then sCat = "other" end - sCat = asmlib.GetBeautifyName(sCat) -- Beautify the category - if(pCurr[sCat]) then -- Jump next if already created - pCurr, pItem = asmlib.GetDirectory(pCurr, sCat) - else - pCurr, pItem = asmlib.SetDirectory(pItem, pCurr, sCat) - end; iD = iD + 1 -- Create the last needed node regarding pItem - end - end -- When the category has at least one element - else -- Store the creation information of the ones without category for later - tableInsert(pCateg[sTyp], {sNam, sMod}); bNow = false - end -- Is there is any category apply it. When available process it now - end - end -- Register the node associated with the track piece when is intended for later - if(bNow) then asmlib.SetDirectoryNode(pItem, sNam, sMod) end + if(tType[sTyp]) then pItem = tType[sTyp].Base else pItem = pTree end + -- Register the node associated with the track piece when is intended for later + if(vRec.C and vRec.C.Size > 0) then -- When category for the track type is available + local tNode = tType[sTyp].Node -- Index the contend for the track type + for iD = 1, vRec.C.Size do -- Generate the path to the track piece + local sCat = vRec.C[iD] -- Read the category name + local tCat = tNode[sCat] -- Index the internal sub-category + if(tCat) then -- Jump next if already created + pItem = tCat.Base -- Assume that the category is allocated + tNode = tCat.Node -- Jump to the next set of base nodes + else -- Create a new sub-category for the incoming content + tNode[sCat] = {}; tCat = tNode[sCat] -- Create node info + pItem = asmlib.SetNodeDirectory(pItem, sCat) -- Create category + tCat.Base = pItem; tCat.Node = {} -- Allocate node info + tNode = tCat.Node -- Jump to the allocated set of base nodes + end -- Create the last needed node regarding pItem + end -- When the category has at least one element + else -- Panel cannot categorize the entry add it to the list + tRoot.Size = tRoot.Size + 1 -- Increment count to avoid calling # + tableInsert(tRoot, iC); bNow = false -- Attach row ID to rooted items + end -- When needs to be processed now just attach it to the tree + if(bNow) then asmlib.SetNodeContent(pItem, sNam, sMod) end -- SnapReview is ignored because a query must be executed for points count else asmlib.LogInstance("Ignoring item "..asmlib.GetReport(sTyp, sNam, sMod),sLog) end - iCnt = iCnt + 1 end -- Attach the hanging items to the type root - for typ, val in pairs(pCateg) do - for iD = 1, #val do - local pan = pTypes[typ] - local nam, mod = unpack(val[iD]) - asmlib.SetDirectoryNode(pan, nam, mod) - asmlib.LogInstance("Rooting item "..asmlib.GetReport(typ, nam, mod),sLog) - end + for iR = 1, tRoot.Size do + local iRox = tRoot[iR] + local vRec = qPanel[iRox] + local sMod, sTyp, sNam = vRec.M, vRec.T, vRec.N + asmlib.SetNodeContent(tType[sTyp].Base, sNam, sMod) + asmlib.LogInstance("Rooting item "..asmlib.GetReport(sTyp, sNam, sMod), sLog) end -- Process all the items without category defined - asmlib.LogInstance("Found items #"..tostring(iCnt - 1), sLog) + asmlib.LogInstance("Found items #"..qPanel.Size, sLog) -- http://wiki.garrysmod.com/page/Category:DComboBox local sName = asmlib.GetAsmConvar("workmode", "NAM") @@ -2421,21 +2494,21 @@ function TOOL.BuildCPanel(CPanel) pComboPhysName:SetTall(22) pComboPhysName:UpdateColours(drmSkin) - local cqProperty = asmlib.CacheQueryProperty(); if(not cqProperty) then + local qProperty = asmlib.CacheQueryProperty(); if(not qProperty) then asmlib.LogInstance("Property population empty",sLog); return end - while(cqProperty[iTyp]) do - local sT, sI = cqProperty[iTyp], asmlib.ToIcon("property_type") - pComboPhysType:AddChoice(sT, sT, false, sI); iTyp = iTyp + 1 + for iP = 1, qProperty.Size do + local sT, sI = qProperty[iP], asmlib.ToIcon("property_type") + pComboPhysType:AddChoice(sT, sT, false, sI) end pComboPhysType.OnSelect = function(pnSelf, nInd, sVal, anyData) - local cqNames = asmlib.CacheQueryProperty(sVal) - if(cqNames) then local iNam = 1; pComboPhysName:Clear() + local qNames = asmlib.CacheQueryProperty(sVal) + if(qNames) then pComboPhysName:Clear() pComboPhysName:SetValue(languageGetPhrase("tool."..gsToolNameL..".phyname_def")) - while(cqNames[iNam]) do - local sN, sI = cqNames[iNam], asmlib.ToIcon("property_name") - pComboPhysName:AddChoice(sN, sN, false, sI); iNam = iNam + 1 + for iNam = 1, qNames.Size do + local sN, sI = qNames[iNam], asmlib.ToIcon("property_name") + pComboPhysName:AddChoice(sN, sN, false, sI) end else asmlib.LogInstance("Property type <"..sVal.."> names mismatch",sLog) end end @@ -2443,7 +2516,7 @@ function TOOL.BuildCPanel(CPanel) cvarsRemoveChangeCallback(sName, sName..sCall) cvarsAddChangeCallback(sName, function(sV, vO, vN) pComboPhysName:SetValue(vN) end, sName..sCall); - asmlib.LogTable(cqProperty, "Property", sLog) + asmlib.LogTable(qProperty, "Property", sLog) -- http://wiki.garrysmod.com/page/Category:DTextEntry local sName = asmlib.GetAsmConvar("bgskids", "NAM") @@ -2511,6 +2584,7 @@ if(CLIENT) then asmlib.SetNumSlider(CPanel, "ghostblnd", iMaxDec) asmlib.SetNumSlider(CPanel, "crvturnlm", iMaxDec) asmlib.SetNumSlider(CPanel, "crvleanlm", iMaxDec) + asmlib.SetNumSlider(CPanel, "crvsuprev", iMaxDec) asmlib.SetNumSlider(CPanel, "sgradmenu", 0) asmlib.SetNumSlider(CPanel, "rtradmenu", iMaxDec) asmlib.SetCheckBox(CPanel, "enradmenu") @@ -2518,7 +2592,8 @@ if(CLIENT) then asmlib.LogInstance("Registered as "..asmlib.GetReport(CPanel.Name), sLog) end - asmlib.DoAction("TWEAK_PANEL", "Utilities", "User", setupUserSettings) + local bS, vOut = asmlib.DoAction("TWEAK_PANEL", "Utilities", "User", setupUserSettings) + if(not bS) then asmlib.LogInstance("User create: "..vOut, sLog) end -- Enter `spawnmenu_reload` in the console to reload the panel local function setupAdminSettings(CPanel) @@ -2668,6 +2743,7 @@ if(CLIENT) then asmlib.SetAsmConvar(user, "endsvlock", asmlib.GetAsmConvar("endsvlock", "DEF")) asmlib.SetAsmConvar(user, "curvefact", asmlib.GetAsmConvar("curvefact", "DEF")) asmlib.SetAsmConvar(user, "curvsmple", asmlib.GetAsmConvar("curvsmple", "DEF")) + asmlib.SetAsmConvar(user, "crvsuprev", asmlib.GetAsmConvar("crvsuprev", "DEF")) asmlib.SetAsmConvar(user, "spawnrate", asmlib.GetAsmConvar("spawnrate", "DEF")) asmlib.SetAsmConvar(user, "bnderrmod", asmlib.GetAsmConvar("bnderrmod", "DEF")) asmlib.SetAsmConvar(user, "maxfruse" , asmlib.GetAsmConvar("maxfruse" , "DEF")) @@ -2685,5 +2761,6 @@ if(CLIENT) then asmlib.LogInstance("Registered as "..asmlib.GetReport(CPanel.Name), sLog) end - asmlib.DoAction("TWEAK_PANEL", "Utilities", "Admin", setupAdminSettings) + local bS, vOut = asmlib.DoAction("TWEAK_PANEL", "Utilities", "Admin", setupAdminSettings) + if(not bS) then asmlib.LogInstance("Admin create: "..vOut, sLog) end end diff --git a/readme.md b/readme.md index 2eba778f..f2a456e6 100644 --- a/readme.md +++ b/readme.md @@ -396,6 +396,7 @@ anymore to maintain cetain track packs leading in **NO SUPPORT**, which is also * [RockMan's Fortification](https://steamcommunity.com/sharedfiles/filedetails/?id=3071058065) * [SligWolf's Suspension train](https://steamcommunity.com/sharedfiles/filedetails/?id=3297918081) [**(AUTHOR)**][ref-maintained] * [Modular City Street](https://steamcommunity.com/sharedfiles/filedetails/?id=3314861708) + * [Scene Builder](https://steamcommunity.com/sharedfiles/filedetails/?id=2233731395) #### Where are the trains/vehicles[,][ref-easter] are there any of these? Dude seriously, make them yourself, what's the point of playing Gmod then ... xD diff --git a/resource/localization/bg/trackassembly.properties b/resource/localization/bg/trackassembly.properties index 47399aed..0f4f806e 100644 --- a/resource/localization/bg/trackassembly.properties +++ b/resource/localization/bg/trackassembly.properties @@ -1,9 +1,88 @@  -tool.trackassembly.workmode.1=Обикновено създаване/залепяне -tool.trackassembly.workmode.2=Пресичане на активни точки -tool.trackassembly.workmode.3=Линейна сегментна интерполация -tool.trackassembly.workmode.4=Преобръщане спрямо нормалата -tool.trackassembly.workmode.5=Преход на завой по допирателна +Cleaned_asmtracks=Всички парчета трасе са почистени +Cleanup_asmtracks=Сглобени парчета трасе +SBoxLimit_asmtracks=Достигнахте границата на създадените парчета трасе! +sbox_maxasmtracks=Променете тук за да настроите нещата които са създадени от инструмента на сървъра +sbox_maxasmtracks_con=Общо сегменти\: +tool.trackassembly.activrad=Минимално разстояние за да се избере активна точка +tool.trackassembly.activrad_con=Активен радиус\: +tool.trackassembly.adviser=Управлява изобразяването на позиционен/ъглов съветник +tool.trackassembly.adviser_con=Изобразявай съветника +tool.trackassembly.angsnap=Залепете първото създадено парче на толкова градуса +tool.trackassembly.angsnap_con=Ъглово подравняване\: +tool.trackassembly.appangfst=Приложи ъгловото отместване само върху първото парче за насочване +tool.trackassembly.appangfst_con=Приложи ъгловото на първи +tool.trackassembly.applinfst=Приложи линейното отместване само върху първото парче за позициониране +tool.trackassembly.applinfst_con=Приложи линейното на първи +tool.trackassembly.bgskids=Селекционен код за избор на Телесна-група/Кожа ID +tool.trackassembly.bgskids_con=Телесна-група/Кожа\: +tool.trackassembly.bgskids_def=Запишете селекционен код тук. Например 1,0,0,2,1/3 +tool.trackassembly.bnderrmod=Променете тук за да дефинирате поведение когато клиентите създават парчета извън картата +tool.trackassembly.bnderrmod_con=Режим на ограничение\: +tool.trackassembly.bnderrmod_error=Забранено натрупване/създаване грешка е показана +tool.trackassembly.bnderrmod_generic=Забранено натрупване/създаване съобщение е изписано +tool.trackassembly.bnderrmod_hint=Забранено натрупване/създаване подсказка е изобразена +tool.trackassembly.bnderrmod_log=Забранено натрупване/създаване грешката е записана +tool.trackassembly.bnderrmod_off=Разрешено натрупване/създаване без граници +tool.trackassembly.buttonas+/-=Обърни знака +tool.trackassembly.buttonas<>=Намали/Увеличи +tool.trackassembly.buttonas@=Приложи стойност\: +tool.trackassembly.buttonas@D=Дефолтна стойност +tool.trackassembly.buttonas@M=Запомни стойност +tool.trackassembly.client_var=Клиентски предпочитания на играча. Променливи създадени чрез инструмента конфигурация +tool.trackassembly.crvleanlm=Променете тук за да настроите остротата на наклона при сегментиране на кривата +tool.trackassembly.crvleanlm_con=Наклон на кривината\: +tool.trackassembly.crvsuprev=Променете тук за да настроите тежестта на коефицианта за свъхденивалация +tool.trackassembly.crvsuprev_con=Свръх денивелация\: +tool.trackassembly.crvturnlm=Променете тук за да настроите остротата на завоя при сегментиране на кривата +tool.trackassembly.crvturnlm_con=Завой на кривината\: +tool.trackassembly.curvefact=Променете тук за да настроите тангенциалния коефициент на кривата +tool.trackassembly.curvefact_con=Фактор на кривата\: +tool.trackassembly.curvsmple=Променете тук за да настроите интерполационните проби на кривата +tool.trackassembly.curvsmple_con=Проби на кривата\: +tool.trackassembly.desc=Сглобява трасе по което да вървят превозните средства +tool.trackassembly.devmode=Когато се разреши пуска режим на разработчик за анализ и дебъг на грешки +tool.trackassembly.devmode_con=Включи режим на разработчик +tool.trackassembly.dtmessage=Управлява времевия интервал между сървърните съобщения на контекстното меню +tool.trackassembly.dtmessage_con=Времеви интервал\: +tool.trackassembly.enctxmall=Когато е разрешено включва специалното контекстно меню за всички предмети +tool.trackassembly.enctxmall_con=Разреши контекстно меню за всички +tool.trackassembly.enctxmenu=Когато е разрешено включва специалното контекстно меню за парчета трасе +tool.trackassembly.enctxmenu_con=Включи контекстно меню +tool.trackassembly.endsvlock=Когато е разрешено заключва файловете на външната DSV база данни +tool.trackassembly.endsvlock_con=Разреши DSV заключването +tool.trackassembly.engunsnap=Управлява залепването когато парчето е изпуснато с физическото оръдие на играча +tool.trackassembly.engunsnap_con=Залепване при изпускане +tool.trackassembly.enmultask=Когато е разрешено включва многозадачната система по време на натрупване +tool.trackassembly.enmultask_con=Включи многозадачна система +tool.trackassembly.enpntmscr=Когато се разреши позволява превключване на активните точки чрез скрола на мишката +tool.trackassembly.enpntmscr_con=Разреши скрола за точките +tool.trackassembly.enradmenu=Когато се пусне позволява управление на режимите на работа чрез кръгово меню +tool.trackassembly.enradmenu_con=Разреши кръгово меню +tool.trackassembly.enwiremod=Когато е разрешено включва разширението за wiremod expression чипа +tool.trackassembly.enwiremod_con=Включи wiremod expression +tool.trackassembly.exportdb=Когато се пусне разрешава експортирането на базата данни в един голям файл +tool.trackassembly.exportdb_con=Разреши експорт на базата данни +tool.trackassembly.factory_reset=Кликнете за да приложите фабрични настройки на конзолните променливи +tool.trackassembly.factory_reset_con=Приложи фабрични настройки +tool.trackassembly.forcelim=Управлява колко сила е необходима за да се счупи заварката +tool.trackassembly.forcelim_con=Якост на заварката\: +tool.trackassembly.freeze=Създава парчето в замразено състояние +tool.trackassembly.freeze_con=Замрази парчето +tool.trackassembly.ghostblnd=Управлява прозрачността на парчето сянка. Малка стойност за по-прозрачно +tool.trackassembly.ghostblnd_con=Преливане на парчета сенки\: +tool.trackassembly.ghostcnt=Управлява изобразяването на броя парчета сенки +tool.trackassembly.ghostcnt_con=Изобразявай парчета сенки +tool.trackassembly.gravity=Управлява гравитацията върху създаденото парче +tool.trackassembly.gravity_con=Приложи гравитация върху парчето +tool.trackassembly.ignphysgn=Пренебрегва хващането с физическо оръдие на парчето създадено/залепено/натрупано +tool.trackassembly.ignphysgn_con=Пренебрегни хващането с физическо оръдие +tool.trackassembly.igntype=Пренебрегва различните типове парчета при лепене/натрупване +tool.trackassembly.igntype_con=Пренебрегни типа на парчето +tool.trackassembly.incsnpang=Дефинира стъпката на ъглово отместване за слайд бутоните +tool.trackassembly.incsnpang_con=Ъглова стъпка\: +tool.trackassembly.incsnplin=Дефинира стъпката на линейно отместване за слайд бутоните +tool.trackassembly.incsnplin_con=Линейна стъпка\: tool.trackassembly.info.1=Създава парчета върху картата или ги сглобява едно спрямо друго tool.trackassembly.info.2=Свързва секциите на трасето със специален сегмент проектиран за това tool.trackassembly.info.3=Създава непрекъснати трасета преминаващи през дадени контролни точки @@ -14,254 +93,189 @@ tool.trackassembly.left.2=Създаване на парче в пресечен tool.trackassembly.left.3=Създаване на интерполирана крива на трасе от предмети tool.trackassembly.left.4=Създаване на огледалните парчета на избрания списък tool.trackassembly.left.5=Създаване на интерполирана крива на трасе от предмети -tool.trackassembly.right.1=Копиране на модела на парчето или отваряне на чести записи -tool.trackassembly.right.2=Копиране на модела на парчето или отваряне на чести записи -tool.trackassembly.right.3=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите -tool.trackassembly.right.4=Регистриране на предмет в списъка за обръщане. Задръжте SHIFT за смяна на модела -tool.trackassembly.right.5=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите -tool.trackassembly.right_use.1=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи -tool.trackassembly.right_use.2=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи -tool.trackassembly.right_use.3=Генериране на възел от най-близката активна точка на парчето -tool.trackassembly.right_use.4=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи -tool.trackassembly.right_use.5=Генериране на възел от най-близката активна точка на парчето -tool.trackassembly.reload.1=Премахване на парче трасе. Задръжте SHIFT за да изберете опора -tool.trackassembly.reload.2=Премахване на парче трасе. Задръжте SHIFT изберете релационен лъч -tool.trackassembly.reload.3=Премахване на възел от интерполираната крива. Задръжте SHIFT за да изчистите стека -tool.trackassembly.reload.4=Изчистване списъка от предмети за обръщане. Ако е празен маха парче -tool.trackassembly.reload.5=Премахване на възел от интерполираната крива. Задръжте SHIFT за да изчистите стека -tool.trackassembly.reload_use.1=Позволете експорт на данните за да отворите DSV мениджър -tool.trackassembly.reload_use.2=Позволете експорт на данните за да отворите DSV мениджър -tool.trackassembly.reload_use.3=Позволете експорт на данните за да отворите DSV мениджър -tool.trackassembly.reload_use.4=Позволете експорт на данните за да отворите DSV мениджър -tool.trackassembly.reload_use.5=Позволете експорт на данните за да отворите DSV мениджър -tool.trackassembly.desc=Сглобява трасе по което да вървят превозните средства -tool.trackassembly.name=Монтаж на трасе -tool.trackassembly.phytype=Изберете типа на физическите свойства от дадените тук -tool.trackassembly.phytype_con=Тип на повърхността\: -tool.trackassembly.phytype_def=<Избери тип на повърхността> -tool.trackassembly.phyname=Изберете името на физическите свойства което да се използва при създаване на трасе като това ще повлияе на повърхностното триене -tool.trackassembly.phyname_con=Име на повърхността\: -tool.trackassembly.phyname_def=<Избери име на повърхността> -tool.trackassembly.bgskids=Селекционен код за избор на Телесна-група/Кожа ID -tool.trackassembly.bgskids_con=Телесна-група/Кожа\: -tool.trackassembly.bgskids_def=Запишете селекционен код тук. Например 1,0,0,2,1/3 +tool.trackassembly.logfile=Когато е включено започва да пише лог поток в специален файл +tool.trackassembly.logfile_con=Включи лог файла +tool.trackassembly.logsmax=Променете тук за да настроите максималните линии за дължина на лога +tool.trackassembly.logsmax_con=Дължина на лога\: tool.trackassembly.mass=Колко тежко ще бъде създаденото парче tool.trackassembly.mass_con=Маса на парчето\: +tool.trackassembly.maxactrad=Променете тук за да настроите максималния радиус за взимане на индекс за снаждане +tool.trackassembly.maxactrad_con=Граница на радиус\: +tool.trackassembly.maxforce=Променете тук за да настроите максималната сила при на заварките +tool.trackassembly.maxforce_con=Граница на сила\: +tool.trackassembly.maxfruse=Променете тук за да настроите дълбочината на често срещаните парчета в списъка +tool.trackassembly.maxfruse_con=Чести парчета\: +tool.trackassembly.maxghcnt=Променете тук за да настроите максималния брой парчета сенки при натрупване +tool.trackassembly.maxghcnt_con=Граница на парчета сенки\: +tool.trackassembly.maxlinear=Променете тук за да настроите максималното отместване на парчето +tool.trackassembly.maxlinear_con=Граница на отместване\: +tool.trackassembly.maxmass=Променете тук за да настроите максималната маза на парчетата при създаване +tool.trackassembly.maxmass_con=Граница на маса\: +tool.trackassembly.maxmenupr=Променете тук за да използвате различен брой знаци след десетичната точка +tool.trackassembly.maxmenupr_con=Десетични знаци\: +tool.trackassembly.maxspmarg=Променете тук за да настроите маржа на разстоянието от предишното създаване +tool.trackassembly.maxspmarg_con=Марж на създаване\: +tool.trackassembly.maxstatts=Дефинира след колко опита за натрупване на парче ще се изведе грешка +tool.trackassembly.maxstatts_con=Опити за натрупване\: +tool.trackassembly.maxstcnt=Променете тук за да настроите максималния брой парчета в режим на натрупване +tool.trackassembly.maxstcnt_con=Граница на натрупване\: +tool.trackassembly.maxtrmarg=Променете тук за да използвате различен интервал между проследяванията +tool.trackassembly.maxtrmarg_con=Марж на проследяване\: +tool.trackassembly.modedb=Променете тук за да дефинирате поведението при съхранение на базата данни +tool.trackassembly.modedb_con=Режим на базата\: +tool.trackassembly.modedb_lua=Използвайте директно съхранение в кеша +tool.trackassembly.modedb_sql=Кеширане само на заявените записи tool.trackassembly.model=Изберете парче за да започнете/продължите трасето си избирайки типа в дървото и кликвайки на листо tool.trackassembly.model_con=Модел на парчето\: -tool.trackassembly.activrad=Минимално разстояние за да се избере активна точка -tool.trackassembly.activrad_con=Активен радиус\: -tool.trackassembly.stackcnt=Максимален брой парчета които може да се създадат при натрупване -tool.trackassembly.stackcnt_con=Брой парчета\: -tool.trackassembly.angsnap=Залепете първото създадено парче на толкова градуса -tool.trackassembly.angsnap_con=Ъглово подравняване\: -tool.trackassembly.resetvars=Цъкнете за да нулирате допълнителните стойности -tool.trackassembly.resetvars_con=V Нулиране на променливите V +tool.trackassembly.name=Монтаж на трасе tool.trackassembly.nextpic=Допълнително отместване на началото по тангаж tool.trackassembly.nextpic_con=Тангаж на началото\: -tool.trackassembly.nextyaw=Допълнително отместване на началото по азимут -tool.trackassembly.nextyaw_con=Азимут на началото\: tool.trackassembly.nextrol=Допълнително отместване на началото по крен tool.trackassembly.nextrol_con=Крен на началото\: tool.trackassembly.nextx=Допълнително отместване на началото по абсциса tool.trackassembly.nextx_con=Отместване по абсциса\: tool.trackassembly.nexty=Допълнително отместване на началото по ордината tool.trackassembly.nexty_con=Отместване по ордината\: +tool.trackassembly.nextyaw=Допълнително отместване на началото по азимут +tool.trackassembly.nextyaw_con=Азимут на началото\: tool.trackassembly.nextz=Допълнително отместване на началото по апликата tool.trackassembly.nextz_con=Отместване по апликата\: -tool.trackassembly.gravity=Управлява гравитацията върху създаденото парче -tool.trackassembly.gravity_con=Приложи гравитация върху парчето -tool.trackassembly.weld=Създава заварки между парчетата или парчета/опора -tool.trackassembly.weld_con=Създай заварка -tool.trackassembly.forcelim=Управлява колко сила е необходима за да се счупи заварката -tool.trackassembly.forcelim_con=Якост на заварката\: -tool.trackassembly.ignphysgn=Пренебрегва хващането с физическо оръдие на парчето създадено/залепено/натрупано -tool.trackassembly.ignphysgn_con=Пренебрегни хващането с физическо оръдие tool.trackassembly.nocollide=Създава не-сблъсък между парчетата или парчета/опора tool.trackassembly.nocollide_con=Създай не-сблъсък tool.trackassembly.nocollidew=Създава не-сблъсък между парчетата и света tool.trackassembly.nocollidew_con=Създай не-сблъсък свят -tool.trackassembly.freeze=Създава парчето в замразено състояние -tool.trackassembly.freeze_con=Замрази парчето -tool.trackassembly.igntype=Пренебрегва различните типове парчета при лепене/натрупване -tool.trackassembly.igntype_con=Пренебрегни типа на парчето -tool.trackassembly.spnflat=Следващото парче ще бъде създадено/залепено/натрупано хоризонтално -tool.trackassembly.spnflat_con=Създай хоризонтално -tool.trackassembly.spawncn=Създава парчето в центъра иначе спрямо избраната активна точка -tool.trackassembly.spawncn_con=Начало спрямо центъра -tool.trackassembly.surfsnap=Залепи парчето по повърхнината към която сочи потребителя -tool.trackassembly.surfsnap_con=Залепи по повърхнината -tool.trackassembly.appangfst=Приложи ъгловото отместване само върху първото парче за насочване -tool.trackassembly.appangfst_con=Приложи ъгловото на първи -tool.trackassembly.applinfst=Приложи линейното отместване само върху първото парче за позициониране -tool.trackassembly.applinfst_con=Приложи линейното на първи -tool.trackassembly.adviser=Управлява изобразяването на позиционен/ъглов съветник -tool.trackassembly.adviser_con=Изобразявай съветника -tool.trackassembly.pntasist=Управлява изобразяването на асистента за лепене -tool.trackassembly.pntasist_con=Изобразявай асистента -tool.trackassembly.ghostcnt=Управлява изобразяването на броя парчета сенки -tool.trackassembly.ghostcnt_con=Изобразявай парчета сенки -tool.trackassembly.ghostblnd=Управлява прозрачността на парчето сянка. Малка стойност за по-прозрачно -tool.trackassembly.ghostblnd_con=Преливане на парчета сенки\: -tool.trackassembly.dtmessage=Управлява времевия интервал между сървърните съобщения на контекстното меню -tool.trackassembly.dtmessage_con=Времеви интервал\: -tool.trackassembly.engunsnap=Управлява залепването когато парчето е изпуснато с физическото оръдие на играча -tool.trackassembly.engunsnap_con=Залепване при изпускане -tool.trackassembly.upspanchor=Включете за обновяване на опората при всяко създаване без натрупвате -tool.trackassembly.upspanchor_con=Обнови опората при създаване -tool.trackassembly.type=Изберете типа трасе което да използвате като разширите папката -tool.trackassembly.type_con=Тип трасе\: -tool.trackassembly.subfolder=Изберете категорията трасе която да използвате като разширите папката -tool.trackassembly.subfolder_con=Категория трасе\: -tool.trackassembly.workmode=Сменете тази опция за да изберете различен режим на работа -tool.trackassembly.workmode_con=Работен режим\: +tool.trackassembly.nonrep_var=Контроли за не-репликирани променливи. Приемат различни стойности на сървъра и клиента +tool.trackassembly.phyname=Изберете името на физическите свойства което да се използва при създаване на трасе като това ще повлияе на повърхностното триене +tool.trackassembly.phyname_con=Име на повърхността\: +tool.trackassembly.phyname_def=<Избери име на повърхността> +tool.trackassembly.phytype=Изберете типа на физическите свойства от дадените тук +tool.trackassembly.phytype_con=Тип на повърхността\: +tool.trackassembly.phytype_def=<Избери тип на повърхността> +tool.trackassembly.pn_contextm_cp=Копирай +tool.trackassembly.pn_contextm_cpbx=Клетка +tool.trackassembly.pn_contextm_cpmd=Модел +tool.trackassembly.pn_contextm_cpnm=Име +tool.trackassembly.pn_contextm_cprw=Ред +tool.trackassembly.pn_contextm_cpth=Път +tool.trackassembly.pn_contextm_cpty=Тип +tool.trackassembly.pn_contextm_ep=Разгъни +tool.trackassembly.pn_contextm_ex=Съхрани +tool.trackassembly.pn_contextm_exdv=Външно +tool.trackassembly.pn_contextm_exru=Скрипт +tool.trackassembly.pn_contextm_li=Линия +tool.trackassembly.pn_contextm_licg=Промени +tool.trackassembly.pn_contextm_licr=Създай +tool.trackassembly.pn_contextm_lirm=Премахни +tool.trackassembly.pn_contextm_mv=Премести +tool.trackassembly.pn_contextm_mvbt=Отдолу +tool.trackassembly.pn_contextm_mvdn=Долу +tool.trackassembly.pn_contextm_mvtp=Отгоре +tool.trackassembly.pn_contextm_mvup=Горе +tool.trackassembly.pn_contextm_st=Таблици +tool.trackassembly.pn_contextm_stdl=Изтрий +tool.trackassembly.pn_contextm_sted=Редактирай (Luapad) +tool.trackassembly.pn_contextm_stnk=Копирай ника +tool.trackassembly.pn_contextm_stpt=Копирай пътя +tool.trackassembly.pn_contextm_stsz=Копирай размера +tool.trackassembly.pn_contextm_sttm=Копирай времето +tool.trackassembly.pn_contextm_tg=Превключи +tool.trackassembly.pn_contextm_ws=Работилница +tool.trackassembly.pn_contextm_wsid=Копирай WID +tool.trackassembly.pn_contextm_wsop=Отвори URL +tool.trackassembly.pn_display=Моделът на вашето парче трасе се показва тук +tool.trackassembly.pn_display_lb=Дисплей за парчето tool.trackassembly.pn_export=Цъкнете за да съхраните базата данни на файл tool.trackassembly.pn_export_lb=Съхрани DB -tool.trackassembly.pn_routine=Списъкът с редовно използваните ви парчета трасе -tool.trackassembly.pn_routine_hd=Редовни парчета на\: -tool.trackassembly.pn_externdb=Налични външни бази данни на\: -tool.trackassembly.pn_externdb_hd=Външни бази данни на\: -tool.trackassembly.pn_externdb_lb=Десен клик за опции\: -tool.trackassembly.pn_externdb_ttt=Текущата стойност от конфигурацията\: -tool.trackassembly.pn_externdb_bti=Импорт -tool.trackassembly.pn_externdb_bti_tp=Импортира информацията от файла към панела за редактиране +tool.trackassembly.pn_extdsv_act=Активен +tool.trackassembly.pn_extdsv_hd=Списъка на DSV базите данни е показан тук +tool.trackassembly.pn_extdsv_inf=Допълнителна информация +tool.trackassembly.pn_extdsv_lb=Външен DSV списък +tool.trackassembly.pn_extdsv_prf=Уникален префикс на базата tool.trackassembly.pn_externdb_bte=Експорт tool.trackassembly.pn_externdb_bte_tp=Експортира информацията от панела към файла за използване -tool.trackassembly.pn_externdb_bt1=Копирай уникален префикс -tool.trackassembly.pn_externdb_bt2=Копирай пътя към DSV папката -tool.trackassembly.pn_externdb_bt3=Копирай ника на таблицата -tool.trackassembly.pn_externdb_bt4=Копирай пътя към таблицата -tool.trackassembly.pn_externdb_bt5=Копирай времето на таблицата -tool.trackassembly.pn_externdb_bt6=Копирай размера на таблицата -tool.trackassembly.pn_externdb_bt7=Редактирай елементите (Luapad) -tool.trackassembly.pn_externdb_bt8=Изтрий файла на базата данни -tool.trackassembly.pn_externdb_cm1=Копирай стойността -tool.trackassembly.pn_externdb_cm2=Копирай цялата линия -tool.trackassembly.pn_externdb_cm3=Разреши/Забрани -tool.trackassembly.pn_externdb_cm4=Промени линията -tool.trackassembly.pn_externdb_cm5=Създай нова линия -tool.trackassembly.pn_externdb_cm6=Премахни линията -tool.trackassembly.pn_ext_dsv_lb=Външен DSV списък -tool.trackassembly.pn_ext_dsv_hd=Списъка на DSV базите данни е показан тук -tool.trackassembly.pn_ext_dsv_1=Активен -tool.trackassembly.pn_ext_dsv_2=Уникален префикс на базата -tool.trackassembly.pn_ext_dsv_3=Допълнителна информация -tool.trackassembly.pn_display=Моделът на вашето парче трасе се показва тук +tool.trackassembly.pn_externdb_bti=Импорт +tool.trackassembly.pn_externdb_bti_tp=Импортира информацията от файла към панела за редактиране +tool.trackassembly.pn_externdb_hd=Външни бази данни на\: +tool.trackassembly.pn_externdb_ttt=Текущата стойност от конфигурацията\: tool.trackassembly.pn_pattern=Напишете шаблон тук и натиснете ЕНТЪР за да извършите търсене +tool.trackassembly.pn_pattern_lb=Напишете шаблон +tool.trackassembly.pn_routine=Списъкът с редовно използваните ви парчета трасе +tool.trackassembly.pn_routine_end=Ръб +tool.trackassembly.pn_routine_hd=Редовни парчета на\: +tool.trackassembly.pn_routine_lb=Рутинни обекти +tool.trackassembly.pn_routine_mod=Модел +tool.trackassembly.pn_routine_nam=Име +tool.trackassembly.pn_routine_typ=Тип +tool.trackassembly.pn_routine_use=Срок tool.trackassembly.pn_srchcol=Изберете по коя колона да извършите търсене tool.trackassembly.pn_srchcol_lb=<Търси по> -tool.trackassembly.pn_srchcol_lb1=Модел -tool.trackassembly.pn_srchcol_lb2=Тип -tool.trackassembly.pn_srchcol_lb3=Име -tool.trackassembly.pn_srchcol_lb4=Ръб -tool.trackassembly.pn_routine_lb=Рутинни обекти -tool.trackassembly.pn_routine_lb1=Срок -tool.trackassembly.pn_routine_lb2=Ръб -tool.trackassembly.pn_routine_lb3=Тип -tool.trackassembly.pn_routine_lb4=Име -tool.trackassembly.pn_display_lb=Дисплей за парчето -tool.trackassembly.pn_pattern_lb=Напишете шаблон -tool.trackassembly.sizeucs=Мащаб за показваните координатни системи -tool.trackassembly.sizeucs_con=Мащаб UCS\: -tool.trackassembly.maxstatts=Дефинира след колко опита за натрупване на парче ще се изведе грешка -tool.trackassembly.maxstatts_con=Опити за натрупване\: -tool.trackassembly.incsnpang=Дефинира стъпката на ъглово отместване за слайд бутоните -tool.trackassembly.incsnpang_con=Ъглова стъпка\: -tool.trackassembly.incsnplin=Дефинира стъпката на линейно отместване за слайд бутоните -tool.trackassembly.incsnplin_con=Линейна стъпка\: -tool.trackassembly.enradmenu=Когато се пусне позволява управление на режимите на работа чрез кръгово меню -tool.trackassembly.enradmenu_con=Разреши кръгово меню -tool.trackassembly.sgradmenu=Променете за да направите на кръговото меню по-гладко. По-голяма стойност за по-гладко -tool.trackassembly.sgradmenu_con=Радиални сегменти\: +tool.trackassembly.pntasist=Управлява изобразяването на асистента за лепене +tool.trackassembly.pntasist_con=Изобразявай асистента +tool.trackassembly.relica_var=Контроли за репликирани променливи. Сървъра изпраща базова стойност до всички клиенти +tool.trackassembly.reload.1=Премахване на парче трасе. Задръжте SHIFT за да изберете опора +tool.trackassembly.reload.2=Премахване на парче трасе. Задръжте SHIFT изберете релационен лъч +tool.trackassembly.reload.3=Премахване на възел от интерполираната крива. Задръжте SHIFT за да изчистите стека +tool.trackassembly.reload.4=Изчистване списъка от предмети за обръщане. Ако е празен маха парче +tool.trackassembly.reload.5=Премахване на възел от интерполираната крива. Задръжте SHIFT за да изчистите стека +tool.trackassembly.reload_use.1=Позволете експорт на данните за да отворите DSV мениджър +tool.trackassembly.reload_use.2=Позволете експорт на данните за да отворите DSV мениджър +tool.trackassembly.reload_use.3=Позволете експорт на данните за да отворите DSV мениджър +tool.trackassembly.reload_use.4=Позволете експорт на данните за да отворите DSV мениджър +tool.trackassembly.reload_use.5=Позволете експорт на данните за да отворите DSV мениджър +tool.trackassembly.resetvars=Цъкнете за да нулирате допълнителните стойности +tool.trackassembly.resetvars_con=V Нулиране на променливите V +tool.trackassembly.right.1=Копиране на модела на парчето или отваряне на чести записи +tool.trackassembly.right.2=Копиране на модела на парчето или отваряне на чести записи +tool.trackassembly.right.3=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите +tool.trackassembly.right.4=Регистриране на предмет в списъка за обръщане. Задръжте SHIFT за смяна на модела +tool.trackassembly.right.5=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите +tool.trackassembly.right_use.1=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи +tool.trackassembly.right_use.2=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи +tool.trackassembly.right_use.3=Генериране на възел от най-близката активна точка на парчето +tool.trackassembly.right_use.4=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи +tool.trackassembly.right_use.5=Генериране на възел от най-близката активна точка на парчето tool.trackassembly.rtradmenu=Променете за да настроите базовия ъгъл на кръговото меню и да преместите опциите tool.trackassembly.rtradmenu_con=Радиална ротация\: -tool.trackassembly.enpntmscr=Когато се разреши позволява превключване на активните точки чрез скрола на мишката -tool.trackassembly.enpntmscr_con=Разреши скрола за точките -tool.trackassembly.exportdb=Когато се пусне разрешава експортирането на базата данни в един голям файл -tool.trackassembly.exportdb_con=Разреши експорт на базата данни -tool.trackassembly.devmode=Когато се разреши пуска режим на разработчик за анализ и дебъг на грешки -tool.trackassembly.devmode_con=Включи режим на разработчик -tool.trackassembly.maxtrmarg=Променете тук за да използвате различен интервал между проследяванията -tool.trackassembly.maxtrmarg_con=Марж на проследяване\: -tool.trackassembly.maxspmarg=Променете тук за да настроите маржа на разстоянието от предишното създаване -tool.trackassembly.maxspmarg_con=Марж на създаване\: -tool.trackassembly.maxmenupr=Променете тук за да използвате различен брой знаци след десетичната точка -tool.trackassembly.maxmenupr_con=Десетични знаци\: -tool.trackassembly.maxmass=Променете тук за да настроите максималната маза на парчетата при създаване -tool.trackassembly.maxmass_con=Граница на маса\: -tool.trackassembly.maxlinear=Променете тук за да настроите максималното отместване на парчето -tool.trackassembly.maxlinear_con=Граница на отместване\: -tool.trackassembly.maxforce=Променете тук за да настроите максималната сила при на заварките -tool.trackassembly.maxforce_con=Граница на сила\: -tool.trackassembly.maxactrad=Променете тук за да настроите максималния радиус за взимане на индекс за снаждане -tool.trackassembly.maxactrad_con=Граница на радиус\: -tool.trackassembly.maxstcnt=Променете тук за да настроите максималния брой парчета в режим на натрупване -tool.trackassembly.maxstcnt_con=Граница на натрупване\: -tool.trackassembly.maxghcnt=Променете тук за да настроите максималния брой парчета сенки при натрупване -tool.trackassembly.maxghcnt_con=Граница на парчета сенки\: -tool.trackassembly.enwiremod=Когато е разрешено включва разширението за wiremod expression чипа -tool.trackassembly.enwiremod_con=Включи wiremod expression -tool.trackassembly.enmultask=Когато е разрешено включва многозадачната система по време на натрупване -tool.trackassembly.enmultask_con=Включи многозадачна система -tool.trackassembly.enctxmenu=Когато е разрешено включва специалното контекстно меню за парчета трасе -tool.trackassembly.enctxmenu_con=Включи контекстно меню -tool.trackassembly.enctxmall=Когато е разрешено включва специалното контекстно меню за всички предмети -tool.trackassembly.enctxmall_con=Разреши контекстно меню за всички -tool.trackassembly.endsvlock=Когато е разрешено заключва файловете на външната DSV база данни -tool.trackassembly.endsvlock_con=Разреши DSV заключването -tool.trackassembly.curvefact=Променете тук за да настроите тангенциалния коефициент на кривата -tool.trackassembly.curvefact_con=Фактор на кривата\: -tool.trackassembly.curvsmple=Променете тук за да настроите интерполационните проби на кривата -tool.trackassembly.curvsmple_con=Проби на кривата\: -tool.trackassembly.crvturnlm=Променете тук за да настроите остротата на завоя при сегментиране на кривата -tool.trackassembly.crvturnlm_con=Завой на кривината\: -tool.trackassembly.crvleanlm=Променете тук за да настроите остротата на наклона при сегментиране на кривата -tool.trackassembly.crvleanlm_con=Наклон на кривината\: +tool.trackassembly.sgradmenu=Променете за да направите на кръговото меню по-гладко. По-голяма стойност за по-гладко +tool.trackassembly.sgradmenu_con=Радиални сегменти\: +tool.trackassembly.sizeucs=Мащаб за показваните координатни системи +tool.trackassembly.sizeucs_con=Мащаб UCS\: +tool.trackassembly.spawncn=Създава парчето в центъра иначе спрямо избраната активна точка +tool.trackassembly.spawncn_con=Начало спрямо центъра tool.trackassembly.spawnrate=Променете тук за да настроите броя сегменти създадени за един сървърен тик tool.trackassembly.spawnrate_con=Ставка на създаване\: -tool.trackassembly.bnderrmod=Променете тук за да дефинирате поведение когато клиентите създават парчета извън картата -tool.trackassembly.bnderrmod_off=Разрешено натрупване/създаване без граници -tool.trackassembly.bnderrmod_log=Забранено натрупване/създаване грешката е записана -tool.trackassembly.bnderrmod_hint=Забранено натрупване/създаване подсказка е изобразена -tool.trackassembly.bnderrmod_generic=Забранено натрупване/създаване съобщение е изписано -tool.trackassembly.bnderrmod_error=Забранено натрупване/създаване грешка е показана -tool.trackassembly.bnderrmod_con=Режим на ограничение\: -tool.trackassembly.modedb=Променете тук за да дефинирате поведението при съхранение на базата данни -tool.trackassembly.modedb_lua=Използвайте директно съхранение в кеша -tool.trackassembly.modedb_sql=Кеширане само на заявените записи -tool.trackassembly.modedb_con=Режим на базата\: -tool.trackassembly.maxfruse=Променете тук за да настроите дълбочината на често срещаните парчета в списъка -tool.trackassembly.maxfruse_con=Чести парчета\: +tool.trackassembly.spnflat=Следващото парче ще бъде създадено/залепено/натрупано хоризонтално +tool.trackassembly.spnflat_con=Създай хоризонтално +tool.trackassembly.stackcnt=Максимален брой парчета които може да се създадат при натрупване +tool.trackassembly.stackcnt_con=Брой парчета\: +tool.trackassembly.subfolder=Изберете категорията трасе която да използвате като разширите папката +tool.trackassembly.subfolder_con=Категория трасе\: +tool.trackassembly.surfsnap=Залепи парчето по повърхнината към която сочи потребителя +tool.trackassembly.surfsnap_con=Залепи по повърхнината tool.trackassembly.timermode_ap=Кликнете за да приложите избраните настройки върху мениджъра на паметта tool.trackassembly.timermode_ap_con=Приложи паметни настройки -tool.trackassembly.timermode_md=Променете тук за да изберете алгоритъм за таймера на мениджъра на паметта -tool.trackassembly.timermode_lf=Променете тук за да настроите времето което всеки запис прекарва в кеша -tool.trackassembly.timermode_lf_con=Живот на записа\: -tool.trackassembly.timermode_rd=Когато е включено намазва кеша като записва празна стойност -tool.trackassembly.timermode_rd_con=Включи триене на записи +tool.trackassembly.timermode_cqt=Кеш таймер по заявка на запис tool.trackassembly.timermode_ct=Когато е включено пуска почистването на боклука след всяко триене tool.trackassembly.timermode_ct_con=Включи почистване на боклука +tool.trackassembly.timermode_lf=Променете тук за да настроите времето което всеки запис прекарва в кеша +tool.trackassembly.timermode_lf_con=Живот на записа\: +tool.trackassembly.timermode_md=Променете тук за да изберете алгоритъм за таймера на мениджъра на паметта tool.trackassembly.timermode_mem=Мениджър на паметта за SQL таблица\: -tool.trackassembly.timermode_cqt=Кеш таймер по заявка на запис tool.trackassembly.timermode_obj=Таймерен обект закачен за запис -tool.trackassembly.factory_reset=Кликнете за да приложите фабрични настройки на конзолните променливи -tool.trackassembly.factory_reset_con=Приложи фабрични настройки -tool.trackassembly.logfile=Когато е включено започва да пише лог поток в специален файл -tool.trackassembly.logfile_con=Включи лог файла -tool.trackassembly.logsmax=Променете тук за да настроите максималните линии за дължина на лога -tool.trackassembly.logsmax_con=Дължина на лога\: -tool.trackassembly.client_var=Клиентски предпочитания на играча. Променливи създадени чрез инструмента конфигурация -tool.trackassembly.nonrep_var=Контроли за не-репликирани променливи. Приемат различни стойности на сървъра и клиента -tool.trackassembly.relica_var=Контроли за репликирани променливи. Сървъра изпраща базова стойност до всички клиенти -tool.trackassembly.utilities_user=Потребителски настройки +tool.trackassembly.timermode_rd=Когато е включено намазва кеша като записва празна стойност +tool.trackassembly.timermode_rd_con=Включи триене на записи +tool.trackassembly.type=Изберете типа трасе което да използвате като разширите папката +tool.trackassembly.type_con=Тип трасе\: +tool.trackassembly.upspanchor=Включете за обновяване на опората при всяко създаване без натрупвате +tool.trackassembly.upspanchor_con=Обнови опората при създаване tool.trackassembly.utilities_admin=Администраторски настройки -tool.trackassembly.buttonas<>=Намали/Увеличи -tool.trackassembly.buttonas+/-=Обърни знака -tool.trackassembly.buttonas@M=Запомни стойност -tool.trackassembly.buttonas@D=Дефолтна стойност -tool.trackassembly.buttonas@=Приложи стойност\: -sbox_maxasmtracks=Променете тук за да настроите нещата които са създадени от инструмента на сървъра -sbox_maxasmtracks_con=Общо сегменти\: -Cleanup_asmtracks=Сглобени парчета трасе -Cleaned_asmtracks=Всички парчета трасе са почистени -SBoxLimit_asmtracks=Достигнахте границата на създадените парчета трасе! +tool.trackassembly.utilities_user=Потребителски настройки +tool.trackassembly.weld=Създава заварки между парчетата или парчета/опора +tool.trackassembly.weld_con=Създай заварка +tool.trackassembly.workmode.1=Обикновено създаване/залепяне +tool.trackassembly.workmode.2=Пресичане на активни точки +tool.trackassembly.workmode.3=Линейна сегментна интерполация +tool.trackassembly.workmode.4=Преобръщане спрямо нормалата +tool.trackassembly.workmode.5=Преход на завой по допирателна +tool.trackassembly.workmode=Сменете тази опция за да изберете различен режим на работа +tool.trackassembly.workmode_con=Работен режим\: diff --git a/resource/localization/en/trackassembly.properties b/resource/localization/en/trackassembly.properties index 18d0d879..bda3fedf 100644 --- a/resource/localization/en/trackassembly.properties +++ b/resource/localization/en/trackassembly.properties @@ -1,9 +1,88 @@  -tool.trackassembly.workmode.1=General spawn/snap pieces -tool.trackassembly.workmode.2=Active point intersection -tool.trackassembly.workmode.3=Curve line segment fitting -tool.trackassembly.workmode.4=Surface normal flip over -tool.trackassembly.workmode.5=Tangent transition turns +Cleaned_asmtracks=Cleaned up all track pieces +Cleanup_asmtracks=Assembled track pieces +SBoxLimit_asmtracks=You've hit the spawned tracks limit! +sbox_maxasmtracks=Change this to adjust the things spawned via track assembly tool on the server +sbox_maxasmtracks_con=Total segments\: +tool.trackassembly.activrad=Minimum distance needed to select an active point +tool.trackassembly.activrad_con=Active radius\: +tool.trackassembly.adviser=Controls rendering the tool position/angle adviser +tool.trackassembly.adviser_con=Draw adviser +tool.trackassembly.angsnap=Snap the first piece spawned at this much degrees +tool.trackassembly.angsnap_con=Angular alignment\: +tool.trackassembly.appangfst=Apply the angular offsets only on the first piece +tool.trackassembly.appangfst_con=Apply angular on first +tool.trackassembly.applinfst=Apply the linear offsets only on the first piece +tool.trackassembly.applinfst_con=Apply linear on first +tool.trackassembly.bgskids=Selection code of comma delimited Bodygroup/Skin ID +tool.trackassembly.bgskids_con=Bodygroup/Skin\: +tool.trackassembly.bgskids_def=Write selection code here. For example 1,0,0,2,1/3 +tool.trackassembly.bnderrmod=Change this to define the behavior when clients are spawning pieces outside of map bounds +tool.trackassembly.bnderrmod_con=Bounding mode\: +tool.trackassembly.bnderrmod_error=Deny stack/spawn error message is displayed +tool.trackassembly.bnderrmod_generic=Deny stack/spawn generic message is displayed +tool.trackassembly.bnderrmod_hint=Deny stack/spawn hint message is displayed +tool.trackassembly.bnderrmod_log=Deny stack/spawn the error is logged +tool.trackassembly.bnderrmod_off=Allow stack/spawn without restriction +tool.trackassembly.buttonas+/-=Negate value +tool.trackassembly.buttonas<>=Decrement/Increment +tool.trackassembly.buttonas@=Apply value\: +tool.trackassembly.buttonas@D=Default value +tool.trackassembly.buttonas@M=Memorize value +tool.trackassembly.client_var=Client side player preferences. Convars created in the tool client configuration +tool.trackassembly.crvleanlm=Change this to adjust the lean curving sharpness limit for the segment +tool.trackassembly.crvleanlm_con=Curvature lean\: +tool.trackassembly.crvsuprev=Change this to adjust the super-elevation magnitude used in the corners +tool.trackassembly.crvsuprev_con=Super elevation\: +tool.trackassembly.crvturnlm=Change this to adjust the turn curving sharpness limit for the segment +tool.trackassembly.crvturnlm_con=Curvature turn\: +tool.trackassembly.curvefact=Change this to adjust the curving factor tangent coefficient +tool.trackassembly.curvefact_con=Curve factor\: +tool.trackassembly.curvsmple=Change this to adjust the curving interpolation samples +tool.trackassembly.curvsmple_con=Curve samples\: +tool.trackassembly.desc=Assembles a track for the vehicles to run on +tool.trackassembly.devmode=When enabled turns on the developer mode for tracking and debugging +tool.trackassembly.devmode_con=Enable developer mode +tool.trackassembly.dtmessage=Controls time intervals between context menu server messages +tool.trackassembly.dtmessage_con=Message delta\: +tool.trackassembly.enctxmall=When enabled turns on the tool dedicated context menu for all props +tool.trackassembly.enctxmall_con=Enable context menu for all props +tool.trackassembly.enctxmenu=When enabled turns on the tool dedicated context menu for pieces +tool.trackassembly.enctxmenu_con=Enable context menu +tool.trackassembly.endsvlock=When enabled turns on the external pluggable DSV databases file lock +tool.trackassembly.endsvlock_con=Enable DSV database lock +tool.trackassembly.engunsnap=Controls snapping when the piece is dropped by the player physics gun +tool.trackassembly.engunsnap_con=Enable physics gun snap +tool.trackassembly.enmultask=When enabled turns on the multitasking during stacking mode +tool.trackassembly.enmultask_con=Enable multitasking +tool.trackassembly.enpntmscr=When enabled turns on the switching active points via mouse scroll +tool.trackassembly.enpntmscr_con=Enable point scroll +tool.trackassembly.enradmenu=When enabled turns on the usage of the work mode radial menu +tool.trackassembly.enradmenu_con=Enable radial menu +tool.trackassembly.enwiremod=When enabled turns on the wiremod expression chip extension +tool.trackassembly.enwiremod_con=Enable wire expression +tool.trackassembly.exportdb=When enabled turns on the database export as one large file +tool.trackassembly.exportdb_con=Enable database export +tool.trackassembly.factory_reset=Click this to apply console variables factory settings +tool.trackassembly.factory_reset_con=Apply factory settings +tool.trackassembly.forcelim=Controls how much force is needed to break the weld +tool.trackassembly.forcelim_con=Force limit\: +tool.trackassembly.freeze=Makes the piece spawn in a frozen state +tool.trackassembly.freeze_con=Freeze piece +tool.trackassembly.ghostblnd=Controls ghosts transparency blend. The lower the value more transperent +tool.trackassembly.ghostblnd_con=Ghosts blend\: +tool.trackassembly.ghostcnt=Controls rendering the tool ghosted holder pieces count +tool.trackassembly.ghostcnt_con=Ghosts count\: +tool.trackassembly.gravity=Controls the gravity on the piece spawned +tool.trackassembly.gravity_con=Apply piece gravity +tool.trackassembly.ignphysgn=Ignores physics gun grab on the piece spawned/snapped/stacked +tool.trackassembly.ignphysgn_con=Ignore physics gun +tool.trackassembly.igntype=Makes the tool ignore the different piece types on snapping/stacking +tool.trackassembly.igntype_con=Ignore track type +tool.trackassembly.incsnpang=Defines the angular incremental step when button sliders are used +tool.trackassembly.incsnpang_con=Angular step\: +tool.trackassembly.incsnplin=Defines the linear incremental step when button sliders are used +tool.trackassembly.incsnplin_con=Linear step\: tool.trackassembly.info.1=Spawns pieces on the map or snaps them relative to each other tool.trackassembly.info.2=Connects track sections with dedicated segment designed for that tool.trackassembly.info.3=Creates continuous track layouts passing through given checkpoints @@ -14,254 +93,189 @@ tool.trackassembly.left.2=Spawn track piece at the intersection point tool.trackassembly.left.3=Spawn segmented track interpolation curve tool.trackassembly.left.4=Spawn flipped over list of tracks selected tool.trackassembly.left.5=Spawn segmented track interpolation curve -tool.trackassembly.right.1=Copy track piece model or open frequent pieces frame -tool.trackassembly.right.2=Copy track piece model or open frequent pieces frame -tool.trackassembly.right.3=Create node for the segmented curve. Hold SHIFT to update -tool.trackassembly.right.4=Register entity in the flip over list. Hold SHIFT to change model -tool.trackassembly.right.5=Create node for the segmented curve. Hold SHIFT to update -tool.trackassembly.right_use.1=Disabled SCROLL. Copy track piece model or open frequent pieces frame -tool.trackassembly.right_use.2=Disabled SCROLL. Copy track piece model or open frequent pieces frame -tool.trackassembly.right_use.3=Generate node from the nearest track piece active point -tool.trackassembly.right_use.4=Disabled SCROLL. Copy track piece model or open frequent pieces frame -tool.trackassembly.right_use.5=Generate node from the nearest track piece active point -tool.trackassembly.reload.1=Remove a track piece. Hold SHIFT to select an anchor -tool.trackassembly.reload.2=Remove a track piece. Hold SHIFT to select relation ray -tool.trackassembly.reload.3=Removes a curve interpolation node. Hold SHIFT to clear the stack -tool.trackassembly.reload.4=Clear the flip entities selection list. When empty removes piece -tool.trackassembly.reload.5=Removes a curve interpolation node. Hold SHIFT to clear the stack -tool.trackassembly.reload_use.1=Enable database export to open DSV manager -tool.trackassembly.reload_use.2=Enable database export to open DSV manager -tool.trackassembly.reload_use.3=Enable database export to open DSV manager -tool.trackassembly.reload_use.4=Enable database export to open DSV manager -tool.trackassembly.reload_use.5=Enable database export to open DSV manager -tool.trackassembly.desc=Assembles a track for the vehicles to run on -tool.trackassembly.name=Track assembly -tool.trackassembly.phytype=Select physical properties type of the ones listed here -tool.trackassembly.phytype_con=Material type\: -tool.trackassembly.phytype_def= -tool.trackassembly.bgskids=Selection code of comma delimited Bodygroup/Skin ID -tool.trackassembly.bgskids_con=Bodygroup/Skin\: -tool.trackassembly.bgskids_def=Write selection code here. For example 1,0,0,2,1/3 +tool.trackassembly.logfile=When enabled starts streaming the log into dedicated file +tool.trackassembly.logfile_con=Enable logging file +tool.trackassembly.logsmax=Change this to adjust the log streaming maximum output lines written +tool.trackassembly.logsmax_con=Logging lines\: tool.trackassembly.mass=How heavy the piece spawned will be tool.trackassembly.mass_con=Piece mass\: +tool.trackassembly.maxactrad=Change this to adjust the maximum active radius for obtaining point ID +tool.trackassembly.maxactrad_con=Radius limit\: +tool.trackassembly.maxforce=Change this to adjust the maximum force limit when creating welds +tool.trackassembly.maxforce_con=Force limit\: +tool.trackassembly.maxfruse=Change this to adjust the depth of how many frequently used pieces are there +tool.trackassembly.maxfruse_con=Frequent pieces\: +tool.trackassembly.maxghcnt=Change this to adjust the maximum pieces to be ghosted in stacking mode +tool.trackassembly.maxghcnt_con=Ghosts limit\: +tool.trackassembly.maxlinear=Change this to adjust the maximum linear offset on a piece +tool.trackassembly.maxlinear_con=Offset limit\: +tool.trackassembly.maxmass=Change this to adjust the maximum mass that can be applied on a piece +tool.trackassembly.maxmass_con=Mass limit\: +tool.trackassembly.maxmenupr=Change this to adjust the number of the decimal places in the menu +tool.trackassembly.maxmenupr_con=Decimal places\: +tool.trackassembly.maxspmarg=Change this to adjust the distance margin from the previous spawn +tool.trackassembly.maxspmarg_con=Spawn margin\: +tool.trackassembly.maxstatts=Defines how many stack attempts the script will try before failing +tool.trackassembly.maxstatts_con=Stack attempts\: +tool.trackassembly.maxstcnt=Change this to adjust the maximum pieces to be created in stacking mode +tool.trackassembly.maxstcnt_con=Stack limit\: +tool.trackassembly.maxtrmarg=Change this to adjust the time between tool traces +tool.trackassembly.maxtrmarg_con=Trace margin\: +tool.trackassembly.modedb=Change this to define the storage behavior of the track database +tool.trackassembly.modedb_con=Database mode\: +tool.trackassembly.modedb_lua=Utilize direct cache storage +tool.trackassembly.modedb_sql=Cache requested records only tool.trackassembly.model=Select a piece to start/continue your track with by expanding a type and clicking on a node tool.trackassembly.model_con=Piece model\: -tool.trackassembly.activrad=Minimum distance needed to select an active point -tool.trackassembly.activrad_con=Active radius\: -tool.trackassembly.stackcnt=Maximum number of pieces to create while stacking -tool.trackassembly.stackcnt_con=Pieces count\: -tool.trackassembly.angsnap=Snap the first piece spawned at this much degrees -tool.trackassembly.angsnap_con=Angular alignment\: -tool.trackassembly.resetvars=Click to reset the additional values -tool.trackassembly.resetvars_con=V Reset variables V +tool.trackassembly.name=Track assembly tool.trackassembly.nextpic=Additional origin angular pitch offset tool.trackassembly.nextpic_con=Origin pitch\: -tool.trackassembly.nextyaw=Additional origin angular yaw offset -tool.trackassembly.nextyaw_con=Origin yaw\: tool.trackassembly.nextrol=Additional origin angular roll offset tool.trackassembly.nextrol_con=Origin roll\: tool.trackassembly.nextx=Additional origin linear X offset tool.trackassembly.nextx_con=Offset X\: tool.trackassembly.nexty=Additional origin linear Y offset tool.trackassembly.nexty_con=Offset Y\: +tool.trackassembly.nextyaw=Additional origin angular yaw offset +tool.trackassembly.nextyaw_con=Origin yaw\: tool.trackassembly.nextz=Additional origin linear Z offset tool.trackassembly.nextz_con=Offset Z\: -tool.trackassembly.gravity=Controls the gravity on the piece spawned -tool.trackassembly.gravity_con=Apply piece gravity -tool.trackassembly.weld=Creates welds between pieces or pieces/anchor -tool.trackassembly.weld_con=Weld -tool.trackassembly.forcelim=Controls how much force is needed to break the weld -tool.trackassembly.forcelim_con=Force limit\: -tool.trackassembly.ignphysgn=Ignores physics gun grab on the piece spawned/snapped/stacked -tool.trackassembly.ignphysgn_con=Ignore physics gun tool.trackassembly.nocollide=Creates a no-collide between pieces or pieces/anchor tool.trackassembly.nocollide_con=NoCollide tool.trackassembly.nocollidew=Creates a no-collide between pieces and world tool.trackassembly.nocollidew_con=NoCollide world -tool.trackassembly.freeze=Makes the piece spawn in a frozen state -tool.trackassembly.freeze_con=Freeze piece -tool.trackassembly.igntype=Makes the tool ignore the different piece types on snapping/stacking -tool.trackassembly.igntype_con=Ignore track type -tool.trackassembly.spnflat=The next piece will be spawned/snapped/stacked horizontally -tool.trackassembly.spnflat_con=Spawn horizontally -tool.trackassembly.spawncn=Spawns the piece at the center, else spawns relative to the active point chosen -tool.trackassembly.spawncn_con=Origin from center -tool.trackassembly.surfsnap=Snaps the piece to the surface the player is pointing at -tool.trackassembly.surfsnap_con=Snap to trace surface -tool.trackassembly.appangfst=Apply the angular offsets only on the first piece -tool.trackassembly.appangfst_con=Apply angular on first -tool.trackassembly.applinfst=Apply the linear offsets only on the first piece -tool.trackassembly.applinfst_con=Apply linear on first -tool.trackassembly.adviser=Controls rendering the tool position/angle adviser -tool.trackassembly.adviser_con=Draw adviser -tool.trackassembly.pntasist=Controls rendering the tool snap point assistant -tool.trackassembly.pntasist_con=Draw assistant -tool.trackassembly.ghostcnt=Controls rendering the tool ghosted holder pieces count -tool.trackassembly.ghostcnt_con=Ghosts count\: -tool.trackassembly.ghostblnd=Controls ghosts transparency blend. The lower the value more transperent -tool.trackassembly.ghostblnd_con=Ghosts blend\: -tool.trackassembly.dtmessage=Controls time intervals between context menu server messages -tool.trackassembly.dtmessage_con=Message delta\: -tool.trackassembly.engunsnap=Controls snapping when the piece is dropped by the player physics gun -tool.trackassembly.engunsnap_con=Enable physics gun snap -tool.trackassembly.upspanchor=Enable to update the anchor on every spawn when not snapping -tool.trackassembly.upspanchor_con=Update anchor on spawn -tool.trackassembly.type=Select the track type to use by expanding the folder -tool.trackassembly.type_con=Track type\: -tool.trackassembly.subfolder=Select the track category to use by expanding the folder -tool.trackassembly.subfolder_con=Track category\: -tool.trackassembly.workmode=Change this option to select a different working mode -tool.trackassembly.workmode_con=Work mode\: +tool.trackassembly.nonrep_var=Non-replicated convar controls. They have different values on server and client +tool.trackassembly.phyname=Select physical properties name to use when creating the track as this will affect the surface friction +tool.trackassembly.phyname_con=Material name\: +tool.trackassembly.phyname_def= +tool.trackassembly.pn_contextm_cp=Copy +tool.trackassembly.pn_contextm_cpbx=Box +tool.trackassembly.pn_contextm_cpmd=Model +tool.trackassembly.pn_contextm_cpnm=Name +tool.trackassembly.pn_contextm_cprw=Row +tool.trackassembly.pn_contextm_cpth=Path +tool.trackassembly.pn_contextm_cpty=Type +tool.trackassembly.pn_contextm_ep=Expand node +tool.trackassembly.pn_contextm_ex=Export +tool.trackassembly.pn_contextm_exdv=Extern +tool.trackassembly.pn_contextm_exru=Autorun +tool.trackassembly.pn_contextm_li=Line +tool.trackassembly.pn_contextm_licg=Change +tool.trackassembly.pn_contextm_licr=Create +tool.trackassembly.pn_contextm_lirm=Remove +tool.trackassembly.pn_contextm_mv=Move +tool.trackassembly.pn_contextm_mvbt=Bottom +tool.trackassembly.pn_contextm_mvdn=Down +tool.trackassembly.pn_contextm_mvtp=Top +tool.trackassembly.pn_contextm_mvup=Up +tool.trackassembly.pn_contextm_st=Tables +tool.trackassembly.pn_contextm_stdl=Delete files +tool.trackassembly.pn_contextm_sted=Edit (Luapad) +tool.trackassembly.pn_contextm_stnk=Copy nick +tool.trackassembly.pn_contextm_stpt=Copy path +tool.trackassembly.pn_contextm_stsz=Copy size +tool.trackassembly.pn_contextm_sttm=Copy time +tool.trackassembly.pn_contextm_tg=Toggle +tool.trackassembly.pn_contextm_ws=Workshop +tool.trackassembly.pn_contextm_wsid=Copy WID +tool.trackassembly.pn_contextm_wsop=Open page +tool.trackassembly.pn_display=The model of your track piece is displayed here +tool.trackassembly.pn_display_lb=Piece display tool.trackassembly.pn_export=Click to export the client database as a file tool.trackassembly.pn_export_lb=Export DB -tool.trackassembly.pn_routine=The list of your frequently used track pieces -tool.trackassembly.pn_routine_hd=Frequent pieces by\: -tool.trackassembly.pn_externdb=The external databases available for\: -tool.trackassembly.pn_externdb_hd=External databases by\: -tool.trackassembly.pn_externdb_lb=Right click for options\: -tool.trackassembly.pn_externdb_ttt=Current modified configuration value\: -tool.trackassembly.pn_externdb_bti=Import -tool.trackassembly.pn_externdb_bti_tp=Imports information from the file list into the panel to edit +tool.trackassembly.pn_extdsv_act=Active +tool.trackassembly.pn_extdsv_hd=External DSV databases list is displayed here +tool.trackassembly.pn_extdsv_inf=Additional information +tool.trackassembly.pn_extdsv_lb=External DSV list +tool.trackassembly.pn_extdsv_prf=Database unique prefix tool.trackassembly.pn_externdb_bte=Export tool.trackassembly.pn_externdb_bte_tp=Exports information from the panel to the file list and apply -tool.trackassembly.pn_externdb_bt1=Copy unique prefix -tool.trackassembly.pn_externdb_bt2=Copy DSV folder path -tool.trackassembly.pn_externdb_bt3=Copy table nick -tool.trackassembly.pn_externdb_bt4=Copy table path -tool.trackassembly.pn_externdb_bt5=Copy table time -tool.trackassembly.pn_externdb_bt6=Copy table size -tool.trackassembly.pn_externdb_bt7=Edit table content (Luapad) -tool.trackassembly.pn_externdb_bt8=Delete database entry -tool.trackassembly.pn_externdb_cm1=Copy cell value -tool.trackassembly.pn_externdb_cm2=Copy whole line -tool.trackassembly.pn_externdb_cm3=Enable/Disable -tool.trackassembly.pn_externdb_cm4=Change line -tool.trackassembly.pn_externdb_cm5=Create line -tool.trackassembly.pn_externdb_cm6=Remove line -tool.trackassembly.pn_ext_dsv_lb=External DSV list -tool.trackassembly.pn_ext_dsv_hd=External DSV databases list is displayed here -tool.trackassembly.pn_ext_dsv_1=Active -tool.trackassembly.pn_ext_dsv_2=Database unique prefix -tool.trackassembly.pn_ext_dsv_3=Additional information -tool.trackassembly.pn_display=The model of your track piece is displayed here +tool.trackassembly.pn_externdb_bti=Import +tool.trackassembly.pn_externdb_bti_tp=Imports information from the file list into the panel to edit +tool.trackassembly.pn_externdb_hd=External databases by\: +tool.trackassembly.pn_externdb_ttt=Current modified configuration value\: tool.trackassembly.pn_pattern=Write a pattern here and hit ENTER to perform a search +tool.trackassembly.pn_pattern_lb=Write pattern +tool.trackassembly.pn_routine=The list of your frequently used track pieces +tool.trackassembly.pn_routine_end=End +tool.trackassembly.pn_routine_hd=Frequent pieces by\: +tool.trackassembly.pn_routine_lb=Routine items +tool.trackassembly.pn_routine_mod=Model +tool.trackassembly.pn_routine_nam=Name +tool.trackassembly.pn_routine_typ=Type +tool.trackassembly.pn_routine_use=Used tool.trackassembly.pn_srchcol=Choose which list column you want to perform a search on tool.trackassembly.pn_srchcol_lb= -tool.trackassembly.pn_srchcol_lb1=Model -tool.trackassembly.pn_srchcol_lb2=Type -tool.trackassembly.pn_srchcol_lb3=Name -tool.trackassembly.pn_srchcol_lb4=End -tool.trackassembly.pn_routine_lb=Routine items -tool.trackassembly.pn_routine_lb1=Used -tool.trackassembly.pn_routine_lb2=End -tool.trackassembly.pn_routine_lb3=Type -tool.trackassembly.pn_routine_lb4=Name -tool.trackassembly.pn_display_lb=Piece display -tool.trackassembly.pn_pattern_lb=Write pattern -tool.trackassembly.sizeucs=Scale set for the coordinate systems displayed -tool.trackassembly.sizeucs_con=Scale UCS\: -tool.trackassembly.maxstatts=Defines how many stack attempts the script will try before failing -tool.trackassembly.maxstatts_con=Stack attempts\: -tool.trackassembly.incsnpang=Defines the angular incremental step when button sliders are used -tool.trackassembly.incsnpang_con=Angular step\: -tool.trackassembly.incsnplin=Defines the linear incremental step when button sliders are used -tool.trackassembly.incsnplin_con=Linear step\: -tool.trackassembly.enradmenu=When enabled turns on the usage of the work mode radial menu -tool.trackassembly.enradmenu_con=Enable radial menu -tool.trackassembly.sgradmenu=Change this to make the radial menu more round. The higher the smoother -tool.trackassembly.sgradmenu_con=Radial segments\: +tool.trackassembly.pntasist=Controls rendering the tool snap point assistant +tool.trackassembly.pntasist_con=Draw assistant +tool.trackassembly.relica_var=Replicated convar controls. The server value is sent to all clients to use +tool.trackassembly.reload.1=Remove a track piece. Hold SHIFT to select an anchor +tool.trackassembly.reload.2=Remove a track piece. Hold SHIFT to select relation ray +tool.trackassembly.reload.3=Removes a curve interpolation node. Hold SHIFT to clear the stack +tool.trackassembly.reload.4=Clear the flip entities selection list. When empty removes piece +tool.trackassembly.reload.5=Removes a curve interpolation node. Hold SHIFT to clear the stack +tool.trackassembly.reload_use.1=Enable database export to open DSV manager +tool.trackassembly.reload_use.2=Enable database export to open DSV manager +tool.trackassembly.reload_use.3=Enable database export to open DSV manager +tool.trackassembly.reload_use.4=Enable database export to open DSV manager +tool.trackassembly.reload_use.5=Enable database export to open DSV manager +tool.trackassembly.resetvars=Click to reset the additional values +tool.trackassembly.resetvars_con=V Reset variables V +tool.trackassembly.right.1=Copy track piece model or open frequent pieces frame +tool.trackassembly.right.2=Copy track piece model or open frequent pieces frame +tool.trackassembly.right.3=Create node for the segmented curve. Hold SHIFT to update +tool.trackassembly.right.4=Register entity in the flip over list. Hold SHIFT to change model +tool.trackassembly.right.5=Create node for the segmented curve. Hold SHIFT to update +tool.trackassembly.right_use.1=Disabled SCROLL. Copy track piece model or open frequent pieces frame +tool.trackassembly.right_use.2=Disabled SCROLL. Copy track piece model or open frequent pieces frame +tool.trackassembly.right_use.3=Generate node from the nearest track piece active point +tool.trackassembly.right_use.4=Disabled SCROLL. Copy track piece model or open frequent pieces frame +tool.trackassembly.right_use.5=Generate node from the nearest track piece active point tool.trackassembly.rtradmenu=Change this to adjust the radial menu base angle and relocate its options tool.trackassembly.rtradmenu_con=Radial rotation\: -tool.trackassembly.enpntmscr=When enabled turns on the switching active points via mouse scroll -tool.trackassembly.enpntmscr_con=Enable point scroll -tool.trackassembly.exportdb=When enabled turns on the database export as one large file -tool.trackassembly.exportdb_con=Enable database export -tool.trackassembly.devmode=When enabled turns on the developer mode for tracking and debugging -tool.trackassembly.devmode_con=Enable developer mode -tool.trackassembly.maxtrmarg=Change this to adjust the time between tool traces -tool.trackassembly.maxtrmarg_con=Trace margin\: -tool.trackassembly.maxspmarg=Change this to adjust the distance margin from the previous spawn -tool.trackassembly.maxspmarg_con=Spawn margin\: -tool.trackassembly.maxmenupr=Change this to adjust the number of the decimal places in the menu -tool.trackassembly.maxmenupr_con=Decimal places\: -tool.trackassembly.maxmass=Change this to adjust the maximum mass that can be applied on a piece -tool.trackassembly.maxmass_con=Mass limit\: -tool.trackassembly.maxlinear=Change this to adjust the maximum linear offset on a piece -tool.trackassembly.maxlinear_con=Offset limit\: -tool.trackassembly.maxforce=Change this to adjust the maximum force limit when creating welds -tool.trackassembly.maxforce_con=Force limit\: -tool.trackassembly.maxactrad=Change this to adjust the maximum active radius for obtaining point ID -tool.trackassembly.maxactrad_con=Radius limit\: -tool.trackassembly.maxstcnt=Change this to adjust the maximum pieces to be created in stacking mode -tool.trackassembly.maxstcnt_con=Stack limit\: -tool.trackassembly.maxghcnt=Change this to adjust the maximum pieces to be ghosted in stacking mode -tool.trackassembly.maxghcnt_con=Ghosts limit\: -tool.trackassembly.enwiremod=When enabled turns on the wiremod expression chip extension -tool.trackassembly.enwiremod_con=Enable wire expression -tool.trackassembly.enmultask=When enabled turns on the multitasking during stacking mode -tool.trackassembly.enmultask_con=Enable multitasking -tool.trackassembly.enctxmenu=When enabled turns on the tool dedicated context menu for pieces -tool.trackassembly.enctxmenu_con=Enable context menu -tool.trackassembly.enctxmall=When enabled turns on the tool dedicated context menu for all props -tool.trackassembly.enctxmall_con=Enable context menu for all props -tool.trackassembly.endsvlock=When enabled turns on the external pluggable DSV databases file lock -tool.trackassembly.endsvlock_con=Enable DSV database lock -tool.trackassembly.curvefact=Change this to adjust the curving factor tangent coefficient -tool.trackassembly.curvefact_con=Curve factor\: -tool.trackassembly.curvsmple=Change this to adjust the curving interpolation samples -tool.trackassembly.curvsmple_con=Curve samples\: -tool.trackassembly.crvturnlm=Change this to adjust the turn curving sharpness limit for the segment -tool.trackassembly.crvturnlm_con=Curvature turn\: -tool.trackassembly.crvleanlm=Change this to adjust the lean curving sharpness limit for the segment -tool.trackassembly.crvleanlm_con=Curvature lean\: +tool.trackassembly.sgradmenu=Change this to make the radial menu more round. The higher the smoother +tool.trackassembly.sgradmenu_con=Radial segments\: +tool.trackassembly.sizeucs=Scale set for the coordinate systems displayed +tool.trackassembly.sizeucs_con=Scale UCS\: +tool.trackassembly.spawncn=Spawns the piece at the center, else spawns relative to the active point chosen +tool.trackassembly.spawncn_con=Origin from center tool.trackassembly.spawnrate=Change this to adjust the amount of track segments spawned per server tick tool.trackassembly.spawnrate_con=Spawning rate\: -tool.trackassembly.bnderrmod=Change this to define the behavior when clients are spawning pieces outside of map bounds -tool.trackassembly.bnderrmod_off=Allow stack/spawn without restriction -tool.trackassembly.bnderrmod_log=Deny stack/spawn the error is logged -tool.trackassembly.bnderrmod_hint=Deny stack/spawn hint message is displayed -tool.trackassembly.bnderrmod_generic=Deny stack/spawn generic message is displayed -tool.trackassembly.bnderrmod_error=Deny stack/spawn error message is displayed -tool.trackassembly.bnderrmod_con=Bounding mode\: -tool.trackassembly.modedb=Change this to define the storage behavior of the track database -tool.trackassembly.modedb_lua=Utilize direct cache storage -tool.trackassembly.modedb_sql=Cache requested records only -tool.trackassembly.modedb_con=Database mode\: -tool.trackassembly.maxfruse=Change this to adjust the depth of how many frequently used pieces are there -tool.trackassembly.maxfruse_con=Frequent pieces\: +tool.trackassembly.spnflat=The next piece will be spawned/snapped/stacked horizontally +tool.trackassembly.spnflat_con=Spawn horizontally +tool.trackassembly.stackcnt=Maximum number of pieces to create while stacking +tool.trackassembly.stackcnt_con=Pieces count\: +tool.trackassembly.subfolder=Select the track category to use by expanding the folder +tool.trackassembly.subfolder_con=Track category\: +tool.trackassembly.surfsnap=Snaps the piece to the surface the player is pointing at +tool.trackassembly.surfsnap_con=Snap to trace surface tool.trackassembly.timermode_ap=Click this to apply your changes to the SQL memory manager configuration tool.trackassembly.timermode_ap_con=Apply memory settings -tool.trackassembly.timermode_md=Change this to adjust the timer algorithm of the SQL memory manager -tool.trackassembly.timermode_lf=Change this to adjust the amount of time the record spends in the cache -tool.trackassembly.timermode_lf_con=Record life\: -tool.trackassembly.timermode_rd=When enabled wipes the record from the cache by forcing a nil value -tool.trackassembly.timermode_rd_con=Enable record deletion +tool.trackassembly.timermode_cqt=Cache query timer via record request tool.trackassembly.timermode_ct=When enabled forces the garbage collection to run on record deletion tool.trackassembly.timermode_ct_con=Enable garbage collection +tool.trackassembly.timermode_lf=Change this to adjust the amount of time the record spends in the cache +tool.trackassembly.timermode_lf_con=Record life\: +tool.trackassembly.timermode_md=Change this to adjust the timer algorithm of the SQL memory manager tool.trackassembly.timermode_mem=Memory manager for SQL table\: -tool.trackassembly.timermode_cqt=Cache query timer via record request tool.trackassembly.timermode_obj=Object timer attached to cache record -tool.trackassembly.factory_reset=Click this to apply console variables factory settings -tool.trackassembly.factory_reset_con=Apply factory settings -tool.trackassembly.logfile=When enabled starts streaming the log into dedicated file -tool.trackassembly.logfile_con=Enable logging file -tool.trackassembly.logsmax=Change this to adjust the log streaming maximum output lines written -tool.trackassembly.logsmax_con=Logging lines\: -tool.trackassembly.client_var=Client side player preferences. Convars created in the tool client configuration -tool.trackassembly.nonrep_var=Non-replicated convar controls. They have different values on server and client -tool.trackassembly.relica_var=Replicated convar controls. The server value is sent to all clients to use -tool.trackassembly.utilities_user=User settings setup +tool.trackassembly.timermode_rd=When enabled wipes the record from the cache by forcing a nil value +tool.trackassembly.timermode_rd_con=Enable record deletion +tool.trackassembly.type=Select the track type to use by expanding the folder +tool.trackassembly.type_con=Track type\: +tool.trackassembly.upspanchor=Enable to update the anchor on every spawn when not snapping +tool.trackassembly.upspanchor_con=Update anchor on spawn tool.trackassembly.utilities_admin=Admin settings setup -tool.trackassembly.buttonas<>=Decrement/Increment -tool.trackassembly.buttonas+/-=Negate value -tool.trackassembly.buttonas@M=Memorize value -tool.trackassembly.buttonas@D=Default value -tool.trackassembly.buttonas@=Apply value\: -sbox_maxasmtracks=Change this to adjust the things spawned via track assembly tool on the server -sbox_maxasmtracks_con=Total segments\: -Cleanup_asmtracks=Assembled track pieces -Cleaned_asmtracks=Cleaned up all track pieces -SBoxLimit_asmtracks=You've hit the spawned tracks limit! +tool.trackassembly.utilities_user=User settings setup +tool.trackassembly.weld=Creates welds between pieces or pieces/anchor +tool.trackassembly.weld_con=Weld +tool.trackassembly.workmode.1=General spawn/snap pieces +tool.trackassembly.workmode.2=Active point intersection +tool.trackassembly.workmode.3=Curve line segment fitting +tool.trackassembly.workmode.4=Surface normal flip over +tool.trackassembly.workmode.5=Tangent transition turns +tool.trackassembly.workmode=Change this option to select a different working mode +tool.trackassembly.workmode_con=Work mode\: diff --git a/resource/localization/fr/trackassembly.properties b/resource/localization/fr/trackassembly.properties index 4f0143c2..502256f7 100644 --- a/resource/localization/fr/trackassembly.properties +++ b/resource/localization/fr/trackassembly.properties @@ -1,223 +1,281 @@  -tool.trackassembly.workmode.1=Général créer/aligner des pièces -tool.trackassembly.workmode.2=Point d'intersection actif -tool.trackassembly.workmode.3=Ajuster des segments de ligne courbés -tool.trackassembly.workmode.4=Retourner la normale d'une surface +Cleaned_asmtracks=Pistes nettoyées +Cleanup_asmtracks=Pièces de piste assemblées +SBoxLimit_asmtracks=Vous avez atteint la limite des pistes créées! +sbox_maxasmtracks=Changer ceci pour ajuster les choses créées par l'outil assembleur à piste sur le serveur +sbox_maxasmtracks_con=Quantité de rails\: +tool.trackassembly.activrad=Distance minimum nécessaire pour sélectionner un point actif +tool.trackassembly.activrad_con=Rayon actif\: +tool.trackassembly.adviser=Montrer le conseiller de position/angle de l'outil +tool.trackassembly.adviser_con=Montrer le conseiller +tool.trackassembly.angsnap=Aligner la première pièce créée sur ce degré +tool.trackassembly.angsnap_con=Alignement angulaire\: +tool.trackassembly.appangfst=Appliquer les décalages angulaires seulement sur la première pièce +tool.trackassembly.appangfst_con=Appliquer angulaire en premier +tool.trackassembly.applinfst=Appliquer les décalages linéaires seulement sur la première pièce +tool.trackassembly.applinfst_con=Appliquer linéaire en premier +tool.trackassembly.bgskids=Cette ensemble de code est delimité par une virgule pour chaque Groupes de corps/ID Apparence +tool.trackassembly.bgskids_con=Groupes de corps/Apparence\: +tool.trackassembly.bgskids_def=Écrivez le code de sélection ici. Par exemple 1,0,0,2,1/3 +tool.trackassembly.bnderrmod=Changer ceci pour définir le comportement quand les clients créent des pièces en dehors des limites de la carte +tool.trackassembly.bnderrmod_con=Sécurité frontière\: +tool.trackassembly.bnderrmod_error=[5] Refuser l'empilement/création message d'erreur est affiché +tool.trackassembly.bnderrmod_generic=[4] Refuser l'empilement/création message générique est affiché +tool.trackassembly.bnderrmod_hint=[3] Refuser l'empilement/création message d'astuce est affiché +tool.trackassembly.bnderrmod_log=[2] Refuser l'empilement/création l'erreur est enregistré +tool.trackassembly.bnderrmod_off=[1] Autoriser l'empilement/création sans restriction +tool.trackassembly.buttonas+/-=Nier la valeur +tool.trackassembly.buttonas<>=Diminuer/Augmenter +tool.trackassembly.buttonas@=Appliquer la valeur\: +tool.trackassembly.buttonas@D=Valeur par défaut +tool.trackassembly.buttonas@M=Mémoriser la valeur +tool.trackassembly.client_var=Préférences utilisateur côté client. Convars créées dans la configuration client de l'outil +tool.trackassembly.crvleanlm=Changer ceci pour ajuster la finesse de la courbure en inclinaison pour le segment +tool.trackassembly.crvleanlm_con=Courbure en inclinaison\: +tool.trackassembly.crvsuprev=Modifiez ceci pour ajuster l'amplitude du dévers utilisé dans les virages +tool.trackassembly.crvsuprev_con=Dévers\: +tool.trackassembly.crvturnlm=Changer ceci pour ajuster la finesse de la courbure en virage pour le segment +tool.trackassembly.crvturnlm_con=Courbure en virage\: +tool.trackassembly.curvefact=Changer ceci pour ajuster le facteur courbe du coefficient tangent +tool.trackassembly.curvefact_con=Facteur courbe\: +tool.trackassembly.curvsmple=Changer ceci pour ajuster les échantillons pour la courbe d'interpolation +tool.trackassembly.curvsmple_con=Échantillons courbe\: +tool.trackassembly.desc=Assemble une piste auquel les véhicules peuvent rouler dessus +tool.trackassembly.devmode=Active le traçage et débogage +tool.trackassembly.devmode_con=Activer le mode développeur +tool.trackassembly.dtmessage=Contrôle les intervalles de temps entre les messages du serveur du menu contextuel +tool.trackassembly.dtmessage_con=Delta du message\: +tool.trackassembly.enctxmall=Active le menu contextuel de l'outil dédiée pour tous les objets +tool.trackassembly.enctxmall_con=Activer le menu contextuel pour tous les objets +tool.trackassembly.enctxmenu=Active le menu contextuel de l'outil dédiée pour les pièces +tool.trackassembly.enctxmenu_con=Activer le menu contextuel +tool.trackassembly.endsvlock=Active le verrouillage du fichier de la base de données DSV externe +tool.trackassembly.endsvlock_con=Activer le verrou de la base de données DSV +tool.trackassembly.engunsnap=Contrôle l'alignement quand la pièce est tombée par le pistolet physique d'un joueur +tool.trackassembly.engunsnap_con=Activer l'alignement par pistolet physique +tool.trackassembly.enmultask=Active le multitâche pendant le mode d'empilement +tool.trackassembly.enmultask_con=Activer le système multitâche +tool.trackassembly.enpntmscr=Permet de basculer entre les points actifs par défilement de la molette +tool.trackassembly.enpntmscr_con=Activer le défilement de points +tool.trackassembly.enradmenu=Permet l'utilisation du menu radial du mode de travail +tool.trackassembly.enradmenu_con=Activer le menu radial +tool.trackassembly.enwiremod=Active l'extension pour la puce d'expression Wiremod +tool.trackassembly.enwiremod_con=Activer wire expression +tool.trackassembly.exportdb=Active l'exportation de la base de données en un grand fichier +tool.trackassembly.exportdb_con=Activer l'exportation de la base de données +tool.trackassembly.factory_reset=Cliquez ici pour appliquer les paramètres d'usine des variables de la console +tool.trackassembly.factory_reset_con=Appliquer les paramètres d'usine +tool.trackassembly.forcelim=Force nécessaire pour casser la soudure +tool.trackassembly.forcelim_con=Limite de force\: +tool.trackassembly.freeze=La pièce qui sera créée sera dans un état gelé +tool.trackassembly.freeze_con=Geler la pièce +tool.trackassembly.ghostblnd=Contrôle la transparence des fantômes. Plus la valeur est basse, plus ils sont transparents +tool.trackassembly.ghostblnd_con=Transparence des fantômes\: +tool.trackassembly.ghostcnt=Montrer un aperçu de la pièces compter active +tool.trackassembly.ghostcnt_con=Activer compter l'aperçu de l'outil +tool.trackassembly.gravity=Contrôle la gravité sur la pièce créée +tool.trackassembly.gravity_con=Appliquer la gravité sur la pièce +tool.trackassembly.ignphysgn=Ignore la saisie du pistolet physiques sur la pièce créée/alignée/empilé +tool.trackassembly.ignphysgn_con=Ignorer le pistolet physiques +tool.trackassembly.igntype=Faire ignorer à l'outil les différents types de pièce dès l'alignement/empilement +tool.trackassembly.igntype_con=Ignorer le type de piste +tool.trackassembly.incsnpang=Défini le pas d'incrémentation angulaire +tool.trackassembly.incsnpang_con=Pas angulaire\: +tool.trackassembly.incsnplin=Défini le pas d'incrémentation linéaire +tool.trackassembly.incsnplin_con=Pas linéaire\: tool.trackassembly.info.1=Créer des pièces sur la carte ou les aligner relativement entre elles tool.trackassembly.info.2=Connecte les sections de piste avec un segment spécialement dédié pour cela tool.trackassembly.info.3=Forme une piste continue passant par les points de passage définis tool.trackassembly.info.4=Retourne les entités sélectionnées de la liste à travers les origines et normales définis +tool.trackassembly.info.5=Crée des transitions plus fluides dans les virages où le rayon change dans les courbes tool.trackassembly.left.1=Créer/Aligner une pièce de piste. Maintenir MAJUSCULE pour empiler tool.trackassembly.left.2=Créer une pièce de piste au point d'intersection tool.trackassembly.left.3=Créer la piste segmentée par interpolation de courbe tool.trackassembly.left.4=Créer les pistes retournées de la liste sélectionnée tool.trackassembly.left.5=Créer la piste segmentée par interpolation de courbe -tool.trackassembly.right.1=Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes -tool.trackassembly.right.2=Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes -tool.trackassembly.right.3=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser -tool.trackassembly.right.4=Enregistrer l'entité dans la liste à retourner. Maintenir MAJUSCULE pour changer le modèle -tool.trackassembly.right.5=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser -tool.trackassembly.right_use.1=MOLETTE désactivée. Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes -tool.trackassembly.right_use.2=MOLETTE désactivée. Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes -tool.trackassembly.right_use.3=Générer un nœud depuis le point actif de la pièce de piste la plus proche -tool.trackassembly.right_use.4=MOLETTE désactivée. Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes -tool.trackassembly.right_use.5=Générer un nœud depuis le point actif de la pièce de piste la plus proche -tool.trackassembly.reload.1=Retirer une pièce de piste. Maintenir MAJUSCULE pour sélectionner une ancre -tool.trackassembly.reload.2=Retirer une pièce de piste. Maintenir MAJUSCULE pour sélectionner le rayon de sélection -tool.trackassembly.reload.3=Retire un nœud de l'interpolation de courbe. Maintenir MAJUSCULE pour vider le tas -tool.trackassembly.reload.4=Vider la liste des entités à retourner. Retire une pièce si la liste est vide -tool.trackassembly.reload.5=Retire un nœud de l'interpolation de courbe. Maintenir MAJUSCULE pour vider le tas -tool.trackassembly.reload_use.1=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV -tool.trackassembly.reload_use.2=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV -tool.trackassembly.reload_use.3=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV -tool.trackassembly.reload_use.4=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV -tool.trackassembly.reload_use.5=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV -tool.trackassembly.desc=Assemble une piste auquel les véhicules peuvent rouler dessus -tool.trackassembly.name=Assembleur à piste -tool.trackassembly.phytype=Sélectionnez une des propriétés physiques dans la liste -tool.trackassembly.phytype_con=Type de matériau\: -tool.trackassembly.phytype_def= -tool.trackassembly.phyname=Sélectionnez une des noms de propriétés physiques à utiliser lorsque qu'une piste sera créée. Ceci va affecter la friction de la surface -tool.trackassembly.phyname_con=Nom de matériau de surface\: -tool.trackassembly.phyname_def= -tool.trackassembly.bgskids=Cette ensemble de code est delimité par une virgule pour chaque Groupes de corps/ID Apparence -tool.trackassembly.bgskids_con=Groupes de corps/Apparence\: -tool.trackassembly.bgskids_def=Écrivez le code de sélection ici. Par exemple 1,0,0,2,1/3 +tool.trackassembly.logfile=Commence la diffusion du journal dans un fichier dédié +tool.trackassembly.logfile_con=Activer le journal +tool.trackassembly.logsmax=Changer ceci pour ajuster le flux maximum des lignes écrites par le journal +tool.trackassembly.logsmax_con=Lignes maximum\: tool.trackassembly.mass=À quel point la pièce créée sera lourd tool.trackassembly.mass_con=Masse de la pièce\: +tool.trackassembly.maxactrad=Changer ceci pour ajuster le rayon actif maximal pour obtenir l'ID d'un point +tool.trackassembly.maxactrad_con=Limite du rayon\: +tool.trackassembly.maxforce=Changer ceci pour ajuster la limite maximale de la force lors des soudures +tool.trackassembly.maxforce_con=Limite de force\: +tool.trackassembly.maxfruse=Changer ceci pour ajuster combien de pièces peuvent apparaître dans la fenêtre des pièces fréquentes +tool.trackassembly.maxfruse_con=Pièces fréquentes\: +tool.trackassembly.maxghcnt=Modifiez ceci pour ajuster le nombre maximal de pièces en mode empilage +tool.trackassembly.maxghcnt_con=Limite des fantômes\: +tool.trackassembly.maxlinear=Changer ceci pour ajuster le décalage linéaire maximal sur une pièce +tool.trackassembly.maxlinear_con=Limite du décalage\: +tool.trackassembly.maxmass=Changer ceci pour ajuster la masse maximale pouvant être appliquée sur une pièce +tool.trackassembly.maxmass_con=Limite de la masse\: +tool.trackassembly.maxmenupr=Changer ceci pour ajuster le nombre de chiffres après la virgule dans le menu +tool.trackassembly.maxmenupr_con=Séparateur décimal\: +tool.trackassembly.maxspmarg=Modifiez ceci pour ajuster la marge de distance par rapport à la génération précédente +tool.trackassembly.maxspmarg_con=Marge de génération\: +tool.trackassembly.maxstatts=Défini combien de tentatives d'empilement le script va essayer avant d'échouer +tool.trackassembly.maxstatts_con=Tentatives d'empilement\: +tool.trackassembly.maxstcnt=Changer ceci pour ajuster le maximum de pièces pouvant être créées en mode empilement +tool.trackassembly.maxstcnt_con=Limite d'empilement\: +tool.trackassembly.maxtrmarg=Changer ceci pour ajuster le temps entre les tracées de l'outil +tool.trackassembly.maxtrmarg_con=Marge de la tracée\: +tool.trackassembly.modedb=Modifiez ceci pour définir le comportement de stockage de la base de données de pistes +tool.trackassembly.modedb_con=Mode base de données\: +tool.trackassembly.modedb_lua=Utiliser le stockage cache direct +tool.trackassembly.modedb_sql=Cache uniquement les enregistrements demandés tool.trackassembly.model=Sélectionnez une pièce pour commencer/continuer votre piste avec en étendant un type et en cliquant sur un nœud tool.trackassembly.model_con=Modèle de la pièce\: -tool.trackassembly.activrad=Distance minimum nécessaire pour sélectionner un point actif -tool.trackassembly.activrad_con=Rayon actif\: -tool.trackassembly.stackcnt=Nombre maximum de pièces à créer pendant l'empilement -tool.trackassembly.stackcnt_con=Nombre de pièces\: -tool.trackassembly.angsnap=Aligner la première pièce créée sur ce degré -tool.trackassembly.angsnap_con=Alignement angulaire\: -tool.trackassembly.resetvars=Cliquez pour réinitialiser les valeurs supplémentaires -tool.trackassembly.resetvars_con=V Réinitialiser les variables V +tool.trackassembly.name=Assembleur à piste tool.trackassembly.nextpic=Décalage angulaire supplémentaire sur la position initial du tangage tool.trackassembly.nextpic_con=Angle du tangage\: -tool.trackassembly.nextyaw=Décalage angulaire supplémentaire sur la position initial du lacet -tool.trackassembly.nextyaw_con=Angle du lacet\: tool.trackassembly.nextrol=Décalage angulaire supplementaire sur la position initial du roulis tool.trackassembly.nextrol_con=Angle du roulis\: tool.trackassembly.nextx=Décalage linéaire supplémentaire sur la position initial de X tool.trackassembly.nextx_con=Décalage en X\: tool.trackassembly.nexty=Décalage linéaire supplémentaire sur la position initial de Y tool.trackassembly.nexty_con=Décalage en Y\: +tool.trackassembly.nextyaw=Décalage angulaire supplémentaire sur la position initial du lacet +tool.trackassembly.nextyaw_con=Angle du lacet\: tool.trackassembly.nextz=Décalage linéaire supplémentaire sur la position initial de Z tool.trackassembly.nextz_con=Décalage en Z\: -tool.trackassembly.gravity=Contrôle la gravité sur la pièce créée -tool.trackassembly.gravity_con=Appliquer la gravité sur la pièce -tool.trackassembly.weld=Créer une soudure entre les pièces/ancres -tool.trackassembly.weld_con=Souder -tool.trackassembly.forcelim=Force nécessaire pour casser la soudure -tool.trackassembly.forcelim_con=Limite de force\: -tool.trackassembly.ignphysgn=Ignore la saisie du pistolet physiques sur la pièce créée/alignée/empilé -tool.trackassembly.ignphysgn_con=Ignorer le pistolet physiques tool.trackassembly.nocollide=Faire en sorte que les pièces/ancres ne puissent jamais entrer en collision tool.trackassembly.nocollide_con=Pas de collisions tool.trackassembly.nocollidew=Faire en sorte que les pièces/monde ne puisse jamais entrer en collision tool.trackassembly.nocollidew_con=Pas de collisions avec le monde -tool.trackassembly.freeze=La pièce qui sera créée sera dans un état gelé -tool.trackassembly.freeze_con=Geler la pièce -tool.trackassembly.igntype=Faire ignorer à l'outil les différents types de pièce dès l'alignement/empilement -tool.trackassembly.igntype_con=Ignorer le type de piste -tool.trackassembly.spnflat=La prochaine pièce sera créée/alignée/empilé horizontalement -tool.trackassembly.spnflat_con=Créer horizontalement -tool.trackassembly.spawncn=Créer la pièce vers le centre, sinon, la créer relativement vers le point active choisi -tool.trackassembly.spawncn_con=Partir du centre -tool.trackassembly.surfsnap=Aligne la pièce vers la surface auquel le joueur vise actuellement -tool.trackassembly.surfsnap_con=Aligner vers la surface tracé -tool.trackassembly.appangfst=Appliquer les décalages angulaires seulement sur la première pièce -tool.trackassembly.appangfst_con=Appliquer angulaire en premier -tool.trackassembly.applinfst=Appliquer les décalages linéaires seulement sur la première pièce -tool.trackassembly.applinfst_con=Appliquer linéaire en premier -tool.trackassembly.adviser=Montrer le conseiller de position/angle de l'outil -tool.trackassembly.adviser_con=Montrer le conseiller -tool.trackassembly.pntasist=Montrer l'assistant d'alignement de l'outil -tool.trackassembly.pntasist_con=Montrer l'assistant -tool.trackassembly.ghostcnt=Montrer un aperçu de la pièces compter active -tool.trackassembly.ghostcnt_con=Activer compter l'aperçu de l'outil -tool.trackassembly.engunsnap=Contrôle l'alignement quand la pièce est tombée par le pistolet physique d'un joueur -tool.trackassembly.engunsnap_con=Activer l'alignement par pistolet physique -tool.trackassembly.type=Sélectionnez le type de piste à utiliser en développant le dossier -tool.trackassembly.type_con=Type de piste\: -tool.trackassembly.subfolder=Sélectionnez la catégorie de piste à utiliser en développant le dossier -tool.trackassembly.subfolder_con=Catégorie de piste\: -tool.trackassembly.workmode=Modifiez cette option pour utiliser différents modes de travail -tool.trackassembly.workmode_con=Mode de travail\: +tool.trackassembly.nonrep_var=Contrôles de convar non répliqués. Ils ont des valeurs différentes sur le serveur et le client +tool.trackassembly.phyname=Sélectionnez une des noms de propriétés physiques à utiliser lorsque qu'une piste sera créée. Ceci va affecter la friction de la surface +tool.trackassembly.phyname_con=Nom de matériau de surface\: +tool.trackassembly.phyname_def= +tool.trackassembly.phytype=Sélectionnez une des propriétés physiques dans la liste +tool.trackassembly.phytype_con=Type de matériau\: +tool.trackassembly.phytype_def= +tool.trackassembly.pn_contextm_cp=Copier +tool.trackassembly.pn_contextm_cpbx=Boîte +tool.trackassembly.pn_contextm_cpmd=Modèle +tool.trackassembly.pn_contextm_cpnm=Nom +tool.trackassembly.pn_contextm_cprw=Ligne +tool.trackassembly.pn_contextm_cpth=Chemin +tool.trackassembly.pn_contextm_cpty=Type +tool.trackassembly.pn_contextm_ep=Développer le nœud +tool.trackassembly.pn_contextm_ex=Exporter +tool.trackassembly.pn_contextm_exdv=Externe +tool.trackassembly.pn_contextm_exru=Exécution automatique +tool.trackassembly.pn_contextm_li=Ligne +tool.trackassembly.pn_contextm_licg=Changer +tool.trackassembly.pn_contextm_licr=Créer +tool.trackassembly.pn_contextm_lirm=Supprimer +tool.trackassembly.pn_contextm_mv=Déplacer +tool.trackassembly.pn_contextm_mvbt=Bas +tool.trackassembly.pn_contextm_mvdn=Descendre +tool.trackassembly.pn_contextm_mvtp=Haut +tool.trackassembly.pn_contextm_mvup=Monter +tool.trackassembly.pn_contextm_st=Tableaux +tool.trackassembly.pn_contextm_stdl=Supprimer des fichiers +tool.trackassembly.pn_contextm_sted=Modifier des fichiers (Luapad) +tool.trackassembly.pn_contextm_stnk=Copier le nom +tool.trackassembly.pn_contextm_stpt=Copier le chemin +tool.trackassembly.pn_contextm_stsz=Copier la taille +tool.trackassembly.pn_contextm_sttm=Copier l'heuree +tool.trackassembly.pn_contextm_tg=Basculer +tool.trackassembly.pn_contextm_ws=Workshop +tool.trackassembly.pn_contextm_wsid=Copier WID +tool.trackassembly.pn_contextm_wsop=Ouvrir la page +tool.trackassembly.pn_display=Le modèle de votre pièce de piste est affiché ici +tool.trackassembly.pn_display_lb=Affichage pièce tool.trackassembly.pn_export=Cliquer pour exporter la base de données client dans un fichier tool.trackassembly.pn_export_lb=Exporter BD -tool.trackassembly.pn_routine=La liste de vos pièces de pistes utilisées fréquemment -tool.trackassembly.pn_routine_hd=Pièces fréquents par\: -tool.trackassembly.pn_externdb=Les base de données disponibles pour\: +tool.trackassembly.pn_extdsv_act=Active +tool.trackassembly.pn_extdsv_hd=La liste des base de données DSV sont affichées ici +tool.trackassembly.pn_extdsv_inf=Informations supplémentaires +tool.trackassembly.pn_extdsv_lb=Liste DSV externe +tool.trackassembly.pn_extdsv_prf=Préfixe unique de la base de donnée +tool.trackassembly.pn_externdb_bte=Exporter +tool.trackassembly.pn_externdb_bte_tp=Exporte les informations du panneau vers la liste de fichiers et applique +tool.trackassembly.pn_externdb_bti=Importer +tool.trackassembly.pn_externdb_bti_tp=Importe les informations de la liste de fichiers dans le panneau pour édition tool.trackassembly.pn_externdb_hd=Base de données de\: -tool.trackassembly.pn_externdb_lb=Clic droit pour les options\: -tool.trackassembly.pn_externdb_bt1=Copier préfixe unique -tool.trackassembly.pn_externdb_bt2=Copier chemin dossier DSV -tool.trackassembly.pn_externdb_bt3=Copier le nom de la table -tool.trackassembly.pn_externdb_bt4=Copier le chemin de la table -tool.trackassembly.pn_externdb_bt5=Copier l'heure de la table -tool.trackassembly.pn_externdb_bt6=Copier la taille de la table -tool.trackassembly.pn_externdb_bt7=Modifier le contenu de la table (Luapad) -tool.trackassembly.pn_externdb_bt8=Supprimer l'entrée de la base de donnée -tool.trackassembly.pn_ext_dsv_lb=Liste DSV externe -tool.trackassembly.pn_ext_dsv_hd=La liste des base de données DSV sont affichées ici -tool.trackassembly.pn_ext_dsv_1=Active -tool.trackassembly.pn_ext_dsv_2=Préfixe unique de la base de donnée -tool.trackassembly.pn_display=Le modèle de votre pièce de piste est affiché ici +tool.trackassembly.pn_externdb_ttt=Valeur de configuration actuelle modifiée\: tool.trackassembly.pn_pattern=Écrire un modèle ici et appuyer sur ENTRÉE pour effectuer une recherche +tool.trackassembly.pn_pattern_lb=Écrire modèle +tool.trackassembly.pn_routine=La liste de vos pièces de pistes utilisées fréquemment +tool.trackassembly.pn_routine_end=Fin +tool.trackassembly.pn_routine_hd=Pièces fréquents par\: +tool.trackassembly.pn_routine_lb=Articles de routine +tool.trackassembly.pn_routine_mod=Modèle +tool.trackassembly.pn_routine_nam=Nom +tool.trackassembly.pn_routine_typ=Type +tool.trackassembly.pn_routine_use=Utilisé tool.trackassembly.pn_srchcol=Choisir la liste de colonne auquel vous voulez effectuer une recherche sur tool.trackassembly.pn_srchcol_lb= -tool.trackassembly.pn_srchcol_lb1=Modèle -tool.trackassembly.pn_srchcol_lb2=Type -tool.trackassembly.pn_srchcol_lb3=Nom -tool.trackassembly.pn_srchcol_lb4=Fin -tool.trackassembly.pn_routine_lb=Articles de routine -tool.trackassembly.pn_routine_lb1=Utilisé -tool.trackassembly.pn_routine_lb2=Fin -tool.trackassembly.pn_routine_lb3=Type -tool.trackassembly.pn_routine_lb4=Nom -tool.trackassembly.pn_display_lb=Affichage pièce -tool.trackassembly.pn_pattern_lb=Écrire modèle +tool.trackassembly.pntasist=Montrer l'assistant d'alignement de l'outil +tool.trackassembly.pntasist_con=Montrer l'assistant +tool.trackassembly.relica_var=Contrôles de convar répliqués. La valeur du serveur est envoyée à tous les clients +tool.trackassembly.reload.1=Retirer une pièce de piste. Maintenir MAJUSCULE pour sélectionner une ancre +tool.trackassembly.reload.2=Retirer une pièce de piste. Maintenir MAJUSCULE pour sélectionner le rayon de sélection +tool.trackassembly.reload.3=Retire un nœud de l'interpolation de courbe. Maintenir MAJUSCULE pour vider le tas +tool.trackassembly.reload.4=Vider la liste des entités à retourner. Retire une pièce si la liste est vide +tool.trackassembly.reload.5=Retire un nœud de l'interpolation de courbe. Maintenir MAJUSCULE pour vider le tas +tool.trackassembly.reload_use.1=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV +tool.trackassembly.reload_use.2=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV +tool.trackassembly.reload_use.3=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV +tool.trackassembly.reload_use.4=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV +tool.trackassembly.reload_use.5=Activer l'exportation de la base de données pour ouvrir le gestionnaire DSV +tool.trackassembly.resetvars=Cliquez pour réinitialiser les valeurs supplémentaires +tool.trackassembly.resetvars_con=V Réinitialiser les variables V +tool.trackassembly.right.1=Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes +tool.trackassembly.right.2=Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes +tool.trackassembly.right.3=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser +tool.trackassembly.right.4=Enregistrer l'entité dans la liste à retourner. Maintenir MAJUSCULE pour changer le modèle +tool.trackassembly.right.5=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser +tool.trackassembly.right_use.1=MOLETTE désactivée. Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes +tool.trackassembly.right_use.2=MOLETTE désactivée. Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes +tool.trackassembly.right_use.3=Générer un nœud depuis le point actif de la pièce de piste la plus proche +tool.trackassembly.right_use.4=MOLETTE désactivée. Copier le modèle de la pièce de piste ou ouvrir la fenêtre des pièces fréquentes +tool.trackassembly.right_use.5=Générer un nœud depuis le point actif de la pièce de piste la plus proche +tool.trackassembly.rtradmenu=Modifiez ceci pour ajuster l'angle de base du menu radial et repositionner ses options +tool.trackassembly.rtradmenu_con=Rotation radiale\: +tool.trackassembly.sgradmenu=Modifiez ceci pour rendre le menu radial plus arrondi. Plus la valeur est élevée, plus c'est lisse +tool.trackassembly.sgradmenu_con=Segments radiaux\: tool.trackassembly.sizeucs=Calibration de l'échelle pour le système de coordonnées affiché tool.trackassembly.sizeucs_con=Échelle UCS\: -tool.trackassembly.maxstatts=Défini combien de tentatives d'empilement le script va essayer avant d'échouer -tool.trackassembly.maxstatts_con=Tentatives d'empilement\: -tool.trackassembly.incsnpang=Défini le pas d'incrémentation angulaire -tool.trackassembly.incsnpang_con=Pas angulaire\: -tool.trackassembly.incsnplin=Défini le pas d'incrémentation linéaire -tool.trackassembly.incsnplin_con=Pas linéaire\: -tool.trackassembly.enradmenu=Permet l'utilisation du menu radial du mode de travail -tool.trackassembly.enradmenu_con=Activer le menu radial -tool.trackassembly.enpntmscr=Permet de basculer entre les points actifs par défilement de la molette -tool.trackassembly.enpntmscr_con=Activer le défilement de points -tool.trackassembly.exportdb=Active l'exportation de la base de données en un grand fichier -tool.trackassembly.exportdb_con=Activer l'exportation de la base de données -tool.trackassembly.devmode=Active le traçage et débogage -tool.trackassembly.devmode_con=Activer le mode développeur -tool.trackassembly.maxtrmarg=Changer ceci pour ajuster le temps entre les tracées de l'outil -tool.trackassembly.maxtrmarg_con=Marge de la tracée\: -tool.trackassembly.maxmenupr=Changer ceci pour ajuster le nombre de chiffres après la virgule dans le menu -tool.trackassembly.maxmenupr_con=Séparateur décimal\: -tool.trackassembly.maxmass=Changer ceci pour ajuster la masse maximale pouvant être appliquée sur une pièce -tool.trackassembly.maxmass_con=Limite de la masse\: -tool.trackassembly.maxlinear=Changer ceci pour ajuster le décalage linéaire maximal sur une pièce -tool.trackassembly.maxlinear_con=Limite du décalage\: -tool.trackassembly.maxforce=Changer ceci pour ajuster la limite maximale de la force lors des soudures -tool.trackassembly.maxforce_con=Limite de force\: -tool.trackassembly.maxactrad=Changer ceci pour ajuster le rayon actif maximal pour obtenir l'ID d'un point -tool.trackassembly.maxactrad_con=Limite du rayon\: -tool.trackassembly.maxstcnt=Changer ceci pour ajuster le maximum de pièces pouvant être créées en mode empilement -tool.trackassembly.maxstcnt_con=Limite d'empilement\: -tool.trackassembly.enwiremod=Active l'extension pour la puce d'expression Wiremod -tool.trackassembly.enwiremod_con=Activer wire expression -tool.trackassembly.enmultask=Active le multitâche pendant le mode d'empilement -tool.trackassembly.enmultask_con=Activer le système multitâche -tool.trackassembly.enctxmenu=Active le menu contextuel de l'outil dédiée pour les pièces -tool.trackassembly.enctxmenu_con=Activer le menu contextuel -tool.trackassembly.enctxmall=Active le menu contextuel de l'outil dédiée pour tous les objets -tool.trackassembly.enctxmall_con=Activer le menu contextuel pour tous les objets -tool.trackassembly.endsvlock=Active le verrouillage du fichier de la base de données DSV externe -tool.trackassembly.endsvlock_con=Activer le verrou de la base de données DSV -tool.trackassembly.curvefact=Changer ceci pour ajuster le facteur courbe du coefficient tangent -tool.trackassembly.curvefact_con=Facteur courbe\: -tool.trackassembly.curvsmple=Changer ceci pour ajuster les échantillons pour la courbe d'interpolation -tool.trackassembly.curvsmple_con=Échantillons courbe\: -tool.trackassembly.crvturnlm=Changer ceci pour ajuster la finesse de la courbure en virage pour le segment -tool.trackassembly.crvturnlm_con=Courbure en virage\: -tool.trackassembly.crvleanlm=Changer ceci pour ajuster la finesse de la courbure en inclinaison pour le segment -tool.trackassembly.crvleanlm_con=Courbure en inclinaison\: +tool.trackassembly.spawncn=Créer la pièce vers le centre, sinon, la créer relativement vers le point active choisi +tool.trackassembly.spawncn_con=Partir du centre tool.trackassembly.spawnrate=Changer ceci pour ajuster la quantité de segments de pistes créés par cycle de serveur tool.trackassembly.spawnrate_con=Quantité création\: -tool.trackassembly.bnderrmod=Changer ceci pour définir le comportement quand les clients créent des pièces en dehors des limites de la carte -tool.trackassembly.bnderrmod_off=[1] Autoriser l'empilement/création sans restriction -tool.trackassembly.bnderrmod_log=[2] Refuser l'empilement/création l'erreur est enregistré -tool.trackassembly.bnderrmod_hint=[3] Refuser l'empilement/création message d'astuce est affiché -tool.trackassembly.bnderrmod_generic=[4] Refuser l'empilement/création message générique est affiché -tool.trackassembly.bnderrmod_error=[5] Refuser l'empilement/création message d'erreur est affiché -tool.trackassembly.bnderrmod_con=Sécurité frontière\: -tool.trackassembly.maxfruse=Changer ceci pour ajuster combien de pièces peuvent apparaître dans la fenêtre des pièces fréquentes -tool.trackassembly.maxfruse_con=Pièces fréquentes\: +tool.trackassembly.spnflat=La prochaine pièce sera créée/alignée/empilé horizontalement +tool.trackassembly.spnflat_con=Créer horizontalement +tool.trackassembly.stackcnt=Nombre maximum de pièces à créer pendant l'empilement +tool.trackassembly.stackcnt_con=Nombre de pièces\: +tool.trackassembly.subfolder=Sélectionnez la catégorie de piste à utiliser en développant le dossier +tool.trackassembly.subfolder_con=Catégorie de piste\: +tool.trackassembly.surfsnap=Aligne la pièce vers la surface auquel le joueur vise actuellement +tool.trackassembly.surfsnap_con=Aligner vers la surface tracé tool.trackassembly.timermode_ap=Cliquer ici pour appliquer vos changements au gestionnaire de mémoire SQL tool.trackassembly.timermode_ap_con=Appliquer les paramètres de la mémoire -tool.trackassembly.timermode_md=Changer ceci pour ajuster l'algorithme de la minuterie du gestionnaire de mémoire SQL -tool.trackassembly.timermode_lf=Changer ceci pour ajuster pendant combien de temps une entrée reste dans le cache -tool.trackassembly.timermode_lf_con=Durée de vie\: -tool.trackassembly.timermode_rd=Efface les entrées du cache en forçant une valeur nulle -tool.trackassembly.timermode_rd_con=Activer la suppression des entrées +tool.trackassembly.timermode_cqt=Mettre en cache la minuterie de la requête via l'enregistrement de la requête tool.trackassembly.timermode_ct=Force l'exécution du recyclage de la mémoire lorsqu'une entrée est supprimée tool.trackassembly.timermode_ct_con=Activer le ramasse-miettes +tool.trackassembly.timermode_lf=Changer ceci pour ajuster pendant combien de temps une entrée reste dans le cache +tool.trackassembly.timermode_lf_con=Durée de vie\: +tool.trackassembly.timermode_md=Changer ceci pour ajuster l'algorithme de la minuterie du gestionnaire de mémoire SQL tool.trackassembly.timermode_mem=Gestionnaire de mémoire de la table SQL\: -tool.trackassembly.timermode_cqt=Mettre en cache la minuterie de la requête via l'enregistrement de la requête tool.trackassembly.timermode_obj=Minuterie objet attachée à l'enregistrement du cache -tool.trackassembly.logfile=Commence la diffusion du journal dans un fichier dédié -tool.trackassembly.logfile_con=Activer le journal -tool.trackassembly.logsmax=Changer ceci pour ajuster le flux maximum des lignes écrites par le journal -tool.trackassembly.logsmax_con=Lignes maximum\: -sbox_maxasmtracks=Changer ceci pour ajuster les choses créées par l'outil assembleur à piste sur le serveur -sbox_maxasmtracks_con=Quantité de rails\: -Cleanup_asmtracks=Pièces de piste assemblées -Cleaned_asmtracks=Pistes nettoyées -SBoxLimit_asmtracks=Vous avez atteint la limite des pistes créées! +tool.trackassembly.timermode_rd=Efface les entrées du cache en forçant une valeur nulle +tool.trackassembly.timermode_rd_con=Activer la suppression des entrées +tool.trackassembly.type=Sélectionnez le type de piste à utiliser en développant le dossier +tool.trackassembly.type_con=Type de piste\: +tool.trackassembly.upspanchor=Activer pour mettre à jour l'ancrage à chaque apparition sans ajustement +tool.trackassembly.upspanchor_con=Mettre à jour l'ancrage à l'apparition +tool.trackassembly.utilities_admin=Configuration des paramètres administrateur +tool.trackassembly.utilities_user=Configuration des paramètres utilisateur +tool.trackassembly.weld=Créer une soudure entre les pièces/ancres +tool.trackassembly.weld_con=Souder +tool.trackassembly.workmode.1=Général créer/aligner des pièces +tool.trackassembly.workmode.2=Point d'intersection actif +tool.trackassembly.workmode.3=Ajuster des segments de ligne courbés +tool.trackassembly.workmode.4=Retourner la normale d'une surface +tool.trackassembly.workmode.5=Transitions tangentielles dans les virages +tool.trackassembly.workmode=Modifiez cette option pour utiliser différents modes de travail +tool.trackassembly.workmode_con=Mode de travail\: diff --git a/resource/localization/ja/trackassembly.properties b/resource/localization/ja/trackassembly.properties index 667950eb..737c48d6 100644 --- a/resource/localization/ja/trackassembly.properties +++ b/resource/localization/ja/trackassembly.properties @@ -1,115 +1,109 @@  -tool.trackassembly.workmode.1=通常部分のスポーン/スナップ -tool.trackassembly.workmode.2=アクティブポイントの交差点 -tool.trackassembly.workmode.3=曲線線分フィッティング -tool.trackassembly.desc=乗り物が走る線路を組み立てる -tool.trackassembly.name=線路の組み立て -tool.trackassembly.phytype=一覧済みしたものの物性タイプを選択して -tool.trackassembly.phytype_def=<表面物質タイプを選択して> -tool.trackassembly.phyname=線路を作る時物性ネームを選択すると表面フリクションに効果が出る -tool.trackassembly.phyname_con=表面材料名\: -tool.trackassembly.phyname_def=<表面物質ネームを選択して> +Cleaned_asmtracks=線路部分全部綺麗にした +Cleanup_asmtracks=組み立てた線路部分 +SBoxLimit_asmtracks=スポーンした線路の限定 +tool.trackassembly.activrad=アクティブポイントを選ぶの最小限距離 +tool.trackassembly.activrad_con=アクティブ半径\: +tool.trackassembly.adviser=ツールのレンダリング拠点/角度アドバイザーを管理する +tool.trackassembly.adviser_con=ドローアドバイザー +tool.trackassembly.angsnap=この程度で最初の部分をスナップして +tool.trackassembly.angsnap_con=鋭角的な路線\: +tool.trackassembly.appangfst=最初部分のみに鋭角的なオフセットを付けて +tool.trackassembly.appangfst_con=最初のに鋭角的のを付けて +tool.trackassembly.applinfst=最初部分のみに点直線的なオフセットを付けて +tool.trackassembly.applinfst_con=最初のに点直線のを付けて tool.trackassembly.bgskids=コンマ区切りボディーグループ/スキンIDのセレクションコード。 tool.trackassembly.bgskids_con=ボディーグループ/スキン\: tool.trackassembly.bgskids_def=ここにセレクションコードを登録して。模範1,0,0,2,1/3 +tool.trackassembly.desc=乗り物が走る線路を組み立てる +tool.trackassembly.engunsnap=プレイヤー物理銃が落とした部分のスナップを管理する +tool.trackassembly.engunsnap_con=物理銃スナップを可能にする +tool.trackassembly.forcelim=溶接打点を壊す必要な力を管理する +tool.trackassembly.forcelim_con=力の限定\: +tool.trackassembly.freeze=動かぬ状態で部分をスポーンする +tool.trackassembly.freeze_con=それは移動しません +tool.trackassembly.ghostcnt=ツールのレンダリングゴーステッドホルダー部分数を管理する +tool.trackassembly.ghostcnt_con=ドローホルダーゴースト +tool.trackassembly.gravity=スポーンした部分の重力を管理する +tool.trackassembly.gravity_con=部分重力を付ける +tool.trackassembly.ignphysgn=スポーンした/スナップした/スタックした部分の物理銃掴むを無視する +tool.trackassembly.ignphysgn_con=物理銃を無視する +tool.trackassembly.igntype=ツールをスナップする/スタックする時部分の種類を無視させる +tool.trackassembly.igntype_con=線路部分タイプを無視して tool.trackassembly.mass=スポーンする部分の重さ tool.trackassembly.mass_con=部分の質量\: tool.trackassembly.model=タイプを拡張してとノードをクリックしてで線路を始まる/続けるために部分を選んで tool.trackassembly.model_con=部分のモデル\: -tool.trackassembly.activrad=アクティブポイントを選ぶの最小限距離 -tool.trackassembly.activrad_con=アクティブ半径\: -tool.trackassembly.stackcnt=スタックする場合線路部分の最大量 -tool.trackassembly.stackcnt_con=部分の数\: -tool.trackassembly.angsnap=この程度で最初の部分をスナップして -tool.trackassembly.angsnap_con=鋭角的な路線\: -tool.trackassembly.resetvars=追加的な数値をリセットためにクリックして -tool.trackassembly.resetvars_con=V 変数リセット V +tool.trackassembly.name=線路の組み立て tool.trackassembly.nextpic=追加的原点鋭角的なピッチオフセット tool.trackassembly.nextpic_con=原点ピッチ\: -tool.trackassembly.nextyaw=追加的原点鋭角的なヨーオフセット -tool.trackassembly.nextyaw_con=原点ヨー\: tool.trackassembly.nextrol=追加的原点鋭角的なロールオフセット tool.trackassembly.nextrol_con=原点ロール\: tool.trackassembly.nextx=追加的原点直線的なXオフセット tool.trackassembly.nextx_con=Xオフセット\: tool.trackassembly.nexty=追加的原点直線的なYオフセット tool.trackassembly.nexty_con=Yオフセット\: +tool.trackassembly.nextyaw=追加的原点鋭角的なヨーオフセット +tool.trackassembly.nextyaw_con=原点ヨー\: tool.trackassembly.nextz=追加的原点直線的なZオフセット tool.trackassembly.nextz_con=Zオフセット\: -tool.trackassembly.gravity=スポーンした部分の重力を管理する -tool.trackassembly.gravity_con=部分重力を付ける -tool.trackassembly.weld=二つの部分と部分とアンカーの間に溶接打点を作る -tool.trackassembly.weld_con=溶接 -tool.trackassembly.forcelim=溶接打点を壊す必要な力を管理する -tool.trackassembly.forcelim_con=力の限定\: -tool.trackassembly.ignphysgn=スポーンした/スナップした/スタックした部分の物理銃掴むを無視する -tool.trackassembly.ignphysgn_con=物理銃を無視する tool.trackassembly.nocollide=部分と部分とアンカーの間に「突き当たる禁止」を入れる tool.trackassembly.nocollide_con=突き当たる禁止 tool.trackassembly.nocollidew=部分と世界ーの間に「突き当たる禁止」を入れる tool.trackassembly.nocollidew_con=な衝突世界突き当たる禁止 -tool.trackassembly.freeze=動かぬ状態で部分をスポーンする -tool.trackassembly.freeze_con=それは移動しません -tool.trackassembly.igntype=ツールをスナップする/スタックする時部分の種類を無視させる -tool.trackassembly.igntype_con=線路部分タイプを無視して -tool.trackassembly.spnflat=次の部分が横にスポーン/スナップ/スタック -tool.trackassembly.spnflat_con=横にスポーンして +tool.trackassembly.phyname=線路を作る時物性ネームを選択すると表面フリクションに効果が出る +tool.trackassembly.phyname_con=表面材料名\: +tool.trackassembly.phyname_def=<表面物質ネームを選択して> +tool.trackassembly.phytype=一覧済みしたものの物性タイプを選択して +tool.trackassembly.phytype_def=<表面物質タイプを選択して> +tool.trackassembly.pn_contextm_st=Tables +tool.trackassembly.pn_contextm_stdl=データベースエントリを消して +tool.trackassembly.pn_contextm_sted=アイテムを編集して(Luapad) +tool.trackassembly.pn_contextm_stnk=テーブルニックネームをコピーして +tool.trackassembly.pn_contextm_stpt=テーブルパスをコピーして +tool.trackassembly.pn_contextm_stsz=テーブルサイズをコピーして +tool.trackassembly.pn_contextm_sttm=テーブルタイムをコピーして +tool.trackassembly.pn_display=プレーやの線路部分ここに映る +tool.trackassembly.pn_display_lb=部分を映る +tool.trackassembly.pn_export=クリックでクライアントデータベースをファイルにエクスポート +tool.trackassembly.pn_export_lb=DB エクスポート +tool.trackassembly.pn_extdsv_act=アクティブ +tool.trackassembly.pn_extdsv_hd=外部DSVデータベースリストはここに見せる +tool.trackassembly.pn_extdsv_lb=外部DSVリスト +tool.trackassembly.pn_extdsv_prf=データベース特異プレッフィクス +tool.trackassembly.pn_externdb_hd=外部データベース\: +tool.trackassembly.pn_pattern=ここにパターンを書くとサーチするためにENTERを押して +tool.trackassembly.pn_pattern_lb=パターンを書く +tool.trackassembly.pn_routine=よく使った線路部分表 +tool.trackassembly.pn_routine_end=角 +tool.trackassembly.pn_routine_hd=よく使った部分\: +tool.trackassembly.pn_routine_lb=定番アイテム +tool.trackassembly.pn_routine_mod=モデル +tool.trackassembly.pn_routine_nam=ネーム +tool.trackassembly.pn_routine_typ=タイプ +tool.trackassembly.pn_routine_use=期限 +tool.trackassembly.pn_srchcol=サーチするコラムを選択し +tool.trackassembly.pn_srchcol_lb=<でサーチ> +tool.trackassembly.pntasist=ツールのレンダリングスナップポイントアシスタントを管理する +tool.trackassembly.pntasist_con=ドローアシスタント +tool.trackassembly.resetvars=追加的な数値をリセットためにクリックして +tool.trackassembly.resetvars_con=V 変数リセット V tool.trackassembly.spawncn=真ん中で部分をスポーンして、他のは選んだアクティブポイントに身寄でスポーンする tool.trackassembly.spawncn_con=真ん中から原点 +tool.trackassembly.spnflat=次の部分が横にスポーン/スナップ/スタック +tool.trackassembly.spnflat_con=横にスポーンして +tool.trackassembly.stackcnt=スタックする場合線路部分の最大量 +tool.trackassembly.stackcnt_con=部分の数\: +tool.trackassembly.subfolder=フォルダを展開して、使用するトラックカテゴリを選択します +tool.trackassembly.subfolder_con=トラックカテゴリ\: tool.trackassembly.surfsnap=プレイヤーに指した表面で部分をスナップして tool.trackassembly.surfsnap_con=トレース表面でスナップして -tool.trackassembly.appangfst=最初部分のみに鋭角的なオフセットを付けて -tool.trackassembly.appangfst_con=最初のに鋭角的のを付けて -tool.trackassembly.applinfst=最初部分のみに点直線的なオフセットを付けて -tool.trackassembly.applinfst_con=最初のに点直線のを付けて -tool.trackassembly.adviser=ツールのレンダリング拠点/角度アドバイザーを管理する -tool.trackassembly.adviser_con=ドローアドバイザー -tool.trackassembly.pntasist=ツールのレンダリングスナップポイントアシスタントを管理する -tool.trackassembly.pntasist_con=ドローアシスタント -tool.trackassembly.ghostcnt=ツールのレンダリングゴーステッドホルダー部分数を管理する -tool.trackassembly.ghostcnt_con=ドローホルダーゴースト -tool.trackassembly.engunsnap=プレイヤー物理銃が落とした部分のスナップを管理する -tool.trackassembly.engunsnap_con=物理銃スナップを可能にする tool.trackassembly.type=フォルダを展開して、使用するトラックタイプを選択します tool.trackassembly.type_con=トラックタイプ\: -tool.trackassembly.subfolder=フォルダを展開して、使用するトラックカテゴリを選択します -tool.trackassembly.subfolder_con=トラックカテゴリ\: +tool.trackassembly.weld=二つの部分と部分とアンカーの間に溶接打点を作る +tool.trackassembly.weld_con=溶接 +tool.trackassembly.workmode.1=通常部分のスポーン/スナップ +tool.trackassembly.workmode.2=アクティブポイントの交差点 +tool.trackassembly.workmode.3=曲線線分フィッティング tool.trackassembly.workmode=稼働モード変更の設定 tool.trackassembly.workmode_con=稼働モ\: -tool.trackassembly.pn_export=クリックでクライアントデータベースをファイルにエクスポート -tool.trackassembly.pn_export_lb=DB エクスポート -tool.trackassembly.pn_routine=よく使った線路部分表 -tool.trackassembly.pn_routine_hd=よく使った部分\: -tool.trackassembly.pn_externdb=使用可能外部データベース\: -tool.trackassembly.pn_externdb_hd=外部データベース\: -tool.trackassembly.pn_externdb_lb=右クリックでオプション\: -tool.trackassembly.pn_externdb_bt1=特異プレフィックスをコピーして -tool.trackassembly.pn_externdb_bt2=DSVフォルダーをコピーして -tool.trackassembly.pn_externdb_bt3=テーブルニックネームをコピーして -tool.trackassembly.pn_externdb_bt4=テーブルパスをコピーして -tool.trackassembly.pn_externdb_bt5=テーブルタイムをコピーして -tool.trackassembly.pn_externdb_bt6=テーブルサイズをコピーして -tool.trackassembly.pn_externdb_bt7=アイテムを編集して(Luapad) -tool.trackassembly.pn_externdb_bt8=データベースエントリを消して -tool.trackassembly.pn_ext_dsv_lb=外部DSVリスト -tool.trackassembly.pn_ext_dsv_hd=外部DSVデータベースリストはここに見せる -tool.trackassembly.pn_ext_dsv_1=アクティブ -tool.trackassembly.pn_ext_dsv_2=データベース特異プレッフィクス -tool.trackassembly.pn_display=プレーやの線路部分ここに映る -tool.trackassembly.pn_pattern=ここにパターンを書くとサーチするためにENTERを押して -tool.trackassembly.pn_srchcol=サーチするコラムを選択し -tool.trackassembly.pn_srchcol_lb=<でサーチ> -tool.trackassembly.pn_srchcol_lb1=モデル -tool.trackassembly.pn_srchcol_lb2=タイプ -tool.trackassembly.pn_srchcol_lb3=ネーム -tool.trackassembly.pn_srchcol_lb4=角 -tool.trackassembly.pn_routine_lb=定番アイテム -tool.trackassembly.pn_routine_lb1=期限 -tool.trackassembly.pn_routine_lb2=角 -tool.trackassembly.pn_routine_lb3=タイプ -tool.trackassembly.pn_routine_lb4=ネーム -tool.trackassembly.pn_display_lb=部分を映る -tool.trackassembly.pn_pattern_lb=パターンを書く -Cleanup_asmtracks=組み立てた線路部分 -Cleaned_asmtracks=線路部分全部綺麗にした -SBoxLimit_asmtracks=スポーンした線路の限定 diff --git a/resource/localization/ru/trackassembly.properties b/resource/localization/ru/trackassembly.properties index 55e13c0d..72bc5335 100644 --- a/resource/localization/ru/trackassembly.properties +++ b/resource/localization/ru/trackassembly.properties @@ -1,125 +1,281 @@  -tool.trackassembly.workmode.1=Общее создание/прилепание куски -tool.trackassembly.workmode.2=Пересечение активной точки -tool.trackassembly.workmode.3=Кривой отрезок линии фитинг -tool.trackassembly.workmode.4=Нормаль поверхности перевернуть -tool.trackassembly.desc=Создает дорогу для транспортных средств -tool.trackassembly.name=Сборка дороги -tool.trackassembly.phytype=Выберите тип физических свойств из тех которые перечислены здесь -tool.trackassembly.phytype_con=Тип поверхности\: -tool.trackassembly.phytype_def=<Выберите ТИП поверхности> -tool.trackassembly.phyname=Выберите имя физических свойств которые могут быть использованы при создании дороги так как это повлияет на поверхностное трение -tool.trackassembly.phyname_con=Имя поверхности\: -tool.trackassembly.phyname_def=<Выберите ИМЯ поверхности> +Cleaned_asmtracks=Все куски дороги очищены +Cleanup_asmtracks=Собранные куски дороги +SBoxLimit_asmtracks=Вы достигли предела созданных кусков дороги! +sbox_maxasmtracks=Измените это, чтобы настроить объекты, создаваемые с помощью инструмента сборки треков на сервере +sbox_maxasmtracks_con=Всего сегментов\: +tool.trackassembly.activrad=Минимальное расстояние чтобы выбрать активную точку +tool.trackassembly.activrad_con=Активный радиус\: +tool.trackassembly.adviser=Управляет отображением позиционного/углового советника +tool.trackassembly.adviser_con=Нарисовать советник +tool.trackassembly.angsnap=Приклейте первый кусок созданный тем положением градусов +tool.trackassembly.angsnap_con=Угловое выравнивание\: +tool.trackassembly.appangfst=Применять угловое смещение только на первой кусок +tool.trackassembly.appangfst_con=Применять угловое на первой +tool.trackassembly.applinfst=Применять линейное смещение только на первой кусок +tool.trackassembly.applinfst_con=Применять линейное на первой tool.trackassembly.bgskids=Код выбора через запятую для Группа-тела/Кожа ID tool.trackassembly.bgskids_con=Группа-тела/Кожа\: tool.trackassembly.bgskids_def=Написать код выбора здесь. Например 1,0,0,2,1/3 +tool.trackassembly.bnderrmod=Измените это, чтобы определить поведение при попытке клиентов создавать объекты за пределами карты +tool.trackassembly.bnderrmod_con=Режим границ\: +tool.trackassembly.bnderrmod_error=Запрет на стек/создание, отображается сообщение об ошибке +tool.trackassembly.bnderrmod_generic=Запрет на стек/создание, отображается общее сообщение +tool.trackassembly.bnderrmod_hint=Запрет на стек/создание, отображается подсказка +tool.trackassembly.bnderrmod_log=Запрет на стек/создание, ошибка логируется +tool.trackassembly.bnderrmod_off=Разрешить стек/создание без ограничений +tool.trackassembly.buttonas+/-=Начение по умолчаниюз +tool.trackassembly.buttonas<>=Уменьшить/Увеличить +tool.trackassembly.buttonas@=Применять стоимость\: +tool.trackassembly.buttonas@D=Значение по умолчанию +tool.trackassembly.buttonas@M=Запомнить стоимость +tool.trackassembly.client_var=Настройки клиента. Консольные переменные создаются в конфигурации инструмента клиента +tool.trackassembly.crvleanlm=Измените это, чтобы настроить ограничение резкости при изгибе сегмента +tool.trackassembly.crvleanlm_con=Наклон кривизны\: +tool.trackassembly.crvsuprev=Измените это, чтобы настроить величину поперечного наклона, используемого в поворотах +tool.trackassembly.crvsuprev_con=Поперечный наклон\: +tool.trackassembly.crvturnlm=Измените это, чтобы настроить ограничение резкости при повороте сегмента +tool.trackassembly.crvturnlm_con=Поворот кривизны\: +tool.trackassembly.curvefact=Измените это, чтобы настроить коэффициент касательной кривизны +tool.trackassembly.curvefact_con=Коэффициент кривизны\: +tool.trackassembly.curvsmple=Измените это, чтобы настроить количество интерполяционных образцов кривизны +tool.trackassembly.curvsmple_con=Образцы кривизны\: +tool.trackassembly.desc=Создает дорогу для транспортных средств +tool.trackassembly.devmode=Включает режим разработчика для отслеживания и отладки +tool.trackassembly.devmode_con=Включить режим разработчика +tool.trackassembly.dtmessage=Управляет интервалами времени между серверными сообщениями в контекстном меню +tool.trackassembly.dtmessage_con=Интервал сообщений\: +tool.trackassembly.enctxmall=Включает контекстное меню инструмента для всех объектов +tool.trackassembly.enctxmall_con=Включить контекстное меню для всех объектов +tool.trackassembly.enctxmenu=Включает контекстное меню инструмента для элементов +tool.trackassembly.enctxmenu_con=Включить контекстное меню +tool.trackassembly.endsvlock=Включает блокировку внешней базы данных DSV +tool.trackassembly.endsvlock_con=Включить блокировку базы данных DSV +tool.trackassembly.engunsnap=Управляет приклеивание когда кусок выпущен физической пушки пользователя +tool.trackassembly.engunsnap_con=Приклеивать выпуском +tool.trackassembly.enmultask=Включает многозадачность в режиме стекового создания +tool.trackassembly.enmultask_con=Включить многозадачность +tool.trackassembly.enpntmscr=Включает переключение активных точек с помощью прокрутки мыши +tool.trackassembly.enpntmscr_con=Включить прокрутку точек +tool.trackassembly.enradmenu=Включает радиальное меню для режима работы +tool.trackassembly.enradmenu_con=Включить радиальное меню +tool.trackassembly.enwiremod=Включает расширение Wiremod для чипа выражений +tool.trackassembly.enwiremod_con=Включить Wiremod +tool.trackassembly.exportdb=Включает экспорт базы данных в один большой файл +tool.trackassembly.exportdb_con=Включить экспорт базы данных +tool.trackassembly.factory_reset=Нажмите, чтобы применить настройки консольных переменных по умолчанию +tool.trackassembly.factory_reset_con=Сброс настроек +tool.trackassembly.forcelim=Управляет сколько сил требуется чтобы сломать сварной шов +tool.trackassembly.forcelim_con=Ограничение силы\: +tool.trackassembly.freeze=Создает заморожений кусок +tool.trackassembly.freeze_con=Заморозить кусок +tool.trackassembly.ghostblnd=Управляет прозрачностью призрачных объектов. Чем ниже значение, тем более прозрачные +tool.trackassembly.ghostblnd_con=Прозрачность призраков\: +tool.trackassembly.ghostcnt=Управляет подсчет отображением куска-тени +tool.trackassembly.ghostcnt_con=Нарисовать подсчет кусок-тень +tool.trackassembly.gravity=Управляет гравитацию куска +tool.trackassembly.gravity_con=Применить силу тяжести к куске +tool.trackassembly.ignphysgn=Игнорирует захвата физической пушки при созданием/приклеиванием/нагромождением куска +tool.trackassembly.ignphysgn_con=Игнорирует захвата физической пушки +tool.trackassembly.igntype=Игнорирует различные типы кусков прилипания/накопления +tool.trackassembly.igntype_con=Игнорировать тип кусков +tool.trackassembly.incsnpang=Определяет угловой инкрементный шаг при использовании ползунков +tool.trackassembly.incsnpang_con=Угловой шаг\: +tool.trackassembly.incsnplin=Определяет линейный инкрементный шаг при использовании ползунков +tool.trackassembly.incsnplin_con=Линейный шаг\: +tool.trackassembly.info.1=Создает части трека на карте или прикрепляет их друг к другу +tool.trackassembly.info.2=Соединяет секции трека с помощью специальных сегментов +tool.trackassembly.info.3=Создает непрерывные трассы, проходящие через заданные контрольные точки +tool.trackassembly.info.4=Переворачивает выбранные объекты относительно указанного происхождения и нормали +tool.trackassembly.info.5=Создает плавные повороты, где радиус изменяется при изгибе +tool.trackassembly.left.1=Создать/прикрепить часть трека. Удерживайте SHIFT для стекового создания +tool.trackassembly.left.2=Создать часть трека в точке пересечения +tool.trackassembly.left.3=Создать сегментированную интерполяционную кривую трека +tool.trackassembly.left.4=Создать перевернутый список выбранных треков +tool.trackassembly.left.5=Создать сегментированную интерполяционную кривую трека +tool.trackassembly.logfile=Включает запись журнала в отдельный файл +tool.trackassembly.logfile_con=Включить логирование в файл +tool.trackassembly.logsmax=Измените это, чтобы настроить максимальное количество записей в журнале +tool.trackassembly.logsmax_con=Логирование строк\: tool.trackassembly.mass=Как тяжелый кусок создал будет tool.trackassembly.mass_con=Масса куска\: +tool.trackassembly.maxactrad=Измените это, чтобы настроить максимальный радиус для получения ID точки +tool.trackassembly.maxactrad_con=Ограничение радиуса\: +tool.trackassembly.maxforce=Измените это, чтобы настроить максимальную силу при создании соединений +tool.trackassembly.maxforce_con=Ограничение силы\: +tool.trackassembly.maxfruse=Измените это, чтобы настроить глубину для часто используемых объектов +tool.trackassembly.maxfruse_con=Часто используемые объекты\: +tool.trackassembly.maxghcnt=Измените это, чтобы настроить максимальное количество объектов для создания призраков в режиме стека +tool.trackassembly.maxghcnt_con=Ограничение призраков\: +tool.trackassembly.maxlinear=Измените это, чтобы настроить максимальное линейное смещение на объекте +tool.trackassembly.maxlinear_con=Ограничение смещения\: +tool.trackassembly.maxmass=Измените это, чтобы настроить максимальную массу, которую можно применить к объекту +tool.trackassembly.maxmass_con=Ограничение массы\: +tool.trackassembly.maxmenupr=Измените это, чтобы настроить количество десятичных знаков в меню +tool.trackassembly.maxmenupr_con=Десятичные знаки\: +tool.trackassembly.maxspmarg=Измените это, чтобы настроить расстояние от предыдущего создания +tool.trackassembly.maxspmarg_con=Маржа создания\: +tool.trackassembly.maxstatts=Определяет, сколько попыток стека скрипт попробует, прежде чем прекратит +tool.trackassembly.maxstatts_con=Попытки стека\: +tool.trackassembly.maxstcnt=Измените это, чтобы настроить максимальное количество объектов в режиме стека +tool.trackassembly.maxstcnt_con=Ограничение стека\: +tool.trackassembly.maxtrmarg=Измените это, чтобы настроить время между трассировками инструмента +tool.trackassembly.maxtrmarg_con=Маржа трассировки\: +tool.trackassembly.modedb=Измените это, чтобы настроить поведение хранения базы данных треков +tool.trackassembly.modedb_con=Режим базы данных\: +tool.trackassembly.modedb_lua=Использовать прямое кеширование +tool.trackassembly.modedb_sql=Кешировать только запрашиваемые записи tool.trackassembly.model=Выберите кусок чтобы начать/продолжить свою дорогу выбирая тип дерева и нажав на листе tool.trackassembly.model_con=Модель куска\: -tool.trackassembly.activrad=Минимальное расстояние чтобы выбрать активную точку -tool.trackassembly.activrad_con=Активный радиус\: -tool.trackassembly.stackcnt=Максимальное количество куски для нагромождения -tool.trackassembly.stackcnt_con=Количество кусков\: -tool.trackassembly.angsnap=Приклейте первый кусок созданный тем положением градусов -tool.trackassembly.angsnap_con=Угловое выравнивание\: -tool.trackassembly.resetvars=Нажмите чтобы сбросить дополнительные значения -tool.trackassembly.resetvars_con=V Сбросить переменные V +tool.trackassembly.name=Сборка дороги tool.trackassembly.nextpic=Дополнительный сдвиг начала тангажом tool.trackassembly.nextpic_con=Начало тангажа\: -tool.trackassembly.nextyaw=Дополнительный сдвиг начала рысканием -tool.trackassembly.nextyaw_con=Начало рыскания\: tool.trackassembly.nextrol=Дополнительный сдвиг начала рулона tool.trackassembly.nextrol_con=Начало рулона\: tool.trackassembly.nextx=Дополнительное линейное смещение X tool.trackassembly.nextx_con=Смещения X\: tool.trackassembly.nexty=Дополнительное линейное смещение Y tool.trackassembly.nexty_con=Смещения Y\: +tool.trackassembly.nextyaw=Дополнительный сдвиг начала рысканием +tool.trackassembly.nextyaw_con=Начало рыскания\: tool.trackassembly.nextz=Дополнительное линейное смещение Z tool.trackassembly.nextz_con=Смещения Z\: -tool.trackassembly.gravity=Управляет гравитацию куска -tool.trackassembly.gravity_con=Применить силу тяжести к куске -tool.trackassembly.weld=Создает сварные швы между кусками или кусоком/якорем -tool.trackassembly.weld_con=Сварной шов -tool.trackassembly.forcelim=Управляет сколько сил требуется чтобы сломать сварной шов -tool.trackassembly.forcelim_con=Ограничение силы\: -tool.trackassembly.ignphysgn=Игнорирует захвата физической пушки при созданием/приклеиванием/нагромождением куска -tool.trackassembly.ignphysgn_con=Игнорирует захвата физической пушки tool.trackassembly.nocollide=Делает не-столкновение между кусками или кусоком/якорем tool.trackassembly.nocollide_con=Не-столкновение tool.trackassembly.nocollidew=Делает не-столкновение между кусками и миром tool.trackassembly.nocollidew_con=Не-столкновение миром -tool.trackassembly.freeze=Создает заморожений кусок -tool.trackassembly.freeze_con=Заморозить кусок -tool.trackassembly.igntype=Игнорирует различные типы кусков прилипания/накопления -tool.trackassembly.igntype_con=Игнорировать тип кусков -tool.trackassembly.spnflat=Следующий кусок будет создан/приклеен/накоплен по горизонтали -tool.trackassembly.spnflat_con=Нагромождать по горизонтали +tool.trackassembly.nonrep_var=Не реплицируемые консольные переменные. Они имеют разные значения на сервере и клиенте +tool.trackassembly.phyname=Выберите имя физических свойств которые могут быть использованы при создании дороги так как это повлияет на поверхностное трение +tool.trackassembly.phyname_con=Имя поверхности\: +tool.trackassembly.phyname_def=<Выберите ИМЯ поверхности> +tool.trackassembly.phytype=Выберите тип физических свойств из тех которые перечислены здесь +tool.trackassembly.phytype_con=Тип поверхности\: +tool.trackassembly.phytype_def=<Выберите ТИП поверхности> +tool.trackassembly.pn_contextm_cp=Копировать +tool.trackassembly.pn_contextm_cpbx=Коробка +tool.trackassembly.pn_contextm_cpmd=Модель +tool.trackassembly.pn_contextm_cpnm=Имя +tool.trackassembly.pn_contextm_cprw=Ряд +tool.trackassembly.pn_contextm_cpth=Путь +tool.trackassembly.pn_contextm_cpty=Тип +tool.trackassembly.pn_contextm_ep=Развернуть узел +tool.trackassembly.pn_contextm_ex=Экспортировать +tool.trackassembly.pn_contextm_exdv=Внешний +tool.trackassembly.pn_contextm_exru=Автозапуск +tool.trackassembly.pn_contextm_li=Линия +tool.trackassembly.pn_contextm_licg=Изменить +tool.trackassembly.pn_contextm_licr=Создать +tool.trackassembly.pn_contextm_lirm=Удалить +tool.trackassembly.pn_contextm_mv=Переместить +tool.trackassembly.pn_contextm_mvbt=Вниз +tool.trackassembly.pn_contextm_mvdn=Ниже +tool.trackassembly.pn_contextm_mvtp=Вверх +tool.trackassembly.pn_contextm_mvup=Выше +tool.trackassembly.pn_contextm_st=Таблицы +tool.trackassembly.pn_contextm_stdl=Удалить файлы +tool.trackassembly.pn_contextm_sted=Редактировать (Luapad) +tool.trackassembly.pn_contextm_stnk=Скопировать ник +tool.trackassembly.pn_contextm_stpt=Скопировать путь +tool.trackassembly.pn_contextm_stsz=Скопировать размер +tool.trackassembly.pn_contextm_sttm=Скопировать время +tool.trackassembly.pn_contextm_tg=Переключить +tool.trackassembly.pn_contextm_ws=Мастерская +tool.trackassembly.pn_contextm_wsid=Скопировать WID +tool.trackassembly.pn_contextm_wsop=Открыть страницу +tool.trackassembly.pn_display=Модель вашего куска дороги здесь отображается +tool.trackassembly.pn_display_lb=Показать кусок +tool.trackassembly.pn_export=Нажмите чтобы сохранить файл базы данных +tool.trackassembly.pn_export_lb=Экспорт БД +tool.trackassembly.pn_extdsv_act=Активный +tool.trackassembly.pn_extdsv_hd=Список внешних баз данных DSV отображается здесь +tool.trackassembly.pn_extdsv_inf=Дополнительная информация +tool.trackassembly.pn_extdsv_lb=Внешний список DSV +tool.trackassembly.pn_extdsv_prf=Уникальный префикс базы данных +tool.trackassembly.pn_externdb_bte=Экспортировать +tool.trackassembly.pn_externdb_bte_tp=Экспортирует информацию из панели в список файлов и применяет +tool.trackassembly.pn_externdb_bti=Импортировать +tool.trackassembly.pn_externdb_bti_tp=Импортирует информацию из списка файлов в панель для редактирования +tool.trackassembly.pn_externdb_hd=Внешние базы данных для\: +tool.trackassembly.pn_externdb_ttt=Текущее измененное значение конфигурации\: +tool.trackassembly.pn_pattern=Напишите шаблон здесь и нажмите ВВОД для выполнения поиска +tool.trackassembly.pn_pattern_lb=Напишите шаблон +tool.trackassembly.pn_routine=Список регулярно используемых кусков дороги +tool.trackassembly.pn_routine_end=Конец +tool.trackassembly.pn_routine_hd=Часто используемых кусков пользователя\: +tool.trackassembly.pn_routine_lb=Часто используемых кусков +tool.trackassembly.pn_routine_mod=Модель +tool.trackassembly.pn_routine_nam=Имя +tool.trackassembly.pn_routine_typ=Тип +tool.trackassembly.pn_routine_use=Срок +tool.trackassembly.pn_srchcol=Выберите столбец для поиска +tool.trackassembly.pn_srchcol_lb=<Искать по> +tool.trackassembly.pntasist=Управляет изображение помощника для прилипания +tool.trackassembly.pntasist_con=Нарисовать помощника +tool.trackassembly.relica_var=Управление константами с репликацией. Значение на сервере передается всем клиентам для использования +tool.trackassembly.reload.1=Удалить элемент трассы. Удерживайте SHIFT для выбора якоря +tool.trackassembly.reload.2=Удалить элемент трассы. Удерживайте SHIFT для выбора луча связи +tool.trackassembly.reload.3=Удалить узел интерполяции кривой. Удерживайте SHIFT для очистки стека +tool.trackassembly.reload.4=Очистить список выбора перевернутых объектов. При пустом удаляет элемент +tool.trackassembly.reload.5=Удалить узел интерполяции кривой. Удерживайте SHIFT для очистки стека +tool.trackassembly.reload_use.1=Включить экспорт базы данных для открытия менеджера DSV +tool.trackassembly.reload_use.2=Включить экспорт базы данных для открытия менеджера DSV +tool.trackassembly.reload_use.3=Включить экспорт базы данных для открытия менеджера DSV +tool.trackassembly.reload_use.4=Включить экспорт базы данных для открытия менеджера DSV +tool.trackassembly.reload_use.5=Включить экспорт базы данных для открытия менеджера DSV +tool.trackassembly.resetvars=Нажмите чтобы сбросить дополнительные значения +tool.trackassembly.resetvars_con=V Сбросить переменные V +tool.trackassembly.right.1=Копировать модель элемента трассы или открыть окно частых элементов +tool.trackassembly.right.2=Копировать модель элемента трассы или открыть окно частых элементов +tool.trackassembly.right.3=Создать узел для сегментированной кривой. Удерживайте SHIFT для обновления +tool.trackassembly.right.4=Зарегистрировать объект в списке переворота. Удерживайте SHIFT для изменения модели +tool.trackassembly.right.5=Создать узел для сегментированной кривой. Удерживайте SHIFT для обновления +tool.trackassembly.right_use.1=Отключен ПРОКРУТКА. Копировать модель элемента трассы или открыть окно частых элементов +tool.trackassembly.right_use.2=Отключен ПРОКРУТКА. Копировать модель элемента трассы или открыть окно частых элементов +tool.trackassembly.right_use.3=Создать узел из ближайшей активной точки элемента трассы +tool.trackassembly.right_use.4=Отключен ПРОКРУТКА. Копировать модель элемента трассы или открыть окно частых элементов +tool.trackassembly.right_use.5=Создать узел из ближайшей активной точки элемента трассы +tool.trackassembly.rtradmenu=Измените это для настройки основного угла радиального меню и перемещения его опций +tool.trackassembly.rtradmenu_con=Ротация радиального меню\: +tool.trackassembly.sgradmenu=Измените это для округления радиального меню. Чем выше значение, тем плавнее +tool.trackassembly.sgradmenu_con=Сегменты радиального меню\: +tool.trackassembly.sizeucs=Масштаб для отображаемых систем координат +tool.trackassembly.sizeucs_con=Масштаб UCS\: tool.trackassembly.spawncn=Создание куска в центре иначе в выбранной активной точке tool.trackassembly.spawncn_con=Происхождение из центра +tool.trackassembly.spawnrate=Измените это для настройки количества сегментов трассы, создаваемых за тик сервера +tool.trackassembly.spawnrate_con=Скорость создания\: +tool.trackassembly.spnflat=Следующий кусок будет создан/приклеен/накоплен по горизонтали +tool.trackassembly.spnflat_con=Нагромождать по горизонтали +tool.trackassembly.stackcnt=Максимальное количество куски для нагромождения +tool.trackassembly.stackcnt_con=Количество кусков\: +tool.trackassembly.subfolder=Выберите категорию дороги для использования путем расширения папки +tool.trackassembly.subfolder_con=Категория дороги\: tool.trackassembly.surfsnap=Приклеить кусок к поверхности к которой ссылается пользователь tool.trackassembly.surfsnap_con=Приклеивать к поверхности -tool.trackassembly.appangfst=Применять угловое смещение только на первой кусок -tool.trackassembly.appangfst_con=Применять угловое на первой -tool.trackassembly.applinfst=Применять линейное смещение только на первой кусок -tool.trackassembly.applinfst_con=Применять линейное на первой -tool.trackassembly.adviser=Управляет отображением позиционного/углового советника -tool.trackassembly.adviser_con=Нарисовать советник -tool.trackassembly.pntasist=Управляет изображение помощника для прилипания -tool.trackassembly.pntasist_con=Нарисовать помощника -tool.trackassembly.ghostcnt=Управляет подсчет отображением куска-тени -tool.trackassembly.ghostcnt_con=Нарисовать подсчет кусок-тень -tool.trackassembly.engunsnap=Управляет приклеивание когда кусок выпущен физической пушки пользователя -tool.trackassembly.engunsnap_con=Приклеивать выпуском -tool.trackassembly.upspanchor=Включите якорь обновить для каждый раз когда создаете без накопления -tool.trackassembly.upspanchor_con=Обновить якорь при создаване +tool.trackassembly.timermode_ap=Нажмите здесь, чтобы применить изменения в конфигурации менеджера памяти SQL +tool.trackassembly.timermode_ap_con=Применить настройки памяти +tool.trackassembly.timermode_cqt=Таймер запроса кэша через запрос записи +tool.trackassembly.timermode_ct=При включении заставляет сборщик мусора запускаться при удалении записи +tool.trackassembly.timermode_ct_con=Включить сборку мусора +tool.trackassembly.timermode_lf=Измените это для настройки времени нахождения записи в кэше +tool.trackassembly.timermode_lf_con=Срок жизни записи\: +tool.trackassembly.timermode_md=Измените это для настройки алгоритма таймера менеджера памяти SQL +tool.trackassembly.timermode_mem=Менеджер памяти для таблицы SQL\: +tool.trackassembly.timermode_obj=Таймер объекта, прикрепленного к записи кэша +tool.trackassembly.timermode_rd=При включении удаляет запись из кэша, присваивая значение nil +tool.trackassembly.timermode_rd_con=Включить удаление записи tool.trackassembly.type=Выберите типа дороги для использования путем расширения папки tool.trackassembly.type_con=Тип дороги\: -tool.trackassembly.subfolder=Выберите категорию дороги для использования путем расширения папки -tool.trackassembly.subfolder_con=Категория дороги\: +tool.trackassembly.upspanchor=Включите якорь обновить для каждый раз когда создаете без накопления +tool.trackassembly.upspanchor_con=Обновить якорь при создаване +tool.trackassembly.utilities_admin=Настройка параметров администратора +tool.trackassembly.utilities_user=Настройка параметров пользователя +tool.trackassembly.weld=Создает сварные швы между кусками или кусоком/якорем +tool.trackassembly.weld_con=Сварной шов +tool.trackassembly.workmode.1=Общее создание/прилепание куски +tool.trackassembly.workmode.2=Пересечение активной точки +tool.trackassembly.workmode.3=Кривой отрезок линии фитинг +tool.trackassembly.workmode.4=Нормаль поверхности перевернуть +tool.trackassembly.workmode.5=Переходы с касательной tool.trackassembly.workmode=Измените эту опцию чтобы использовать другой рабочий режим tool.trackassembly.workmode_con=Рабочий режим\: -tool.trackassembly.pn_export=Нажмите чтобы сохранить файл базы данных -tool.trackassembly.pn_export_lb=Экспорт БД -tool.trackassembly.pn_routine=Список регулярно используемых кусков дороги -tool.trackassembly.pn_routine_hd=Часто используемых кусков пользователя\: -tool.trackassembly.pn_externdb=Внешние базы данных доступные для\: -tool.trackassembly.pn_externdb_hd=Внешние базы данных для\: -tool.trackassembly.pn_externdb_lb=Нажмите правой для вариантов\: -tool.trackassembly.pn_externdb_bt1=Скопировать префикс -tool.trackassembly.pn_externdb_bt2=Скопировать път папку DSV -tool.trackassembly.pn_externdb_bt3=Скопировать ник таблицу -tool.trackassembly.pn_externdb_bt4=Скопировать път таблицу -tool.trackassembly.pn_externdb_bt5=Скопировать время таблицу -tool.trackassembly.pn_externdb_bt6=Скопировать размер таблицу -tool.trackassembly.pn_externdb_bt7=Изменить элементы (Luapad) -tool.trackassembly.pn_externdb_bt8=Удалить файл базы данных -tool.trackassembly.pn_ext_dsv_lb=Внешний список DSV -tool.trackassembly.pn_ext_dsv_hd=Список внешних баз данных DSV отображается здесь -tool.trackassembly.pn_ext_dsv_1=Активный -tool.trackassembly.pn_ext_dsv_2=Уникальный префикс базы данных -tool.trackassembly.pn_ext_dsv_3=Дополнительная информация -tool.trackassembly.pn_display=Модель вашего куска дороги здесь отображается -tool.trackassembly.pn_pattern=Напишите шаблон здесь и нажмите ВВОД для выполнения поиска -tool.trackassembly.pn_srchcol=Выберите столбец для поиска -tool.trackassembly.pn_srchcol_lb=<Искать по> -tool.trackassembly.pn_srchcol_lb1=Модель -tool.trackassembly.pn_srchcol_lb2=Тип -tool.trackassembly.pn_srchcol_lb3=Имя -tool.trackassembly.pn_srchcol_lb4=Конец -tool.trackassembly.pn_routine_lb=Часто используемых кусков -tool.trackassembly.pn_routine_lb1=Срок -tool.trackassembly.pn_routine_lb2=Конец -tool.trackassembly.pn_routine_lb3=Тип -tool.trackassembly.pn_routine_lb4=Имя -tool.trackassembly.pn_display_lb=Показать кусок -tool.trackassembly.pn_pattern_lb=Напишите шаблон -tool.trackassembly.buttonas<>=Уменьшить/Увеличить -tool.trackassembly.buttonas+/-=Начение по умолчаниюз -tool.trackassembly.buttonas@M=Запомнить стоимость -tool.trackassembly.buttonas@D=Значение по умолчанию -tool.trackassembly.buttonas@=Применять стоимость\: -Cleanup_asmtracks=Собранные куски дороги -Cleaned_asmtracks=Все куски дороги очищены -SBoxLimit_asmtracks=Вы достигли предела созданных кусков дороги! diff --git a/resource/localization/zh-cn/trackassembly.properties b/resource/localization/zh-cn/trackassembly.properties index 60777a86..707ed37a 100644 --- a/resource/localization/zh-cn/trackassembly.properties +++ b/resource/localization/zh-cn/trackassembly.properties @@ -1,9 +1,85 @@ - -tool.trackassembly.workmode.1=一般生成/固定 -tool.trackassembly.workmode.2=活动点交点 -tool.trackassembly.workmode.3=曲线线段拟合 -tool.trackassembly.workmode.4=表面法线翻转 -tool.trackassembly.workmode.5=切线过渡弯 + +Cleaned_asmtracks=清理了所有轨道组件 +Cleanup_asmtracks=组装好的轨道组件 +SBoxLimit_asmtracks=You've hit the spawned tracks limit! +sbox_maxasmtracks=更改此项以调整服务器上通过轨道工具生成的东西 +sbox_maxasmtracks_con=总段数\: +tool.trackassembly.activrad=选择活动点所需的最小距离 +tool.trackassembly.activrad_con=活动半径\: +tool.trackassembly.adviser=控制渲染工具位置/角度顾问 +tool.trackassembly.adviser_con=绘图顾问 +tool.trackassembly.angsnap=固定在这个度数下产生的第一组件 +tool.trackassembly.angsnap_con=角度校准\: +tool.trackassembly.appangfst=仅在第一个组件上应用角度偏移 +tool.trackassembly.appangfst_con=首先应用角度 +tool.trackassembly.applinfst=仅在第一个组件上应用线性偏移 +tool.trackassembly.applinfst_con=首先应用线性 +tool.trackassembly.bgskids=以逗号分隔的Bodygroup的选择代码/皮肤ID +tool.trackassembly.bgskids_con=Bodygroup/皮肤\: +tool.trackassembly.bgskids_def=在此编写选择代码。例如 1,0,0,2,1/3 +tool.trackassembly.bnderrmod=更改此设置以定义客户端在地图边界之外生成组件时的行为 +tool.trackassembly.bnderrmod_con=边界模式\: +tool.trackassembly.bnderrmod_error=显示拒绝堆栈/生成错误消息 +tool.trackassembly.bnderrmod_generic=显示拒绝堆栈/生成通用消息 +tool.trackassembly.bnderrmod_hint=显示拒绝堆栈/生成提示消息 +tool.trackassembly.bnderrmod_log=拒绝堆栈/生成错误被记录 +tool.trackassembly.bnderrmod_off=允许无限制地堆叠/生成 +tool.trackassembly.buttonas+/-=Negate value +tool.trackassembly.buttonas<>=Decrement/Increment +tool.trackassembly.buttonas@D=Default value +tool.trackassembly.buttonas@M=Memorize value +tool.trackassembly.client_var=客户端玩家偏好。在工具客户端配置中创建的Convar +tool.trackassembly.crvleanlm=更改此设置以调整该段的倾斜弯曲锐度限制 +tool.trackassembly.crvleanlm_con=曲率倾斜\: +tool.trackassembly.crvturnlm=更改此设置以调整该段的转弯弯曲锐度限制 +tool.trackassembly.crvturnlm_con=曲率转弯\: +tool.trackassembly.curvefact=更改此值以调整曲线因子正切系数 +tool.trackassembly.curvefact_con=曲线系数\: +tool.trackassembly.curvsmple=更改此设置以调整曲线插值样本 +tool.trackassembly.curvsmple_con=曲线样本\: +tool.trackassembly.desc=组装供载具行驶的轨道|汉化:轻骑兵涅普,本人水平有限,若有语法、翻译错误还请指出 +tool.trackassembly.devmode=启用后,将打开开发人员模式以进行跟踪和调试 +tool.trackassembly.devmode_con=启用开发者模式 +tool.trackassembly.dtmessage=控制上下文菜单服务器消息之间的时间间隔 +tool.trackassembly.dtmessage_con=信息延迟\: +tool.trackassembly.enctxmall=启用后,将打开所有道具的工具专用上下文菜单 +tool.trackassembly.enctxmall_con=为所有道具启用上下文菜单 +tool.trackassembly.enctxmenu=启用后,将打开工具专用的上下文菜单 +tool.trackassembly.enctxmenu_con=启用上下文菜单 +tool.trackassembly.endsvlock=启用后,将打开外部可插拔的DSV数据库文件锁 +tool.trackassembly.endsvlock_con=启用 DSV 数据库锁 +tool.trackassembly.engunsnap=通过玩家物理枪控制固定,当组件掉落 +tool.trackassembly.engunsnap_con=启用物理枪固定 +tool.trackassembly.enmultask=启用后,会在堆叠模式下开启多任务处理 +tool.trackassembly.enmultask_con=启用多任务处理 +tool.trackassembly.enpntmscr=启用后,通过鼠标滚动打开切换活动点 +tool.trackassembly.enpntmscr_con=启用点滚动 +tool.trackassembly.enradmenu=启用后,将打开工作模式径向菜单的使用功能 +tool.trackassembly.enradmenu_con=启用径向菜单 +tool.trackassembly.enwiremod=启用后将打开wiremod拓展 +tool.trackassembly.enwiremod_con=启用wire拓展 +tool.trackassembly.exportdb=启用后,会将数据库导出为一个大文件 +tool.trackassembly.exportdb_con=启用数据库导出 +tool.trackassembly.factory_reset=单击此按钮应用控制台变量出厂设置 +tool.trackassembly.factory_reset_con=应用出厂设置 +tool.trackassembly.forcelim=控制破坏焊缝所需的力 +tool.trackassembly.forcelim_con=力限制\: +tool.trackassembly.freeze=使该组件在冻结状态下生成 +tool.trackassembly.freeze_con=冻结组件 +tool.trackassembly.ghostblnd=控制重影透明度混合。值越低越透明 +tool.trackassembly.ghostblnd_con=重影透明度\: +tool.trackassembly.ghostcnt=控件显示工具重影支架件组件数量数 +tool.trackassembly.ghostcnt_con=重影数量\: +tool.trackassembly.gravity=控制生成的组件的重力 +tool.trackassembly.gravity_con=应用组件重力 +tool.trackassembly.ignphysgn=忽略物理枪对生成/固定/堆叠组件的抓取 +tool.trackassembly.ignphysgn_con=忽略物理枪 +tool.trackassembly.igntype=使工具忽略固定/堆叠时的不同组件类型 +tool.trackassembly.igntype_con=忽略轨道类型 +tool.trackassembly.incsnpang=定义使用按钮滑块时的角度增量步长 +tool.trackassembly.incsnpang_con=角度步进\: +tool.trackassembly.incsnplin=定义使用按钮滑块时的线性增量步骤 +tool.trackassembly.incsnplin_con=线性步长\: tool.trackassembly.info.1=在地图上生成部件或将部件对齐 tool.trackassembly.info.2=将轨道部分与为此设计的专用路段连接起来 tool.trackassembly.info.3=创建通过给定检查点的连续轨道布局 @@ -14,255 +90,168 @@ tool.trackassembly.left.2=在交叉点生成轨道部件 tool.trackassembly.left.3=生成分段轨迹插值曲线 tool.trackassembly.left.4=在所选轨道浏览列表上生成 tool.trackassembly.left.5=生成分段轨迹插值曲线 -tool.trackassembly.right.1=复制轨道件模型或打开常用部件对话框 -tool.trackassembly.right.2=复制轨道件模型或打开常用部件对话框 -tool.trackassembly.right.3=为分段曲线创建节点。按住SHIFT进行更新。 -tool.trackassembly.right.4=将实体注册到浏览列表中。按住SHIFT更改模型。 -tool.trackassembly.right.5=为分段曲线创建节点。按住SHIFT进行更新。 -tool.trackassembly.right_use.1=禁用滚动。复制轨道件模型或打开常用组件对话框。 -tool.trackassembly.right_use.2=禁用滚动。复制轨道件模型或打开常用组件对话框。 -tool.trackassembly.right_use.3=从最近的轨道组件活动点生成节点。 -tool.trackassembly.right_use.4=禁用滚动。复制轨道件模型或打开常用组件对话框。 -tool.trackassembly.right_use.5=从最近的轨道组件活动点生成节点。 -tool.trackassembly.reload.1=移除轨道部件。按住SHIFT键选择锚点。 -tool.trackassembly.reload.2=移除一个轨道。按住SHIFT键选择关系射线。 -tool.trackassembly.reload.3=删除曲线插值节点。按住SHIFT清除堆栈。 -tool.trackassembly.reload.4=清除浏览实体选择列表。当空缺时移除组件 -tool.trackassembly.reload.5=删除曲线插值节点。按住SHIFT清除堆栈。 -tool.trackassembly.reload_use.1=启用数据库导出以打开DSV管理器 -tool.trackassembly.reload_use.2=启用数据库导出以打开DSV管理器 -tool.trackassembly.reload_use.3=启用数据库导出以打开DSV管理器 -tool.trackassembly.reload_use.4=启用数据库导出以打开DSV管理器 -tool.trackassembly.reload_use.5=启用数据库导出以打开DSV管理器 -tool.trackassembly.desc=组装供载具行驶的轨道|汉化:轻骑兵涅普,本人水平有限,若有语法、翻译错误还请指出 -tool.trackassembly.name=轨道组件 -tool.trackassembly.phytype=选择此处列出的物理属性类型 -tool.trackassembly.phytype_con=材料类型\: -tool.trackassembly.phytype_def=<选择表面材料类型> -tool.trackassembly.phyname=选择创建轨道时要使用的物理属性名称,因为这会影响表面摩擦力 -tool.trackassembly.phyname_con=材料名称\: -tool.trackassembly.phyname_def=<选择表面材料名称> -tool.trackassembly.bgskids=以逗号分隔的Bodygroup的选择代码/皮肤ID -tool.trackassembly.bgskids_con=Bodygroup/皮肤\: -tool.trackassembly.bgskids_def=在此编写选择代码。例如 1,0,0,2,1/3 +tool.trackassembly.logfile=启用后开始将日志流式传输到专用文件中 +tool.trackassembly.logfile_con=启用日志文件 +tool.trackassembly.logsmax=更改此项以调整日志流写入的最大输出行数 +tool.trackassembly.logsmax_con=记录线路\: tool.trackassembly.mass=生成的组件有多重 tool.trackassembly.mass_con=组件质量\: +tool.trackassembly.maxactrad=更改此项可调整获取点ID的最大活动半径 +tool.trackassembly.maxactrad_con=半径限制\: +tool.trackassembly.maxforce=更改此设置以调整创建焊缝时的最大力限制 +tool.trackassembly.maxforce_con=力限制\: +tool.trackassembly.maxfruse=更改此设置以调整有多少常用组件的深度 +tool.trackassembly.maxfruse_con=常用组件\: +tool.trackassembly.maxlinear=更改此设置以调整组件上的最大线性偏移 +tool.trackassembly.maxlinear_con=偏移限制\: +tool.trackassembly.maxmass=更改此设置可调整可应用于组件的最大质量 +tool.trackassembly.maxmass_con=最大质量\: +tool.trackassembly.maxmenupr=更改此项以调整菜单中的小数位数 +tool.trackassembly.maxmenupr_con=小数位\: +tool.trackassembly.maxstatts=定义脚本在失败之前将尝试的堆栈尝试次数 +tool.trackassembly.maxstatts_con=堆栈尝试\: +tool.trackassembly.maxstcnt=更改此设置可调整堆叠模式下创建的最大件数 +tool.trackassembly.maxstcnt_con=堆栈限制\: +tool.trackassembly.maxtrmarg=更改此设置以调整工具轨迹之间的时间 +tool.trackassembly.maxtrmarg_con=迹线余量\: +tool.trackassembly.modedb=更改此项以定义轨道数据库的存储行为 +tool.trackassembly.modedb_con=数据库模式\: +tool.trackassembly.modedb_lua=利用直接缓存存储 +tool.trackassembly.modedb_sql=仅缓存请求的记录 tool.trackassembly.model=通过展开类型并单击节点来选择要开始/追踪轨道的组件 tool.trackassembly.model_con=组件模型\: -tool.trackassembly.activrad=选择活动点所需的最小距离 -tool.trackassembly.activrad_con=活动半径\: -tool.trackassembly.stackcnt=堆叠时创建的最大组件数量 -tool.trackassembly.stackcnt_con=组件数量\: -tool.trackassembly.angsnap=固定在这个度数下产生的第一组件 -tool.trackassembly.angsnap_con=角度校准\: -tool.trackassembly.resetvars=单击以重置附加值 -tool.trackassembly.resetvars_con=V 重置变量 V +tool.trackassembly.name=轨道组件 tool.trackassembly.nextpic=额外的原点角节距偏移 tool.trackassembly.nextpic_con=原点间距\: -tool.trackassembly.nextyaw=附加原点偏航角偏移 -tool.trackassembly.nextyaw_con=原点偏航\: tool.trackassembly.nextrol=附加原点角滚动偏移 tool.trackassembly.nextrol_con=原点滚动\: tool.trackassembly.nextx=附加原点线性 X 支距 tool.trackassembly.nextx_con=支距 X\: tool.trackassembly.nexty=附加原点线性 Y 支距 tool.trackassembly.nexty_con=支距 Y\: +tool.trackassembly.nextyaw=附加原点偏航角偏移 +tool.trackassembly.nextyaw_con=原点偏航\: tool.trackassembly.nextz=附加原点线性 Z 支距 tool.trackassembly.nextz_con=支距 Z\: -tool.trackassembly.gravity=控制生成的组件的重力 -tool.trackassembly.gravity_con=应用组件重力 -tool.trackassembly.weld=在组件或组件/锚点之间创建焊接 -tool.trackassembly.weld_con=焊接 -tool.trackassembly.forcelim=控制破坏焊缝所需的力 -tool.trackassembly.forcelim_con=力限制\: -tool.trackassembly.ignphysgn=忽略物理枪对生成/固定/堆叠组件的抓取 -tool.trackassembly.ignphysgn_con=忽略物理枪 tool.trackassembly.nocollide=在组件/锚点之间创建无碰撞 tool.trackassembly.nocollide_con=无碰撞 tool.trackassembly.nocollidew=在组件和世界之间创建无碰撞 tool.trackassembly.nocollidew_con=无碰撞世界 -tool.trackassembly.freeze=使该组件在冻结状态下生成 -tool.trackassembly.freeze_con=冻结组件 -tool.trackassembly.igntype=使工具忽略固定/堆叠时的不同组件类型 -tool.trackassembly.igntype_con=忽略轨道类型 -tool.trackassembly.spnflat=下一组件将水平生成/固定/堆叠 -tool.trackassembly.spnflat_con=水平生成 -tool.trackassembly.spawncn=在中心点生成组件,否则相对于所选的活动点生成组件 -tool.trackassembly.spawncn_con=中心原点 -tool.trackassembly.surfsnap=将组件固定在玩家指向的表面上 -tool.trackassembly.surfsnap_con=固定到轨迹表面 -tool.trackassembly.appangfst=仅在第一个组件上应用角度偏移 -tool.trackassembly.appangfst_con=首先应用角度 -tool.trackassembly.applinfst=仅在第一个组件上应用线性偏移 -tool.trackassembly.applinfst_con=首先应用线性 -tool.trackassembly.adviser=控制渲染工具位置/角度顾问 -tool.trackassembly.adviser_con=绘图顾问 -tool.trackassembly.pntasist=控制渲染工具固定点助手 -tool.trackassembly.pntasist_con=绘图助手 -tool.trackassembly.ghostcnt=控件显示工具重影支架件组件数量数 -tool.trackassembly.ghostcnt_con=重影数量\: -tool.trackassembly.ghostblnd=控制重影透明度混合。值越低越透明 -tool.trackassembly.ghostblnd_con=重影透明度\: -tool.trackassembly.dtmessage=控制上下文菜单服务器消息之间的时间间隔 -tool.trackassembly.dtmessage_con=信息延迟\: -tool.trackassembly.engunsnap=通过玩家物理枪控制固定,当组件掉落 -tool.trackassembly.engunsnap_con=启用物理枪固定 -tool.trackassembly.upspanchor=启用在每次生成时更新锚点(非固定状态) -tool.trackassembly.upspanchor_con=更新生成时的锚点 -tool.trackassembly.type=通过展开文件夹选择要使用的轨道类型 -tool.trackassembly.type_con=轨道类型\: -tool.trackassembly.subfolder=通过展开文件夹选择要使用的轨道类别 -tool.trackassembly.subfolder_con=轨道类别\: -tool.trackassembly.workmode=更改此选项以选择不同的工作模式 -tool.trackassembly.workmode_con=工作模式\: +tool.trackassembly.nonrep_var=非复制convar控件。它们在服务器和客户端上有不同的值 +tool.trackassembly.phyname=选择创建轨道时要使用的物理属性名称,因为这会影响表面摩擦力 +tool.trackassembly.phyname_con=材料名称\: +tool.trackassembly.phyname_def=<选择表面材料名称> +tool.trackassembly.phytype=选择此处列出的物理属性类型 +tool.trackassembly.phytype_con=材料类型\: +tool.trackassembly.phytype_def=<选择表面材料类型> +tool.trackassembly.pn_contextm_cp=复制 +tool.trackassembly.pn_contextm_cpbx=复制单元格值 +tool.trackassembly.pn_contextm_cpmd=模型 +tool.trackassembly.pn_contextm_cpnm=姓名 +tool.trackassembly.pn_contextm_cprw=排 +tool.trackassembly.pn_contextm_cpth=小路 +tool.trackassembly.pn_contextm_cpty=类型 +tool.trackassembly.pn_contextm_st=表格 +tool.trackassembly.pn_contextm_stdl=删除数据库条目 +tool.trackassembly.pn_contextm_sted=编辑表格内容(Luapad) +tool.trackassembly.pn_contextm_stnk=复制表缺口 +tool.trackassembly.pn_contextm_stpt=复制表路径 +tool.trackassembly.pn_contextm_stsz=复制表尺寸 +tool.trackassembly.pn_contextm_sttm=复制表时间 +tool.trackassembly.pn_display=您的轨道组件的模型显示在此处 +tool.trackassembly.pn_display_lb=组件展示 tool.trackassembly.pn_export=单击可将客户端数据库导出为文件 tool.trackassembly.pn_export_lb=导出数据库 -tool.trackassembly.pn_routine=您经常使用的轨道列表 -tool.trackassembly.pn_routine_hd=常用组件\: -tool.trackassembly.pn_externdb=外部数据库可用于\: -tool.trackassembly.pn_externdb_hd=外部数据库由\: -tool.trackassembly.pn_externdb_lb=右键单击选项\: -tool.trackassembly.pn_externdb_ttt=当前修改的配置值\: -tool.trackassembly.pn_externdb_bti=输入 -tool.trackassembly.pn_externdb_bti_tp=将文件列表中的信息导入面板中进行编辑 +tool.trackassembly.pn_extdsv_act=活动的 +tool.trackassembly.pn_extdsv_hd=此处显示外部 DSV 数据库列表 +tool.trackassembly.pn_extdsv_inf=附加信息 +tool.trackassembly.pn_extdsv_lb=外部 DSV 列表 +tool.trackassembly.pn_extdsv_prf=数据库唯一前缀 tool.trackassembly.pn_externdb_bte=输出 tool.trackassembly.pn_externdb_bte_tp=将信息从面板导出到文件列表并应用 -tool.trackassembly.pn_externdb_bt1=复制唯一前缀 -tool.trackassembly.pn_externdb_bt2=复制 DSV 文件夹路径 -tool.trackassembly.pn_externdb_bt3=复制表缺口 -tool.trackassembly.pn_externdb_bt4=复制表路径 -tool.trackassembly.pn_externdb_bt5=复制表时间 -tool.trackassembly.pn_externdb_bt6=复制表尺寸 -tool.trackassembly.pn_externdb_bt7=编辑表格内容(Luapad) -tool.trackassembly.pn_externdb_bt8=删除数据库条目 -tool.trackassembly.pn_externdb_cm1=复制单元格值 -tool.trackassembly.pn_externdb_cm2=复制整行 -tool.trackassembly.pn_externdb_cm3=启用/禁用 -tool.trackassembly.pn_externdb_cm4=更改线路 -tool.trackassembly.pn_externdb_cm5=创造线路 -tool.trackassembly.pn_externdb_cm6=移除线路 -tool.trackassembly.pn_ext_dsv_lb=外部 DSV 列表 -tool.trackassembly.pn_ext_dsv_hd=此处显示外部 DSV 数据库列表 -tool.trackassembly.pn_ext_dsv_1=活动的 -tool.trackassembly.pn_ext_dsv_2=数据库唯一前缀 -tool.trackassembly.pn_ext_dsv_3=附加信息 -tool.trackassembly.pn_display=您的轨道组件的模型显示在此处 +tool.trackassembly.pn_externdb_bti=输入 +tool.trackassembly.pn_externdb_bti_tp=将文件列表中的信息导入面板中进行编辑 +tool.trackassembly.pn_externdb_hd=外部数据库由\: +tool.trackassembly.pn_externdb_ttt=当前修改的配置值\: tool.trackassembly.pn_pattern=在此写入模式并按 ENTER 执行搜索 +tool.trackassembly.pn_pattern_lb=写入模式 +tool.trackassembly.pn_routine=您经常使用的轨道列表 +tool.trackassembly.pn_routine_end=结束 +tool.trackassembly.pn_routine_hd=常用组件\: +tool.trackassembly.pn_routine_lb=常规项目 +tool.trackassembly.pn_routine_mod=模型 +tool.trackassembly.pn_routine_nam=名称 +tool.trackassembly.pn_routine_typ=类型 +tool.trackassembly.pn_routine_use=使用 tool.trackassembly.pn_srchcol=选择您要执行搜索的列表列 tool.trackassembly.pn_srchcol_lb=<搜索> -tool.trackassembly.pn_srchcol_lb1=模型 -tool.trackassembly.pn_srchcol_lb2=类型 -tool.trackassembly.pn_srchcol_lb3=名称 -tool.trackassembly.pn_srchcol_lb4=结束 -tool.trackassembly.pn_routine_lb=常规项目 -tool.trackassembly.pn_routine_lb1=使用 -tool.trackassembly.pn_routine_lb2=结束 -tool.trackassembly.pn_routine_lb3=类型 -tool.trackassembly.pn_routine_lb4=名称 -tool.trackassembly.pn_display_lb=组件展示 -tool.trackassembly.pn_pattern_lb=写入模式 -tool.trackassembly.sizeucs=为显示的坐标系设置的比例 -tool.trackassembly.sizeucs_con=缩放 UCS\: -tool.trackassembly.maxstatts=定义脚本在失败之前将尝试的堆栈尝试次数 -tool.trackassembly.maxstatts_con=堆栈尝试\: -tool.trackassembly.incsnpang=定义使用按钮滑块时的角度增量步长 -tool.trackassembly.incsnpang_con=角度步进\: -tool.trackassembly.incsnplin=定义使用按钮滑块时的线性增量步骤 -tool.trackassembly.incsnplin_con=线性步长\: -tool.trackassembly.enradmenu=启用后,将打开工作模式径向菜单的使用功能 -tool.trackassembly.enradmenu_con=启用径向菜单 -tool.trackassembly.sgradmenu=更改此设置以使径向菜单更加圆形。越高越平滑 -tool.trackassembly.sgradmenu_con=径向段\: +tool.trackassembly.pntasist=控制渲染工具固定点助手 +tool.trackassembly.pntasist_con=绘图助手 +tool.trackassembly.relica_var=复制convar控件。服务器值发送给所有客户端使用 +tool.trackassembly.reload.1=移除轨道部件。按住SHIFT键选择锚点。 +tool.trackassembly.reload.2=移除一个轨道。按住SHIFT键选择关系射线。 +tool.trackassembly.reload.3=删除曲线插值节点。按住SHIFT清除堆栈。 +tool.trackassembly.reload.4=清除浏览实体选择列表。当空缺时移除组件 +tool.trackassembly.reload.5=删除曲线插值节点。按住SHIFT清除堆栈。 +tool.trackassembly.reload_use.1=启用数据库导出以打开DSV管理器 +tool.trackassembly.reload_use.2=启用数据库导出以打开DSV管理器 +tool.trackassembly.reload_use.3=启用数据库导出以打开DSV管理器 +tool.trackassembly.reload_use.4=启用数据库导出以打开DSV管理器 +tool.trackassembly.reload_use.5=启用数据库导出以打开DSV管理器 +tool.trackassembly.resetvars=单击以重置附加值 +tool.trackassembly.resetvars_con=V 重置变量 V +tool.trackassembly.right.1=复制轨道件模型或打开常用部件对话框 +tool.trackassembly.right.2=复制轨道件模型或打开常用部件对话框 +tool.trackassembly.right.3=为分段曲线创建节点。按住SHIFT进行更新。 +tool.trackassembly.right.4=将实体注册到浏览列表中。按住SHIFT更改模型。 +tool.trackassembly.right.5=为分段曲线创建节点。按住SHIFT进行更新。 +tool.trackassembly.right_use.1=禁用滚动。复制轨道件模型或打开常用组件对话框。 +tool.trackassembly.right_use.2=禁用滚动。复制轨道件模型或打开常用组件对话框。 +tool.trackassembly.right_use.3=从最近的轨道组件活动点生成节点。 +tool.trackassembly.right_use.4=禁用滚动。复制轨道件模型或打开常用组件对话框。 +tool.trackassembly.right_use.5=从最近的轨道组件活动点生成节点。 tool.trackassembly.rtradmenu=更改此设置可调整径向菜单基角并重新定位其选项 tool.trackassembly.rtradmenu_con=径向旋转\: -tool.trackassembly.enpntmscr=启用后,通过鼠标滚动打开切换活动点 -tool.trackassembly.enpntmscr_con=启用点滚动 -tool.trackassembly.exportdb=启用后,会将数据库导出为一个大文件 -tool.trackassembly.exportdb_con=启用数据库导出 -tool.trackassembly.modedb=将其更改为定义轨道数据库的存储行为 -tool.trackassembly.modedb_con=数据库模式\: -tool.trackassembly.devmode=启用后,将打开开发人员模式以进行跟踪和调试 -tool.trackassembly.devmode_con=启用开发者模式 -tool.trackassembly.maxtrmarg=更改此设置以调整工具轨迹之间的时间 -tool.trackassembly.maxtrmarg_con=迹线余量\: -tool.trackassembly.maxmenupr=更改此项以调整菜单中的小数位数 -tool.trackassembly.maxmenupr_con=小数位\: -tool.trackassembly.maxmass=更改此设置可调整可应用于组件的最大质量 -tool.trackassembly.maxmass_con=最大质量\: -tool.trackassembly.maxlinear=更改此设置以调整组件上的最大线性偏移 -tool.trackassembly.maxlinear_con=偏移限制\: -tool.trackassembly.maxforce=更改此设置以调整创建焊缝时的最大力限制 -tool.trackassembly.maxforce_con=力限制\: -tool.trackassembly.maxactrad=更改此项可调整获取点ID的最大活动半径 -tool.trackassembly.maxactrad_con=半径限制\: -tool.trackassembly.maxstcnt=更改此设置可调整堆叠模式下创建的最大件数 -tool.trackassembly.maxstcnt_con=堆栈限制\: -tool.trackassembly.enwiremod=启用后将打开wiremod拓展 -tool.trackassembly.enwiremod_con=启用wire拓展 -tool.trackassembly.enmultask=启用后,会在堆叠模式下开启多任务处理 -tool.trackassembly.enmultask_con=启用多任务处理 -tool.trackassembly.enctxmenu=启用后,将打开工具专用的上下文菜单 -tool.trackassembly.enctxmenu_con=启用上下文菜单 -tool.trackassembly.enctxmall=启用后,将打开所有道具的工具专用上下文菜单 -tool.trackassembly.enctxmall_con=为所有道具启用上下文菜单 -tool.trackassembly.endsvlock=启用后,将打开外部可插拔的DSV数据库文件锁 -tool.trackassembly.endsvlock_con=启用 DSV 数据库锁 -tool.trackassembly.curvefact=更改此值以调整曲线因子正切系数 -tool.trackassembly.curvefact_con=曲线系数\: -tool.trackassembly.curvsmple=更改此设置以调整曲线插值样本 -tool.trackassembly.curvsmple_con=曲线样本\: -tool.trackassembly.crvturnlm=更改此设置以调整该段的转弯弯曲锐度限制 -tool.trackassembly.crvturnlm_con=曲率转弯\: -tool.trackassembly.crvleanlm=更改此设置以调整该段的倾斜弯曲锐度限制 -tool.trackassembly.crvleanlm_con=曲率倾斜\: +tool.trackassembly.sgradmenu=更改此设置以使径向菜单更加圆形。越高越平滑 +tool.trackassembly.sgradmenu_con=径向段\: +tool.trackassembly.sizeucs=为显示的坐标系设置的比例 +tool.trackassembly.sizeucs_con=缩放 UCS\: +tool.trackassembly.spawncn=在中心点生成组件,否则相对于所选的活动点生成组件 +tool.trackassembly.spawncn_con=中心原点 tool.trackassembly.spawnrate=更改此设置以调整每个服务器刻度生成的轨道段的数量 tool.trackassembly.spawnrate_con=生成率\: -tool.trackassembly.bnderrmod=更改此设置以定义客户端在地图边界之外生成组件时的行为 -tool.trackassembly.bnderrmod_off=允许无限制地堆叠/生成 -tool.trackassembly.bnderrmod_log=拒绝堆栈/生成错误被记录 -tool.trackassembly.bnderrmod_hint=显示拒绝堆栈/生成提示消息 -tool.trackassembly.bnderrmod_generic=显示拒绝堆栈/生成通用消息 -tool.trackassembly.bnderrmod_error=显示拒绝堆栈/生成错误消息 -tool.trackassembly.bnderrmod_con=边界模式\: -tool.trackassembly.modedb=更改此项以定义轨道数据库的存储行为 -tool.trackassembly.modedb_lua=利用直接缓存存储 -tool.trackassembly.modedb_sql=仅缓存请求的记录 -tool.trackassembly.modedb_con=数据库模式\: -tool.trackassembly.maxfruse=更改此设置以调整有多少常用组件的深度 -tool.trackassembly.maxfruse_con=常用组件\: +tool.trackassembly.spnflat=下一组件将水平生成/固定/堆叠 +tool.trackassembly.spnflat_con=水平生成 +tool.trackassembly.stackcnt=堆叠时创建的最大组件数量 +tool.trackassembly.stackcnt_con=组件数量\: +tool.trackassembly.subfolder=通过展开文件夹选择要使用的轨道类别 +tool.trackassembly.subfolder_con=轨道类别\: +tool.trackassembly.surfsnap=将组件固定在玩家指向的表面上 +tool.trackassembly.surfsnap_con=固定到轨迹表面 tool.trackassembly.timermode_ap=单击此按钮可将更改应用到 SQL 内存管理器配置 tool.trackassembly.timermode_ap_con=应用内存设置 -tool.trackassembly.timermode_md=更改此项可调整 SQL 内存管理器的计时器算法 -tool.trackassembly.timermode_lf=更改此项可调整记录在缓存中的停留时间 -tool.trackassembly.timermode_lf_con=Record life\: -tool.trackassembly.timermode_rd=启用后,通过强制 nil 值从缓存中擦除记录 -tool.trackassembly.timermode_rd_con=启用记录删除 +tool.trackassembly.timermode_cqt=通过记录请求缓存查询计时器 tool.trackassembly.timermode_ct=启用后,删除记录时强制运行垃圾回收 tool.trackassembly.timermode_ct_con=启用垃圾收集 +tool.trackassembly.timermode_lf=更改此项可调整记录在缓存中的停留时间 +tool.trackassembly.timermode_lf_con=Record life\: +tool.trackassembly.timermode_md=更改此项可调整 SQL 内存管理器的计时器算法 tool.trackassembly.timermode_mem=SQL表的内存管理器\: -tool.trackassembly.timermode_cqt=通过记录请求缓存查询计时器 tool.trackassembly.timermode_obj=附加到缓存记录的对象计时器 -tool.trackassembly.factory_reset=单击此按钮应用控制台变量出厂设置 -tool.trackassembly.factory_reset_con=应用出厂设置 -tool.trackassembly.logfile=启用后开始将日志流式传输到专用文件中 -tool.trackassembly.logfile_con=启用日志文件 -tool.trackassembly.logsmax=更改此项以调整日志流写入的最大输出行数 -tool.trackassembly.logsmax_con=记录线路\: -tool.trackassembly.client_var=客户端玩家偏好。在工具客户端配置中创建的Convar -tool.trackassembly.nonrep_var=非复制convar控件。它们在服务器和客户端上有不同的值 -tool.trackassembly.relica_var=复制convar控件。服务器值发送给所有客户端使用 -tool.trackassembly.utilities_user=用户设置 +tool.trackassembly.timermode_rd=启用后,通过强制 nil 值从缓存中擦除记录 +tool.trackassembly.timermode_rd_con=启用记录删除 +tool.trackassembly.type=通过展开文件夹选择要使用的轨道类型 +tool.trackassembly.type_con=轨道类型\: +tool.trackassembly.upspanchor=启用在每次生成时更新锚点(非固定状态) +tool.trackassembly.upspanchor_con=更新生成时的锚点 tool.trackassembly.utilities_admin=管理员设置 -tool.trackassembly.buttonas<>=Decrement/Increment -tool.trackassembly.buttonas+/-=Negate value -tool.trackassembly.buttonas@M=Memorize value -tool.trackassembly.buttonas@D=Default value -tool.trackassembly.buttonas@45=Update 45 -tool.trackassembly.buttonas@90=Update 90 -tool.trackassembly.buttonas@135=Update 135 -tool.trackassembly.buttonas@180=Update 180 -sbox_maxasmtracks=更改此项以调整服务器上通过轨道工具生成的东西 -sbox_maxasmtracks_con=总段数\: -Cleanup_asmtracks=组装好的轨道组件 -Cleaned_asmtracks=清理了所有轨道组件 -SBoxLimit_asmtracks=You've hit the spawned tracks limit! +tool.trackassembly.utilities_user=用户设置 +tool.trackassembly.weld=在组件或组件/锚点之间创建焊接 +tool.trackassembly.weld_con=焊接 +tool.trackassembly.workmode.1=一般生成/固定 +tool.trackassembly.workmode.2=活动点交点 +tool.trackassembly.workmode.3=曲线线段拟合 +tool.trackassembly.workmode.4=表面法线翻转 +tool.trackassembly.workmode.5=切线过渡弯 +tool.trackassembly.workmode=更改此选项以选择不同的工作模式 +tool.trackassembly.workmode_con=工作模式\: