mirror of
https://github.com/dvdvideo1234/TrackAssemblyTool.git
synced 2025-03-04 03:13:32 -05:00
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`
This commit is contained in:
parent
ac751fcc43
commit
9360519b24
136
data/expression2/TA_Pipe_Generator.txt
Normal file
136
data/expression2/TA_Pipe_Generator.txt
Normal file
@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -57,10 +57,10 @@ if(first() || dupefinished())
|
|||||||
}else{ error("Additions line fail "+M) }
|
}else{ error("Additions line fail "+M) }
|
||||||
|
|
||||||
P1 = trackasmlibGetProperty()
|
P1 = trackasmlibGetProperty()
|
||||||
if(P1[3,string] == "Metal")
|
if(P1[3,string] == "Liquid")
|
||||||
{
|
{
|
||||||
P2 = trackasmlibGetProperty(P1[3,string])
|
P2 = trackasmlibGetProperty(P1[3,string])
|
||||||
if(P2[5, string] == "crowbar")
|
if(P2[1, string] == "slime")
|
||||||
{
|
{
|
||||||
print("Property type OK <"+P2[5, string]+">")
|
print("Property type OK <"+P2[5, string]+">")
|
||||||
}else{ error("Property type fail <"+P2[5, string]+">")}
|
}else{ error("Property type fail <"+P2[5, string]+">")}
|
||||||
|
@ -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})
|
|
@ -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"})
|
|
File diff suppressed because it is too large
Load Diff
8
data/trackassembly/exp/cl_trackassembly_additions.txt
Normal file
8
data/trackassembly/exp/cl_trackassembly_additions.txt
Normal file
@ -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
|
203
data/trackassembly/exp/cl_trackassembly_category.txt
Normal file
203
data/trackassembly/exp/cl_trackassembly_category.txt
Normal file
@ -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]===]
|
91
data/trackassembly/exp/cl_trackassembly_physproperties.txt
Normal file
91
data/trackassembly/exp/cl_trackassembly_physproperties.txt
Normal file
@ -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"
|
4228
data/trackassembly/exp/cl_trackassembly_pieces.txt
Normal file
4228
data/trackassembly/exp/cl_trackassembly_pieces.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -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})
|
|
@ -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"})
|
|
File diff suppressed because it is too large
Load Diff
@ -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
|
|
||||||
* /!<attachment_name>/ 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
|
|
@ -2,6 +2,8 @@ QuickSort
|
|||||||
SetNumSlider
|
SetNumSlider
|
||||||
ModelToName: Cut
|
ModelToName: Cut
|
||||||
ModelToName: Sub
|
ModelToName: Sub
|
||||||
|
BIND_PRESS:
|
||||||
|
RegisterPOA: Store
|
||||||
ModelToName: App
|
ModelToName: App
|
||||||
DefaultType: Avoided
|
DefaultType: Avoided
|
||||||
LocatePOA: Missing ID
|
LocatePOA: Missing ID
|
||||||
@ -28,6 +30,7 @@ DRAW_RADMENU: Release
|
|||||||
DRAW_RADMENU: Hook mismatch
|
DRAW_RADMENU: Hook mismatch
|
||||||
DRAW_RADMENU: Scroll release
|
DRAW_RADMENU: Scroll release
|
||||||
DRAW_RADMENU: Menu disabled
|
DRAW_RADMENU: Menu disabled
|
||||||
|
DRAW_RADMENU: %(gmod_tool%) Swep other
|
||||||
DRAW_GHOSTS: Swep invalid
|
DRAW_GHOSTS: Swep invalid
|
||||||
DRAW_GHOSTS: Swep not tool
|
DRAW_GHOSTS: Swep not tool
|
||||||
DRAW_GHOSTS: %(gmod_tool%) Swep other
|
DRAW_GHOSTS: %(gmod_tool%) Swep other
|
||||||
@ -41,7 +44,6 @@ DRAW_PHYSGUN: Swep invalid
|
|||||||
DRAW_PHYSGUN: Extension disabled
|
DRAW_PHYSGUN: Extension disabled
|
||||||
DRAW_PHYSGUN: Trace not piece
|
DRAW_PHYSGUN: Trace not piece
|
||||||
DRAW_PHYSGUN: %(weapon_physgun%) Swep other
|
DRAW_PHYSGUN: %(weapon_physgun%) Swep other
|
||||||
DRAW_RADMENU: %(gmod_tool%) Swep other
|
|
||||||
POINT_SELECT: Bind not pressed
|
POINT_SELECT: Bind not pressed
|
||||||
POINT_SELECT: Active key missing
|
POINT_SELECT: Active key missing
|
||||||
BIND_PRESS: Hook mismatch
|
BIND_PRESS: Hook mismatch
|
||||||
@ -52,9 +54,12 @@ BIND_PRESS: Bind not pressed
|
|||||||
BIND_PRESS: %(gmod_tool%) Swep other
|
BIND_PRESS: %(gmod_tool%) Swep other
|
||||||
POPULATE_ENTITY: Handler
|
POPULATE_ENTITY: Handler
|
||||||
UPDATE_CONTEXTVAL: Entity
|
UPDATE_CONTEXTVAL: Entity
|
||||||
|
TimerRestart: Memory manager skip
|
||||||
BorderValue: Missing
|
BorderValue: Missing
|
||||||
GetBuilderNick: Key mismatch
|
GetBuilderNick: Key mismatch
|
||||||
GetBuilderID: Builder object missing
|
GetBuilderID: Builder object missing
|
||||||
GetHookInfo: %(gmod_tool%) Swep other
|
GetHookInfo: Swep invalid
|
||||||
GetHookInfo: %(weapon_physgun%) Swep other
|
GetHookInfo: Swep other
|
||||||
|
GetHookInfo: Mode different
|
||||||
|
GetHookInfo: Tool invalid
|
||||||
GetEntityHitID: Trace skip
|
GetEntityHitID: Trace skip
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
]]--
|
]]--
|
||||||
|
|
||||||
-- Local reference to the module.
|
-- 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.
|
* 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"
|
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
|
* Change this if you want to use different in-game type
|
||||||
* You can also use multiple types myType1, myType2,
|
* 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
|
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
|
-- This is used for addon relation prefix. Fingers away from it
|
||||||
local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix
|
local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix
|
||||||
|
|
||||||
@ -45,111 +38,17 @@ local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix
|
|||||||
-- Do not touch this also, it is used for debugging
|
-- Do not touch this also, it is used for debugging
|
||||||
local myScript = tostring(debug.getinfo(1).source or "N/A")
|
local myScript = tostring(debug.getinfo(1).source or "N/A")
|
||||||
myScript = "@"..myScript:gsub("^%W+", ""):gsub("\\","/")
|
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
|
|
||||||
* 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 = (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
|
|
||||||
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)
|
|
||||||
* 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 )
|
|
||||||
]]--
|
|
||||||
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
|
|
||||||
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
|
|
||||||
else -- Successful. You are saving me from all the work for manually generating these
|
|
||||||
asmlib.LogInstance("TranslateDSV START <"..myPrefix..">") -- 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
|
|
||||||
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
|
|
||||||
end
|
|
||||||
|
|
||||||
--[[
|
|
||||||
* 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` )
|
|
||||||
]]--
|
|
||||||
local function myRegisterDSV(bSkip)
|
|
||||||
asmlib.LogInstance("RegisterDSV START <"..myPrefix..">")
|
|
||||||
if(bSkip) 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 OK <"..myPrefix..">")
|
|
||||||
end
|
|
||||||
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 )
|
|
||||||
]]--
|
|
||||||
local function myExportCategory(tCatg)
|
|
||||||
asmlib.LogInstance("ExportCategory START <"..myPrefix..">")
|
|
||||||
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
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Store a reference to disable symbol
|
-- Store a reference to disable symbol
|
||||||
local gsMissDB = asmlib.GetOpVar("MISS_NOSQL")
|
local gsMissDB = asmlib.GetOpVar("MISS_NOSQL")
|
||||||
|
local gsDirDSV = asmlib.GetOpVar("DIRPATH_DSV")
|
||||||
local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU")
|
local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU")
|
||||||
local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE")
|
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
|
-- This is the path to your DSV
|
||||||
local myDsv = asmlib.GetOpVar("DIRPATH_BAS")..
|
local myDsv = asmlib.GetLibraryPath(gsDirDSV, myPrefix, gsToolPF.."PIECES")
|
||||||
asmlib.GetOpVar("DIRPATH_DSV")..
|
|
||||||
gsFormPF:format(myPrefix, gsToolPF.."PIECES")
|
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
* This flag is used when the track pieces list needs to be processed.
|
* This flag is used when the track pieces list needs to be processed.
|
||||||
@ -162,14 +61,109 @@ local myDsv = asmlib.GetOpVar("DIRPATH_BAS")..
|
|||||||
]]--
|
]]--
|
||||||
local myFlag = file.Exists(myDsv, "DATA")
|
local myFlag = file.Exists(myDsv, "DATA")
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* 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 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
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* This logic statement is needed for reporting the error
|
||||||
|
* in the console if the process fails.
|
||||||
|
*
|
||||||
|
@ 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
|
||||||
|
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 = 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 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
|
||||||
|
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("Translation START "..sRep, mySource) -- Signal start translation
|
||||||
|
if(not asmlib.TranslateDSV(sName, myPrefix)) then -- Attempt to translate the DSV to Lua source
|
||||||
|
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("Synchronization EMPTY "..sRep, mySource) end -- Nothing to be done
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* 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 = 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 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("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
|
||||||
|
ThrowError("Failed to register content") -- Throw the error if fails
|
||||||
|
end -- Third argument is the delimiter. The default tab is used
|
||||||
|
asmlib.LogInstance("Registration OK "..sRep, mySource)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* This logic statement is needed for reporting the error in the console if the
|
||||||
|
* process fails.
|
||||||
|
*
|
||||||
|
@ 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 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
|
||||||
|
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
|
||||||
|
|
||||||
-- Tell TA what custom script we just called don't touch it
|
-- 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
|
-- Register the addon to the workshop ID list
|
||||||
asmlib.WorkshopID(myAddon, "287012681")
|
asmlib.WorkshopID(myAddon, "287012681")
|
||||||
|
|
||||||
-- Register the addon to the pluggable DSV list
|
-- 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
|
* 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
|
* 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
|
* 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
|
* 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.
|
* and make every track point to its dedicated category handler.
|
||||||
]]--
|
]]--
|
||||||
local myCategory = {
|
local myCategory = {
|
||||||
@ -199,8 +193,9 @@ local myCategory = {
|
|||||||
]]}
|
]]}
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Register the addon category to the pluggable DSV list
|
-- 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
|
* 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 ).
|
* 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
|
* 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
|
* 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.
|
* 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.
|
* 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.
|
* 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
|
-- 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
|
* 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
|
* and then for every active point, you must have one array of
|
||||||
* strings and numbers, where the elements match the following data settings.
|
* strings and numbers, where the elements match the following data settings.
|
||||||
* {MODELBASE, MODELADD, ENTCLASS, LINEID, POSOFF, ANGOFF, MOVETYPE, PHYSINIT, DRSHADOW, PHMOTION, PHYSLEEP, SETSOLID}
|
* {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.
|
* 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.
|
* 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.
|
* 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
|
* 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
|
* 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.
|
* 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.
|
* 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.
|
* 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 = {}
|
local myAdditions = {}
|
||||||
|
|
||||||
-- Register the addon ADDITIONS to the pluggable DSV list
|
-- 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
|
* Create a table and populate it as shown below
|
||||||
@ -301,17 +298,18 @@ mySyncTable("ADDITIONS", myAdditions, true)
|
|||||||
* {TYPE, LINEID, NAME}
|
* {TYPE, LINEID, NAME}
|
||||||
* TYPE > This is the category under your physical properties are stored internally.
|
* 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.
|
* 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
|
* 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
|
* 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.
|
* 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.
|
* 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.
|
* NAME > This stores the name of the physical property. It must an actual physical property.
|
||||||
]]--
|
]]--
|
||||||
local myPhysproperties = {}
|
local myPhysproperties = {}
|
||||||
|
|
||||||
-- Register the addon PHYSPROPERTIES to the pluggable DSV list
|
-- 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)
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
]]--
|
]]--
|
||||||
|
|
||||||
-- Local reference to the module.
|
-- 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.
|
-- Change this to your addon name.
|
||||||
local myAddon = "SligWolf's Minitrains" -- Your addon name goes here
|
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
|
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
|
-- 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
|
-- This is the script path. It tells TA who wants to add these models
|
||||||
-- Do not touch this also, it is used for debugging
|
-- Do not touch this also, it is used for debugging
|
||||||
local myScript = tostring(debug.getinfo(1).source or "N/A")
|
local myScript = tostring(debug.getinfo(1).source or "N/A")
|
||||||
myScript = "@"..myScript:gsub("^%W+", ""):gsub("\\","/")
|
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
|
* This function defines what happens when there is an error present
|
||||||
* Usually you can tell Gmod that you want it to generate an error
|
* 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 function myThrowError(vMesg)
|
||||||
local sMesg = tostring(vMesg) -- Make sure the message is string
|
local sMesg = tostring(vMesg) -- Make sure the message is string
|
||||||
if(asmlib) then asmlib.LogInstance(sMesg) end -- Output the message into the logs
|
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
|
end
|
||||||
|
|
||||||
if(asmlib) then
|
-- Store a reference to disable symbol
|
||||||
-- Store a reference to disable symbol
|
local gsMissDB = asmlib.GetOpVar("MISS_NOSQL")
|
||||||
local gsMissDB = asmlib.GetOpVar("MISS_NOSQL")
|
local gsDirDSV = asmlib.GetOpVar("DIRPATH_DSV")
|
||||||
local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU")
|
local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU")
|
||||||
local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE")
|
local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE")
|
||||||
local gsModeDB = asmlib.GetOpVar("MODE_DATABASE")
|
local gsModeDB = asmlib.GetOpVar("MODE_DATABASE")
|
||||||
local gsFormPF = asmlib.GetOpVar("FORM_PREFIXDSV")
|
local gsPrfGen = asmlib.GetOpVar("DBEXP_PREFGEN")
|
||||||
|
|
||||||
-- This is the path to your DSV
|
local myPath = { -- This contains the path to generic DSV
|
||||||
local myDsv = asmlib.GetOpVar("DIRPATH_BAS")..
|
asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."PIECES"),
|
||||||
asmlib.GetOpVar("DIRPATH_DSV")..
|
asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."CATEGORY"),
|
||||||
gsFormPF:format(myPrefix, gsToolPF.."PIECES")
|
asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."ADDITIONS"),
|
||||||
|
asmlib.GetLibraryPath(gsDirDSV, gsPrfGen, gsToolPF.."PHYSPROPERTIES")
|
||||||
|
}
|
||||||
|
|
||||||
-- Evaluated to TRUE when the global database is exported
|
-- Tell TA what custom script we just called don't touch it
|
||||||
local myFlag = file.Exists(myDsv, "DATA")
|
asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}", mySource)
|
||||||
|
|
||||||
-- Tell TA what custom script we just called don't touch it
|
-- Check for exported generic database for PIECES
|
||||||
asmlib.LogInstance(">>> "..myScript.." ("..tostring(myFlag).."): {"..myAddon..", "..myPrefix.."}")
|
-- Evaluated to TRUE when the generic database is exported
|
||||||
|
if(not file.Exists(myPath[1], "DATA")) then
|
||||||
|
|
||||||
if(not myFlag) then -- Check for exported global database
|
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, [[
|
asmlib.Categorize(myAddon, [[
|
||||||
function(m)
|
function(m)
|
||||||
local function conv(x) return " "..x:sub(2,2):upper() end
|
local r = m:gsub("models/props_phx/construct/",""):gsub("_","/")
|
||||||
local r = m:gsub("models/minitrains/",""):gsub("_","/")
|
local s = r:find("/"); r = s and r:sub(1,s-1) or nil
|
||||||
local s = r:find("/") or r:find("%.")
|
local n = nil
|
||||||
r = (s and r:sub(1,s-1) or "other"); o = {r}
|
if(r) then
|
||||||
if(r == "sw") then o = {"buffer"} end;
|
if(r == "metal" ) then n = "My metal plate" end
|
||||||
for i = 1, #o do o[i] = ("_"..o[i]):gsub("_%w", conv):sub(2,-1) end; return o end
|
if(r == "windows") then n = "My glass plate" end
|
||||||
]])
|
end
|
||||||
|
r = r and r:gsub("^%l", string.upper) or nil
|
||||||
asmlib.WorkshopID(myAddon, 149759773)
|
p = r and {r} or nil
|
||||||
|
return p, n
|
||||||
if(gsModeDB == "SQL") then sqlBegin() 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
|
|
||||||
* /!<attachment_name>/ 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 sqlCommit() end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
asmlib.LogInstance("<<< "..myScript)
|
asmlib.WorkshopID(myAddon, "287012681")
|
||||||
else
|
|
||||||
myThrowError("Failed loading the required module")
|
if(gsModeDB == "SQL") then sqlBegin() 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
|
||||||
|
* /!<attachment_name>/ 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"})
|
||||||
|
|
||||||
|
if(gsModeDB == "SQL") then sqlCommit() end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
asmlib.LogInstance("<<< "..myScript)
|
||||||
|
@ -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
|
set emd_chew_skip=%emd_chew_repo%\data\trackassembly\tools\peaces_manager\models_ignored.txt
|
||||||
|
|
||||||
:: How many addons are to be processed
|
:: How many addons are to be processed
|
||||||
set emd_chew_addfrm=30
|
set emd_chew_addfrm=31
|
||||||
set emd_chew_addcnt=30
|
set emd_chew_addcnt=31
|
||||||
|
|
||||||
:: GMA addons to be processed
|
:: GMA addons to be processed
|
||||||
set emd_chew_addlst[1]=740453553
|
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[28]=3071058065
|
||||||
set emd_chew_addlst[29]=3297918081
|
set emd_chew_addlst[29]=3297918081
|
||||||
set emd_chew_addlst[30]=3314861708
|
set emd_chew_addlst[30]=3314861708
|
||||||
|
set emd_chew_addlst[31]=2233731395
|
||||||
|
|
||||||
:: Folder list for extraction and the directories they will be extracted
|
:: Folder list for extraction and the directories they will be extracted
|
||||||
set emd_chew_adddir[1]=AlexCookie's 2ft track pack
|
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[28]=RockMan's Fortification
|
||||||
set emd_chew_adddir[29]=SligWolf's Suspension Train
|
set emd_chew_adddir[29]=SligWolf's Suspension Train
|
||||||
set emd_chew_adddir[30]=Modular City Street
|
set emd_chew_adddir[30]=Modular City Street
|
||||||
|
set emd_chew_adddir[31]=Scene Builder
|
||||||
|
|
||||||
:: Show the current folder
|
:: Show the current folder
|
||||||
echo Running in: %emd_chew_pathb%
|
echo Running in: %emd_chew_pathb%
|
||||||
|
@ -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/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/misc/end1.mdl","AlexCookie's 2ft track pack","End1"
|
||||||
"models/alexcookie/2ft/straight/straight_1024.mdl","AlexCookie's 2ft track pack","Straight 1024"
|
"models/alexcookie/2ft/straight/straight_1024.mdl","AlexCookie's 2ft track pack","Straight 1024"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,8 @@
|
|||||||
]]--
|
]]--
|
||||||
|
|
||||||
-- Local reference to the module.
|
-- 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.
|
* 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
|
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
|
* Change this if you want to use different in-game type
|
||||||
* You can also use multiple types myType1, myType2,
|
* 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
|
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
|
-- This is used for addon relation prefix. Fingers away from it
|
||||||
local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix
|
local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix
|
||||||
|
|
||||||
@ -45,110 +38,17 @@ local myPrefix = myAddon:gsub("[^%w]","_") -- Addon prefix
|
|||||||
-- Do not touch this also, it is used for debugging
|
-- Do not touch this also, it is used for debugging
|
||||||
local myScript = tostring(debug.getinfo(1).source or "N/A")
|
local myScript = tostring(debug.getinfo(1).source or "N/A")
|
||||||
myScript = "@"..myScript:gsub("^%W+", ""):gsub("\\","/")
|
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
|
|
||||||
* 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 = (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
|
|
||||||
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)
|
|
||||||
* 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 )
|
|
||||||
]]--
|
|
||||||
local function mySyncTable(sName, tData, bRepl)
|
|
||||||
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
|
|
||||||
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
|
|
||||||
else -- Successful. You are saving me from all the work for manually generating these
|
|
||||||
asmlib.LogInstance("TranslateDSV START <"..myPrefix..">") -- 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
|
|
||||||
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
|
|
||||||
end
|
|
||||||
|
|
||||||
--[[
|
|
||||||
* 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` )
|
|
||||||
]]--
|
|
||||||
local function myRegisterDSV(bSkip)
|
|
||||||
asmlib.LogInstance("RegisterDSV START <"..myPrefix..">")
|
|
||||||
if(bSkip) 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 OK <"..myPrefix..">")
|
|
||||||
end
|
|
||||||
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 )
|
|
||||||
]]--
|
|
||||||
local function myExportCategory(tCatg)
|
|
||||||
asmlib.LogInstance("ExportCategory START <"..myPrefix..">")
|
|
||||||
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
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Store a reference to disable symbol
|
-- Store a reference to disable symbol
|
||||||
local gsMissDB = asmlib.GetOpVar("MISS_NOSQL")
|
local gsMissDB = asmlib.GetOpVar("MISS_NOSQL")
|
||||||
|
local gsDirDSV = asmlib.GetOpVar("DIRPATH_DSV")
|
||||||
local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU")
|
local gsToolPF = asmlib.GetOpVar("TOOLNAME_PU")
|
||||||
local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE")
|
local gsSymOff = asmlib.GetOpVar("OPSYM_DISABLE")
|
||||||
local gsFormPF = asmlib.GetOpVar("FORM_PREFIXDSV")
|
|
||||||
|
|
||||||
-- This is the path to your DSV
|
-- This is the path to your DSV
|
||||||
local myDsv = asmlib.GetOpVar("DIRPATH_BAS")..
|
local myDsv = asmlib.GetLibraryPath(gsDirDSV, myPrefix, gsToolPF.."PIECES")
|
||||||
asmlib.GetOpVar("DIRPATH_DSV")..
|
|
||||||
gsFormPF:format(myPrefix, gsToolPF.."PIECES")
|
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
* This flag is used when the track pieces list needs to be processed.
|
* This flag is used when the track pieces list needs to be processed.
|
||||||
@ -161,14 +61,109 @@ local myDsv = asmlib.GetOpVar("DIRPATH_BAS")..
|
|||||||
]]--
|
]]--
|
||||||
local myFlag = file.Exists(myDsv, "DATA")
|
local myFlag = file.Exists(myDsv, "DATA")
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* 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 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
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* This logic statement is needed for reporting the error
|
||||||
|
* in the console if the process fails.
|
||||||
|
*
|
||||||
|
@ 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
|
||||||
|
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 = 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 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
|
||||||
|
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("Translation START "..sRep, mySource) -- Signal start translation
|
||||||
|
if(not asmlib.TranslateDSV(sName, myPrefix)) then -- Attempt to translate the DSV to Lua source
|
||||||
|
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("Synchronization EMPTY "..sRep, mySource) end -- Nothing to be done
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* 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 = 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 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("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
|
||||||
|
ThrowError("Failed to register content") -- Throw the error if fails
|
||||||
|
end -- Third argument is the delimiter. The default tab is used
|
||||||
|
asmlib.LogInstance("Registration OK "..sRep, mySource)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
|
* This logic statement is needed for reporting the error in the console if the
|
||||||
|
* process fails.
|
||||||
|
*
|
||||||
|
@ 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 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
|
||||||
|
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
|
||||||
|
|
||||||
-- Tell TA what custom script we just called don't touch it
|
-- 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
|
-- Register the addon to the workshop ID list
|
||||||
asmlib.WorkshopID(myAddon, "326640186")
|
asmlib.WorkshopID(myAddon, "326640186")
|
||||||
|
|
||||||
-- Register the addon to the plugable DSV list
|
-- 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
|
* 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
|
-- 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
|
* 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 ).
|
* 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
|
* 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
|
* 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.
|
* 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.
|
* 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.
|
* 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
|
-- 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
|
* 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
|
* and then for every active point, you must have one array of
|
||||||
* strings and numbers, where the elements match the following data settings.
|
* strings and numbers, where the elements match the following data settings.
|
||||||
* {MODELBASE, MODELADD, ENTCLASS, LINEID, POSOFF, ANGOFF, MOVETYPE, PHYSINIT, DRSHADOW, PHMOTION, PHYSLEEP, SETSOLID}
|
* {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.
|
* 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.
|
* 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.
|
* 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
|
* 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
|
* 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.
|
* 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.
|
* 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.
|
* 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
|
-- 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
|
* Create a table and populate it as shown below
|
||||||
@ -402,10 +400,10 @@ mySyncTable("ADDITIONS", myAdditions, true)
|
|||||||
* {TYPE, LINEID, NAME}
|
* {TYPE, LINEID, NAME}
|
||||||
* TYPE > This is the category under your physical properties are stored internally.
|
* 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.
|
* 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
|
* 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
|
* 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.
|
* 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.
|
* 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.
|
* 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 = {}
|
local myPhysproperties = {}
|
||||||
|
|
||||||
-- Register the addon PHYSPROPERTIES to the plugable DSV list
|
-- 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)
|
||||||
|
@ -224,10 +224,10 @@ local function getAdditionsLine(sModel, nID)
|
|||||||
local defTab = makTab:GetDefinition(); if(not defTab) then
|
local defTab = makTab:GetDefinition(); if(not defTab) then
|
||||||
asmlib.LogInstance("No table definition"); return {} end
|
asmlib.LogInstance("No table definition"); return {} end
|
||||||
local stRec = asmlib.CacheQueryAdditions(sModel); if(not stRec) then return {} end
|
local stRec = asmlib.CacheQueryAdditions(sModel); if(not stRec) then return {} end
|
||||||
if(not stRec[nID]) then return {} end; stRec = stRec[nID]
|
if(not stRec[nID]) then return {} end -- There is no line with such number
|
||||||
local iRow, arData = 2, {} -- The model is missed by the main SELECT
|
local arData = {}; stRec = stRec[nID] -- The model is missed by the main SELECT
|
||||||
while(defTab[iRow]) do -- Ordered by ID. Get the line per model
|
for iRow = 2, defTab.Size do -- Ordered by ID. Get the line per model
|
||||||
arData[iRow-1] = stRec[defTab[iRow][1]]; iRow = (iRow + 1)
|
arData[iRow-1] = stRec[defTab[iRow][1]]
|
||||||
end; return arData
|
end; return arData
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -376,7 +376,7 @@ __e2setcost(20)
|
|||||||
e2function number entity:trackasmlibAttachBodyGroups(string sBgpID)
|
e2function number entity:trackasmlibAttachBodyGroups(string sBgpID)
|
||||||
if(not (this and this:IsValid() and enFlag)) then return 0 end
|
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
|
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
|
end
|
||||||
|
|
||||||
__e2setcost(20)
|
__e2setcost(20)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -24,6 +24,7 @@ local netWriteBool = net and net.WriteBool
|
|||||||
local netWriteAngle = net and net.WriteAngle
|
local netWriteAngle = net and net.WriteAngle
|
||||||
local netWriteEntity = net and net.WriteEntity
|
local netWriteEntity = net and net.WriteEntity
|
||||||
local netWriteVector = net and net.WriteVector
|
local netWriteVector = net and net.WriteVector
|
||||||
|
local netWriteNormal = net and net.WriteNormal
|
||||||
local vguiCreate = vgui and vgui.Create
|
local vguiCreate = vgui and vgui.Create
|
||||||
local stringUpper = string and string.upper
|
local stringUpper = string and string.upper
|
||||||
local mathAbs = math and math.abs
|
local mathAbs = math and math.abs
|
||||||
@ -141,6 +142,7 @@ TOOL.ClientConVar = {
|
|||||||
[ "upspanchor" ] = 0,
|
[ "upspanchor" ] = 0,
|
||||||
[ "crvturnlm" ] = 0.95,
|
[ "crvturnlm" ] = 0.95,
|
||||||
[ "crvleanlm" ] = 0.95,
|
[ "crvleanlm" ] = 0.95,
|
||||||
|
[ "crvsuprev" ] = 0.45,
|
||||||
[ "flipoverid" ] = ""
|
[ "flipoverid" ] = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,6 +205,10 @@ TOOL.Category = languageGetPhrase and languageGetPhrase("tool."..gsToolNameL..
|
|||||||
TOOL.Command = nil -- Command on click (nil for default)
|
TOOL.Command = nil -- Command on click (nil for default)
|
||||||
TOOL.ConfigName = nil -- Configure file name (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()
|
function TOOL:GetCurveFactor()
|
||||||
return asmlib.GetAsmConvar("curvefact", "FLT")
|
return asmlib.GetAsmConvar("curvefact", "FLT")
|
||||||
end
|
end
|
||||||
@ -786,15 +792,15 @@ end
|
|||||||
--[[
|
--[[
|
||||||
* Uses heuristics to provide the best suitable location the
|
* Uses heuristics to provide the best suitable location the
|
||||||
* curve note closest location can be updated with. Three cases:
|
* 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
|
* iD > Curve node index to be updated
|
||||||
* vPnt > The new location to update the node with
|
* vPnt > The new location to update the node with
|
||||||
* bMute > Mute mode. Used to disable server status messages
|
* bMute > Mute mode. Used to disable server status messages
|
||||||
* Returns multiple values:
|
* Returns multiple values:
|
||||||
* 1. Curve node calculated heuristics location vector
|
* V > Curve node calculated heuristics location vector
|
||||||
* 2. The amount of neighbor nodes that are active rays
|
* 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)
|
function TOOL:GetCurveNodeActive(iD, vPnt, bMute)
|
||||||
local user = self:GetOwner()
|
local user = self:GetOwner()
|
||||||
@ -862,16 +868,25 @@ function TOOL:CurveClear(bAll, bMute)
|
|||||||
tableRemove(tC.Rays)
|
tableRemove(tC.Rays)
|
||||||
tableEmpty(tC.Snap); tC.SSize = 0
|
tableEmpty(tC.Snap); tC.SSize = 0
|
||||||
tableRemove(tC.Base); tC.Size = (tC.Size - 1)
|
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
|
||||||
end; return tC -- Returns the updated curve nodes table
|
end; return tC -- Returns the updated curve nodes table
|
||||||
end
|
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)
|
function TOOL:GetCurveTransform(stTrace, bPnt)
|
||||||
if(not stTrace) then
|
if(not stTrace) then
|
||||||
asmlib.LogInstance("Trace missing", gtLogs); return nil end
|
asmlib.LogInstance("Trace missing", gtLogs); return nil end
|
||||||
if(not stTrace.Hit) then
|
if(not stTrace.Hit) then
|
||||||
asmlib.LogInstance("Trace not hit", gtLogs); return nil end
|
asmlib.LogInstance("Trace not hit", gtLogs); return nil end
|
||||||
local user = self:GetOwner()
|
local user, nT = self:GetOwner(), 0
|
||||||
local angsnap = self:GetAngSnap()
|
local angsnap = self:GetAngSnap()
|
||||||
local elevpnt = self:GetElevation()
|
local elevpnt = self:GetElevation()
|
||||||
local surfsnap = self:GetSurfaceSnap()
|
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.Orw:Set(tData.Org); tData.Anw:Set(tData.Ang) -- Transform of POA
|
||||||
tData.ID = oID; tData.Min = oMin -- Point ID and minimum distance
|
tData.ID = oID; tData.Min = oMin -- Point ID and minimum distance
|
||||||
tData.POA = oPOA; tData.Rec = oRec -- POA and cache record
|
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
|
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
|
else -- Offset the curve node when it is not driven by an active point
|
||||||
tData.Org:Add(vNrm * elevpnt) -- Apply model active point elevation
|
tData.Org:Add(vNrm * elevpnt) -- Apply model active point elevation
|
||||||
end -- Apply the positional and angular offsets to the return value
|
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:Right() * nexty)
|
||||||
tData.Org:Add(tData.Ang:Forward() * nextx)
|
tData.Org:Add(tData.Ang:Forward() * nextx)
|
||||||
tData.Ang:RotateAroundAxis(tData.Ang:Up() ,-nextyaw)
|
tData.Ang:RotateAroundAxis(tData.Ang:Up() ,-nextyaw)
|
||||||
@ -908,12 +928,58 @@ function TOOL:GetCurveTransform(stTrace, bPnt)
|
|||||||
return tData
|
return tData
|
||||||
end
|
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)
|
function TOOL:CurveInsert(stTrace, bPnt, bMute)
|
||||||
local user, model = self:GetOwner(), self:GetModel()
|
local user, model = self:GetOwner(), self:GetModel()
|
||||||
local tData = self:GetCurveTransform(stTrace, bPnt); if(not tData) then
|
local tData = self:GetCurveTransform(stTrace, bPnt); if(not tData) then
|
||||||
asmlib.LogInstance("Transform missing", gtLogs); return nil end
|
asmlib.LogInstance("Transform missing", gtLogs); return nil end
|
||||||
local tC = asmlib.GetCacheCurve(user); if(not tC) then
|
local tC = asmlib.GetCacheCurve(user); if(not tC) then
|
||||||
asmlib.LogInstance("Curve missing", gtLogs); return nil end
|
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
|
tC.Size = (tC.Size + 1) -- Increment stack size. Adding stuff
|
||||||
tableInsert(tC.Node, Vector(tData.Org))
|
tableInsert(tC.Node, Vector(tData.Org))
|
||||||
tableInsert(tC.Norm, tData.Ang:Up())
|
tableInsert(tC.Norm, tData.Ang:Up())
|
||||||
@ -924,11 +990,13 @@ function TOOL:CurveInsert(stTrace, bPnt, bMute)
|
|||||||
netStart(gsLibName.."SendCreateCurveNode")
|
netStart(gsLibName.."SendCreateCurveNode")
|
||||||
netWriteEntity(user)
|
netWriteEntity(user)
|
||||||
netWriteVector(tC.Node[tC.Size])
|
netWriteVector(tC.Node[tC.Size])
|
||||||
netWriteVector(tC.Norm[tC.Size])
|
netWriteNormal(tC.Norm[tC.Size])
|
||||||
netWriteVector(tC.Base[tC.Size])
|
netWriteVector(tC.Base[tC.Size])
|
||||||
netWriteVector(tC.Rays[tC.Size][1])
|
netWriteVector(tC.Rays[tC.Size][1])
|
||||||
netWriteAngle (tC.Rays[tC.Size][2])
|
netWriteAngle (tC.Rays[tC.Size][2])
|
||||||
netWriteBool (tC.Rays[tC.Size][3])
|
netWriteBool (tC.Rays[tC.Size][3])
|
||||||
|
netWriteUInt (iN, 16)
|
||||||
|
if(iN > 0) then netWriteNormal(vN) end
|
||||||
netSend(user)
|
netSend(user)
|
||||||
user:SetNWBool(gsToolPrefL.."engcurve", true)
|
user:SetNWBool(gsToolPrefL.."engcurve", true)
|
||||||
end
|
end
|
||||||
@ -945,7 +1013,30 @@ function TOOL:CurveUpdate(stTrace, bPnt, bMute)
|
|||||||
asmlib.Notify(user,"Populate nodes first !","ERROR")
|
asmlib.Notify(user,"Populate nodes first !","ERROR")
|
||||||
asmlib.LogInstance("Nodes missing", gtLogs); return nil
|
asmlib.LogInstance("Nodes missing", gtLogs); return nil
|
||||||
end
|
end
|
||||||
|
local nrA = self:GetActiveRadius()
|
||||||
local mD, mL = asmlib.GetNearest(tData.Hit, tC.Base)
|
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.Node[mD]:Set(tData.Org)
|
||||||
tC.Norm[mD]:Set(tData.Ang:Up())
|
tC.Norm[mD]:Set(tData.Ang:Up())
|
||||||
tC.Base[mD]:Set(tData.Hit)
|
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][2]:Set(tData.Ang)
|
||||||
tC.Rays[mD][3] = (tData.POA ~= nil)
|
tC.Rays[mD][3] = (tData.POA ~= nil)
|
||||||
-- Adjust node according to intersection
|
-- 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)
|
local xx = self:GetCurveNodeActive(mD, tData.Org)
|
||||||
if(xx) then
|
if(xx) then
|
||||||
tC.Node[mD]:Set(xx)
|
tC.Node[mD]:Set(xx)
|
||||||
@ -962,12 +1053,16 @@ function TOOL:CurveUpdate(stTrace, bPnt, bMute)
|
|||||||
tC.Norm[mD]:Normalize()
|
tC.Norm[mD]:Normalize()
|
||||||
end
|
end
|
||||||
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
|
if(not bMute) then
|
||||||
asmlib.Notify(user, "Node ["..mD.."] updated !", "CLEANUP")
|
asmlib.Notify(user, "Node ["..mD.."] updated !", "CLEANUP")
|
||||||
netStart(gsLibName.."SendUpdateCurveNode")
|
netStart(gsLibName.."SendUpdateCurveNode")
|
||||||
netWriteEntity(user)
|
netWriteEntity(user)
|
||||||
netWriteVector(tC.Node[mD])
|
netWriteVector(tC.Node[mD])
|
||||||
netWriteVector(tC.Norm[mD])
|
netWriteNormal(tC.Norm[mD])
|
||||||
netWriteVector(tC.Base[mD])
|
netWriteVector(tC.Base[mD])
|
||||||
netWriteVector(tC.Rays[mD][1])
|
netWriteVector(tC.Rays[mD][1])
|
||||||
netWriteAngle (tC.Rays[mD][2])
|
netWriteAngle (tC.Rays[mD][2])
|
||||||
@ -1182,19 +1277,18 @@ function TOOL:LeftClick(stTrace)
|
|||||||
}, function(oPly, oArg)
|
}, function(oPly, oArg)
|
||||||
for iD = oArg.stard, tC.SSize do tS = tC.Snap[iD]
|
for iD = oArg.stard, tC.SSize do tS = tC.Snap[iD]
|
||||||
for iK = oArg.stark, tS.Size do local tV, ePiece = tS[iK], nil
|
for iK = oArg.stark, tS.Size do local tV, ePiece = tS[iK], nil
|
||||||
oArg.spawn = asmlib.GetNormalSpawn(oPly, tV[1], tV[2], model, pointid,
|
oArg.spawn = asmlib.GetNormalSpawn(oPly, tV[1], tV[2], model, pointid, 0, 0, 0, 0, 0, 0, oArg.spawn)
|
||||||
nextx, nexty, nextz, nextpic, nextyaw, nextrol, oArg.spawn)
|
|
||||||
if(not oArg.spawn) then -- Make sure it persists to set it afterwards
|
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
|
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(crvturnlm > 0 or crvleanlm > 0) then local nF, nU = asmlib.GetTurningFactor(oPly, tS, iK)
|
||||||
if(nF and nF < crvturnlm) then
|
if(nF and nF < crvturnlm) then
|
||||||
oArg.mundo = asmlib.GetReport(iD, asmlib.GetNearest(tV[1], tC.Node), ("%4.3f"):format(nF))
|
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
|
asmlib.LogInstance(self:GetStatus(stTrace,"("..oArg.wname..") "..oArg.mundo..": Turn excessive"), gtLogs); return false
|
||||||
end
|
end
|
||||||
if(nU and nU < crvleanlm) then
|
if(nU and nU < crvleanlm) then
|
||||||
oArg.mundo = asmlib.GetReport(iD, asmlib.GetNearest(tV[1], tC.Node),("%4.3f"):format(nU))
|
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
|
asmlib.LogInstance(self:GetStatus(stTrace,"("..oArg.wname..") "..oArg.mundo..": Lean excessive"), gtLogs); return false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -1364,7 +1458,7 @@ function TOOL:LeftClick(stTrace)
|
|||||||
end
|
end
|
||||||
else -- Visual
|
else -- Visual
|
||||||
local IDs = gsSymDir:Explode(bgskids)
|
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
|
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))
|
trEnt:SetSkin(mathClamp(tonumber(IDs[2]) or 0,0,trEnt:SkinCount()-1))
|
||||||
asmlib.LogInstance("(Bodygroup/Skin) Success",gtLogs)
|
asmlib.LogInstance("(Bodygroup/Skin) Success",gtLogs)
|
||||||
@ -1521,18 +1615,6 @@ function TOOL:Reload(stTrace)
|
|||||||
if(user:IsAdmin()) then
|
if(user:IsAdmin()) then
|
||||||
if(self:GetDeveloperMode()) then
|
if(self:GetDeveloperMode()) then
|
||||||
asmlib.SetLogControl(self:GetLogLines(),self:GetLogFile()) end
|
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
|
end
|
||||||
if(user:KeyDown(IN_SPEED)) then
|
if(user:KeyDown(IN_SPEED)) then
|
||||||
if(workmode == 1) then
|
if(workmode == 1) then
|
||||||
@ -1636,8 +1718,6 @@ function TOOL:UpdateGhostCurve()
|
|||||||
local stackcnt = self:GetStackCount()
|
local stackcnt = self:GetStackCount()
|
||||||
local pointid, pnextid = self:GetPointID()
|
local pointid, pnextid = self:GetPointID()
|
||||||
local tGho, iGho = asmlib.GetOpVar("ARRAY_GHOST"), 0
|
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)
|
local bCrv = user:GetNWBool(gsToolPrefL.."engcurve", false)
|
||||||
if(bCrv) then
|
if(bCrv) then
|
||||||
local workmode = self:GetWorkingMode()
|
local workmode = self:GetWorkingMode()
|
||||||
@ -1657,8 +1737,7 @@ function TOOL:UpdateGhostCurve()
|
|||||||
for iD = 1, tCrv.SSize do local tS = tCrv.Snap[iD]
|
for iD = 1, tCrv.SSize do local tS = tCrv.Snap[iD]
|
||||||
for iK = 1, tS.Size do iGho = (iGho + 1)
|
for iK = 1, tS.Size do iGho = (iGho + 1)
|
||||||
local tV, eGho = tS[iK], tGho[iGho]
|
local tV, eGho = tS[iK], tGho[iGho]
|
||||||
local stSpawn = asmlib.GetNormalSpawn(user, tV[1], tV[2], model, pointid,
|
local stSpawn = asmlib.GetNormalSpawn(user, tV[1], tV[2], model, pointid, 0, 0, 0, 0, 0, 0)
|
||||||
nextx, nexty, nextz, nextpic, nextyaw, nextrol)
|
|
||||||
if(eGho and eGho:IsValid()) then eGho:SetNoDraw(true)
|
if(eGho and eGho:IsValid()) then eGho:SetNoDraw(true)
|
||||||
if(stackcnt > 0) then if(iGho > stackcnt) then eGho:SetNoDraw(true) else
|
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
|
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
|
if(not tData) then asmlib.LogInstance("Transform missing", gtLogs); return end
|
||||||
local tC, nS = asmlib.GetCacheCurve(oPly), self:GetSizeUCS()
|
local tC, nS = asmlib.GetCacheCurve(oPly), self:GetSizeUCS()
|
||||||
if(not tC) then asmlib.LogInstance("Curve missing", gtLogs); return end
|
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 xyO, xyH = tData.Org:ToScreen(), tData.Hit:ToScreen()
|
||||||
local xyZ = (tData.Org + nS * tData.Ang:Up()):ToScreen()
|
local xyZ = (tData.Org + nS * tData.Ang:Up()):ToScreen()
|
||||||
local xyX = (tData.Org + nS * tData.Ang:Forward()):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
|
if(tC.Size and tC.Size > 0) then
|
||||||
for iD = 1, tC.Size do
|
for iD = 1, tC.Size do
|
||||||
local rN = (iD == 1 and nrB or nrS)
|
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 nB = asmlib.GetViewRadius(oPly, vB, 2)
|
||||||
local nD = asmlib.GetViewRadius(oPly, vD, rN)
|
local nD = asmlib.GetViewRadius(oPly, vD, rN)
|
||||||
local xyB, xyD = vB:ToScreen(), vD:ToScreen()
|
local xyB, xyD = vB:ToScreen(), vD:ToScreen()
|
||||||
local xyN = (vD + nS * vN):ToScreen()
|
local xyN = (vD + nS * vN):ToScreen()
|
||||||
|
local xyF = (vD + nS * tR[2]:Forward()):ToScreen()
|
||||||
oScreen:DrawLine(xyB, xyD, "y")
|
oScreen:DrawLine(xyB, xyD, "y")
|
||||||
oScreen:DrawCircle(xyB, nB)
|
oScreen:DrawCircle(xyB, nB)
|
||||||
oScreen:DrawCircle(xyD, nD)
|
oScreen:DrawCircle(xyD, nD)
|
||||||
|
oScreen:DrawLine(xyF, xyD, "r")
|
||||||
oScreen:DrawLine(xyN, xyD, "b")
|
oScreen:DrawLine(xyN, xyD, "b")
|
||||||
oScreen:DrawCircle(xyD, nD / 2, "r")
|
oScreen:DrawCircle(xyD, nD / 2, "r")
|
||||||
if(tC.Node[iD - 1]) then
|
if(tC.Node[iD - 1]) then
|
||||||
@ -1969,7 +2051,18 @@ function TOOL:DrawCurveNode(oScreen, oPly, stTrace)
|
|||||||
if(bRp and mD) then
|
if(bRp and mD) then
|
||||||
local xyN = tC.Node[mD]:ToScreen()
|
local xyN = tC.Node[mD]:ToScreen()
|
||||||
oScreen:DrawLine(xyO, xyN, "r")
|
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)
|
local xx, sx = self:GetCurveNodeActive(mD, tData.Org, true)
|
||||||
if(xx) then
|
if(xx) then
|
||||||
local xyX = xx:ToScreen(); oScreen:DrawLine(xyX, xyO, "ry")
|
local xyX = xx:ToScreen(); oScreen:DrawLine(xyX, xyO, "ry")
|
||||||
@ -2240,7 +2333,7 @@ function TOOL:DrawToolScreen(w, h)
|
|||||||
local actrad = self:GetActiveRadius()
|
local actrad = self:GetActiveRadius()
|
||||||
local pointid, pnextid = self:GetPointID()
|
local pointid, pnextid = self:GetPointID()
|
||||||
local workmode, workname = self:GetWorkingMode()
|
local workmode, workname = self:GetWorkingMode()
|
||||||
local trMaxCN, trModel, trOID, trRLen
|
local trMID, trModel, trOID, trRLen
|
||||||
if(trEnt and trEnt:IsValid()) then
|
if(trEnt and trEnt:IsValid()) then
|
||||||
if(asmlib.IsOther(trEnt)) then return end
|
if(asmlib.IsOther(trEnt)) then return end
|
||||||
trModel = trEnt:GetModel()
|
trModel = trEnt:GetModel()
|
||||||
@ -2256,7 +2349,7 @@ function TOOL:DrawToolScreen(w, h)
|
|||||||
trRLen = mathRound(stSpawn.RLen,2)
|
trRLen = mathRound(stSpawn.RLen,2)
|
||||||
end
|
end
|
||||||
if(asmlib.IsHere(trRec)) then
|
if(asmlib.IsHere(trRec)) then
|
||||||
trMaxCN = trRec.Size
|
trMID = trRec.Size
|
||||||
trModel = stringGetFileName(trModel)
|
trModel = stringGetFileName(trModel)
|
||||||
else trModel = "["..gsNoMD.."]"..stringGetFileName(trModel) end
|
else trModel = "["..gsNoMD.."]"..stringGetFileName(trModel) end
|
||||||
end
|
end
|
||||||
@ -2265,7 +2358,7 @@ function TOOL:DrawToolScreen(w, h)
|
|||||||
maxrad = asmlib.GetAsmConvar("maxactrad", "FLT")
|
maxrad = asmlib.GetAsmConvar("maxactrad", "FLT")
|
||||||
scrTool:DrawText("TM: " ..(trModel or gsNoAV),"y")
|
scrTool:DrawText("TM: " ..(trModel or gsNoAV),"y")
|
||||||
scrTool:DrawText("HM: " ..(model or gsNoAV),"m")
|
scrTool:DrawText("HM: " ..(model or gsNoAV),"m")
|
||||||
scrTool:DrawText("ID: ["..(trMaxCN or gsNoID)
|
scrTool:DrawText("ID: ["..(trMID or gsNoID)
|
||||||
.."] " ..(trOID or gsNoID)
|
.."] " ..(trOID or gsNoID)
|
||||||
.." >> "..(pointid or gsNoID)
|
.." >> "..(pointid or gsNoID)
|
||||||
.. " (" ..(pnextid or gsNoID)
|
.. " (" ..(pnextid or gsNoID)
|
||||||
@ -2290,7 +2383,6 @@ function TOOL.BuildCPanel(CPanel)
|
|||||||
asmlib.SetAsmConvar(nil, "flipoverid") -- Reset flip-over mode on pickup
|
asmlib.SetAsmConvar(nil, "flipoverid") -- Reset flip-over mode on pickup
|
||||||
CPanel:ClearControls(); CPanel:DockPadding(5, 0, 5, 10)
|
CPanel:ClearControls(); CPanel:DockPadding(5, 0, 5, 10)
|
||||||
local drmSkin, sLog = CPanel:GetSkin(), "*TOOL.BuildCPanel"
|
local drmSkin, sLog = CPanel:GetSkin(), "*TOOL.BuildCPanel"
|
||||||
local devmode = asmlib.GetAsmConvar("devmode", "BUL")
|
|
||||||
local nMaxLin = asmlib.GetAsmConvar("maxlinear","FLT")
|
local nMaxLin = asmlib.GetAsmConvar("maxlinear","FLT")
|
||||||
local iMaxDec = asmlib.GetAsmConvar("maxmenupr","INT")
|
local iMaxDec = asmlib.GetAsmConvar("maxmenupr","INT")
|
||||||
local sCall, pItem, sName, aData = "_cpan" -- pItem is the current panel created
|
local sCall, pItem, sName, aData = "_cpan" -- pItem is the current panel created
|
||||||
@ -2304,13 +2396,11 @@ function TOOL.BuildCPanel(CPanel)
|
|||||||
pComboPresets:AddConVar(val) end
|
pComboPresets:AddConVar(val) end
|
||||||
CPanel:AddItem(pComboPresets)
|
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
|
asmlib.LogInstance("Panel population empty",sLog); return end
|
||||||
local makTab = asmlib.GetBuilderNick("PIECES"); if(not asmlib.IsHere(makTab)) then
|
local makTab = asmlib.GetBuilderNick("PIECES"); if(not asmlib.IsHere(makTab)) then
|
||||||
asmlib.LogInstance("Missing builder table",sLog); return end
|
asmlib.LogInstance("Missing builder table",sLog); return end
|
||||||
local defTable = makTab:GetDefinition()
|
local pTree = vguiCreate("DTree", CPanel); if(not pTree) then
|
||||||
local catTypes = asmlib.GetOpVar("TABLE_CATEGORIES")
|
|
||||||
local pTree = vguiCreate("DTree", CPanel); if(not pTree) then
|
|
||||||
asmlib.LogInstance("Database tree empty",sLog); return end
|
asmlib.LogInstance("Database tree empty",sLog); return end
|
||||||
pTree:Dock(TOP) -- Initialize to fill left and right bounds
|
pTree:Dock(TOP) -- Initialize to fill left and right bounds
|
||||||
pTree:SetTall(400) -- Make it quite large
|
pTree:SetTall(400) -- Make it quite large
|
||||||
@ -2318,73 +2408,56 @@ function TOOL.BuildCPanel(CPanel)
|
|||||||
pTree:SetIndentSize(0) -- All track types are closed
|
pTree:SetIndentSize(0) -- All track types are closed
|
||||||
pTree:UpdateColours(drmSkin) -- Apply current skin
|
pTree:UpdateColours(drmSkin) -- Apply current skin
|
||||||
CPanel:AddItem(pTree) -- Register it to the panel
|
CPanel:AddItem(pTree) -- Register it to the panel
|
||||||
local iCnt, iTyp, pTypes, pCateg, pNode = 1, 1, {}, {}
|
local defTable = makTab:GetDefinition()
|
||||||
while(cqPanel[iCnt]) do
|
local tType, tRoot = {}, {Size = 0}
|
||||||
local vRec, bNow = cqPanel[iCnt], true
|
for iC = 1, qPanel.Size do
|
||||||
local sMod = vRec[makTab:GetColumnName(1)]
|
local vRec, bNow = qPanel[iC], true
|
||||||
local sTyp = vRec[makTab:GetColumnName(2)]
|
local sMod, sTyp, sNam = vRec.M, vRec.T, vRec.N
|
||||||
local sNam = vRec[makTab:GetColumnName(3)]
|
|
||||||
if(asmlib.IsModel(sMod)) then
|
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
|
local pRoot = pTree:AddNode(sTyp) -- No type folder made already
|
||||||
pRoot:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".type"))
|
pRoot:SetTooltip(languageGetPhrase("tool."..gsToolNameL..".type"))
|
||||||
pRoot.Icon:SetImage(asmlib.ToIcon(defTable.Name))
|
pRoot.Icon:SetImage(asmlib.ToIcon(defTable.Name))
|
||||||
pRoot.DoClick = function() asmlib.SetExpandNode(pRoot) end
|
pRoot.DoClick = function() asmlib.SetNodeExpand(pRoot) end
|
||||||
pRoot.Expander.DoClick = function() asmlib.SetExpandNode(pRoot) end
|
pRoot.Expander.DoClick = function() asmlib.SetNodeExpand(pRoot) end
|
||||||
pRoot.DoRightClick = function()
|
pRoot.DoRightClick = function() asmlib.OpenNodeMenu(pRoot) end
|
||||||
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:UpdateColours(drmSkin)
|
pRoot:UpdateColours(drmSkin)
|
||||||
pTypes[sTyp] = pRoot
|
tType[sTyp] = {Base = pRoot, Node = {}}
|
||||||
end -- Reset the primary tree node pointer
|
end -- Reset the primary tree node pointer
|
||||||
if(pTypes[sTyp]) then pItem = pTypes[sTyp] else pItem = pTree end
|
if(tType[sTyp]) then pItem = tType[sTyp].Base else pItem = pTree end
|
||||||
-- Register the category if definition functional is given
|
-- Register the node associated with the track piece when is intended for later
|
||||||
if(catTypes[sTyp]) then -- There is a category definition
|
if(vRec.C and vRec.C.Size > 0) then -- When category for the track type is available
|
||||||
local bSuc, ptCat, psNam = pcall(catTypes[sTyp].Cmp, sMod)
|
local tNode = tType[sTyp].Node -- Index the contend for the track type
|
||||||
if(bSuc) then -- When the call is successful in protected mode
|
for iD = 1, vRec.C.Size do -- Generate the path to the track piece
|
||||||
if(psNam and not asmlib.IsBlank(psNam)) then
|
local sCat = vRec.C[iD] -- Read the category name
|
||||||
sNam = asmlib.GetBeautifyName(psNam)
|
local tCat = tNode[sCat] -- Index the internal sub-category
|
||||||
end -- Custom name override when the addon requests
|
if(tCat) then -- Jump next if already created
|
||||||
local pCurr = pCateg[sTyp]
|
pItem = tCat.Base -- Assume that the category is allocated
|
||||||
if(not asmlib.IsHere(pCurr)) then
|
tNode = tCat.Node -- Jump to the next set of base nodes
|
||||||
pCateg[sTyp] = {}; pCurr = pCateg[sTyp] end
|
else -- Create a new sub-category for the incoming content
|
||||||
if(asmlib.IsBlank(ptCat)) then ptCat = nil end
|
tNode[sCat] = {}; tCat = tNode[sCat] -- Create node info
|
||||||
if(asmlib.IsHere(ptCat)) then
|
pItem = asmlib.SetNodeDirectory(pItem, sCat) -- Create category
|
||||||
if(not istable(ptCat)) then ptCat = {ptCat} end
|
tCat.Base = pItem; tCat.Node = {} -- Allocate node info
|
||||||
if(ptCat[1]) then local iD = 1
|
tNode = tCat.Node -- Jump to the allocated set of base nodes
|
||||||
while(ptCat[iD]) do local sCat = tostring(ptCat[iD]):lower():Trim()
|
end -- Create the last needed node regarding pItem
|
||||||
if(asmlib.IsBlank(sCat)) then sCat = "other" end
|
end -- When the category has at least one element
|
||||||
sCat = asmlib.GetBeautifyName(sCat) -- Beautify the category
|
else -- Panel cannot categorize the entry add it to the list
|
||||||
if(pCurr[sCat]) then -- Jump next if already created
|
tRoot.Size = tRoot.Size + 1 -- Increment count to avoid calling #
|
||||||
pCurr, pItem = asmlib.GetDirectory(pCurr, sCat)
|
tableInsert(tRoot, iC); bNow = false -- Attach row ID to rooted items
|
||||||
else
|
end -- When needs to be processed now just attach it to the tree
|
||||||
pCurr, pItem = asmlib.SetDirectory(pItem, pCurr, sCat)
|
if(bNow) then asmlib.SetNodeContent(pItem, sNam, sMod) end
|
||||||
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
|
|
||||||
-- SnapReview is ignored because a query must be executed for points count
|
-- SnapReview is ignored because a query must be executed for points count
|
||||||
else asmlib.LogInstance("Ignoring item "..asmlib.GetReport(sTyp, sNam, sMod),sLog) end
|
else asmlib.LogInstance("Ignoring item "..asmlib.GetReport(sTyp, sNam, sMod),sLog) end
|
||||||
iCnt = iCnt + 1
|
|
||||||
end
|
end
|
||||||
-- Attach the hanging items to the type root
|
-- Attach the hanging items to the type root
|
||||||
for typ, val in pairs(pCateg) do
|
for iR = 1, tRoot.Size do
|
||||||
for iD = 1, #val do
|
local iRox = tRoot[iR]
|
||||||
local pan = pTypes[typ]
|
local vRec = qPanel[iRox]
|
||||||
local nam, mod = unpack(val[iD])
|
local sMod, sTyp, sNam = vRec.M, vRec.T, vRec.N
|
||||||
asmlib.SetDirectoryNode(pan, nam, mod)
|
asmlib.SetNodeContent(tType[sTyp].Base, sNam, sMod)
|
||||||
asmlib.LogInstance("Rooting item "..asmlib.GetReport(typ, nam, mod),sLog)
|
asmlib.LogInstance("Rooting item "..asmlib.GetReport(sTyp, sNam, sMod), sLog)
|
||||||
end
|
|
||||||
end -- Process all the items without category defined
|
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
|
-- http://wiki.garrysmod.com/page/Category:DComboBox
|
||||||
local sName = asmlib.GetAsmConvar("workmode", "NAM")
|
local sName = asmlib.GetAsmConvar("workmode", "NAM")
|
||||||
@ -2421,21 +2494,21 @@ function TOOL.BuildCPanel(CPanel)
|
|||||||
pComboPhysName:SetTall(22)
|
pComboPhysName:SetTall(22)
|
||||||
pComboPhysName:UpdateColours(drmSkin)
|
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
|
asmlib.LogInstance("Property population empty",sLog); return end
|
||||||
|
|
||||||
while(cqProperty[iTyp]) do
|
for iP = 1, qProperty.Size do
|
||||||
local sT, sI = cqProperty[iTyp], asmlib.ToIcon("property_type")
|
local sT, sI = qProperty[iP], asmlib.ToIcon("property_type")
|
||||||
pComboPhysType:AddChoice(sT, sT, false, sI); iTyp = iTyp + 1
|
pComboPhysType:AddChoice(sT, sT, false, sI)
|
||||||
end
|
end
|
||||||
|
|
||||||
pComboPhysType.OnSelect = function(pnSelf, nInd, sVal, anyData)
|
pComboPhysType.OnSelect = function(pnSelf, nInd, sVal, anyData)
|
||||||
local cqNames = asmlib.CacheQueryProperty(sVal)
|
local qNames = asmlib.CacheQueryProperty(sVal)
|
||||||
if(cqNames) then local iNam = 1; pComboPhysName:Clear()
|
if(qNames) then pComboPhysName:Clear()
|
||||||
pComboPhysName:SetValue(languageGetPhrase("tool."..gsToolNameL..".phyname_def"))
|
pComboPhysName:SetValue(languageGetPhrase("tool."..gsToolNameL..".phyname_def"))
|
||||||
while(cqNames[iNam]) do
|
for iNam = 1, qNames.Size do
|
||||||
local sN, sI = cqNames[iNam], asmlib.ToIcon("property_name")
|
local sN, sI = qNames[iNam], asmlib.ToIcon("property_name")
|
||||||
pComboPhysName:AddChoice(sN, sN, false, sI); iNam = iNam + 1
|
pComboPhysName:AddChoice(sN, sN, false, sI)
|
||||||
end
|
end
|
||||||
else asmlib.LogInstance("Property type <"..sVal.."> names mismatch",sLog) end
|
else asmlib.LogInstance("Property type <"..sVal.."> names mismatch",sLog) end
|
||||||
end
|
end
|
||||||
@ -2443,7 +2516,7 @@ function TOOL.BuildCPanel(CPanel)
|
|||||||
cvarsRemoveChangeCallback(sName, sName..sCall)
|
cvarsRemoveChangeCallback(sName, sName..sCall)
|
||||||
cvarsAddChangeCallback(sName, function(sV, vO, vN)
|
cvarsAddChangeCallback(sName, function(sV, vO, vN)
|
||||||
pComboPhysName:SetValue(vN) end, sName..sCall);
|
pComboPhysName:SetValue(vN) end, sName..sCall);
|
||||||
asmlib.LogTable(cqProperty, "Property", sLog)
|
asmlib.LogTable(qProperty, "Property", sLog)
|
||||||
|
|
||||||
-- http://wiki.garrysmod.com/page/Category:DTextEntry
|
-- http://wiki.garrysmod.com/page/Category:DTextEntry
|
||||||
local sName = asmlib.GetAsmConvar("bgskids", "NAM")
|
local sName = asmlib.GetAsmConvar("bgskids", "NAM")
|
||||||
@ -2511,6 +2584,7 @@ if(CLIENT) then
|
|||||||
asmlib.SetNumSlider(CPanel, "ghostblnd", iMaxDec)
|
asmlib.SetNumSlider(CPanel, "ghostblnd", iMaxDec)
|
||||||
asmlib.SetNumSlider(CPanel, "crvturnlm", iMaxDec)
|
asmlib.SetNumSlider(CPanel, "crvturnlm", iMaxDec)
|
||||||
asmlib.SetNumSlider(CPanel, "crvleanlm", iMaxDec)
|
asmlib.SetNumSlider(CPanel, "crvleanlm", iMaxDec)
|
||||||
|
asmlib.SetNumSlider(CPanel, "crvsuprev", iMaxDec)
|
||||||
asmlib.SetNumSlider(CPanel, "sgradmenu", 0)
|
asmlib.SetNumSlider(CPanel, "sgradmenu", 0)
|
||||||
asmlib.SetNumSlider(CPanel, "rtradmenu", iMaxDec)
|
asmlib.SetNumSlider(CPanel, "rtradmenu", iMaxDec)
|
||||||
asmlib.SetCheckBox(CPanel, "enradmenu")
|
asmlib.SetCheckBox(CPanel, "enradmenu")
|
||||||
@ -2518,7 +2592,8 @@ if(CLIENT) then
|
|||||||
asmlib.LogInstance("Registered as "..asmlib.GetReport(CPanel.Name), sLog)
|
asmlib.LogInstance("Registered as "..asmlib.GetReport(CPanel.Name), sLog)
|
||||||
end
|
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
|
-- Enter `spawnmenu_reload` in the console to reload the panel
|
||||||
local function setupAdminSettings(CPanel)
|
local function setupAdminSettings(CPanel)
|
||||||
@ -2668,6 +2743,7 @@ if(CLIENT) then
|
|||||||
asmlib.SetAsmConvar(user, "endsvlock", asmlib.GetAsmConvar("endsvlock", "DEF"))
|
asmlib.SetAsmConvar(user, "endsvlock", asmlib.GetAsmConvar("endsvlock", "DEF"))
|
||||||
asmlib.SetAsmConvar(user, "curvefact", asmlib.GetAsmConvar("curvefact", "DEF"))
|
asmlib.SetAsmConvar(user, "curvefact", asmlib.GetAsmConvar("curvefact", "DEF"))
|
||||||
asmlib.SetAsmConvar(user, "curvsmple", asmlib.GetAsmConvar("curvsmple", "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, "spawnrate", asmlib.GetAsmConvar("spawnrate", "DEF"))
|
||||||
asmlib.SetAsmConvar(user, "bnderrmod", asmlib.GetAsmConvar("bnderrmod", "DEF"))
|
asmlib.SetAsmConvar(user, "bnderrmod", asmlib.GetAsmConvar("bnderrmod", "DEF"))
|
||||||
asmlib.SetAsmConvar(user, "maxfruse" , asmlib.GetAsmConvar("maxfruse" , "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)
|
asmlib.LogInstance("Registered as "..asmlib.GetReport(CPanel.Name), sLog)
|
||||||
end
|
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
|
end
|
||||||
|
@ -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)
|
* [RockMan's Fortification](https://steamcommunity.com/sharedfiles/filedetails/?id=3071058065)
|
||||||
* [SligWolf's Suspension train](https://steamcommunity.com/sharedfiles/filedetails/?id=3297918081) [**(AUTHOR)**][ref-maintained]
|
* [SligWolf's Suspension train](https://steamcommunity.com/sharedfiles/filedetails/?id=3297918081) [**(AUTHOR)**][ref-maintained]
|
||||||
* [Modular City Street](https://steamcommunity.com/sharedfiles/filedetails/?id=3314861708)
|
* [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?
|
#### 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
|
Dude seriously, make them yourself, what's the point of playing Gmod then ... xD
|
||||||
|
@ -1,9 +1,88 @@
|
|||||||
|
|
||||||
tool.trackassembly.workmode.1=Обикновено създаване/залепяне
|
Cleaned_asmtracks=Всички парчета трасе са почистени
|
||||||
tool.trackassembly.workmode.2=Пресичане на активни точки
|
Cleanup_asmtracks=Сглобени парчета трасе
|
||||||
tool.trackassembly.workmode.3=Линейна сегментна интерполация
|
SBoxLimit_asmtracks=Достигнахте границата на създадените парчета трасе!
|
||||||
tool.trackassembly.workmode.4=Преобръщане спрямо нормалата
|
sbox_maxasmtracks=Променете тук за да настроите нещата които са създадени от инструмента на сървъра
|
||||||
tool.trackassembly.workmode.5=Преход на завой по допирателна
|
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.1=Създава парчета върху картата или ги сглобява едно спрямо друго
|
||||||
tool.trackassembly.info.2=Свързва секциите на трасето със специален сегмент проектиран за това
|
tool.trackassembly.info.2=Свързва секциите на трасето със специален сегмент проектиран за това
|
||||||
tool.trackassembly.info.3=Създава непрекъснати трасета преминаващи през дадени контролни точки
|
tool.trackassembly.info.3=Създава непрекъснати трасета преминаващи през дадени контролни точки
|
||||||
@ -14,16 +93,125 @@ tool.trackassembly.left.2=Създаване на парче в пресечен
|
|||||||
tool.trackassembly.left.3=Създаване на интерполирана крива на трасе от предмети
|
tool.trackassembly.left.3=Създаване на интерполирана крива на трасе от предмети
|
||||||
tool.trackassembly.left.4=Създаване на огледалните парчета на избрания списък
|
tool.trackassembly.left.4=Създаване на огледалните парчета на избрания списък
|
||||||
tool.trackassembly.left.5=Създаване на интерполирана крива на трасе от предмети
|
tool.trackassembly.left.5=Създаване на интерполирана крива на трасе от предмети
|
||||||
tool.trackassembly.right.1=Копиране на модела на парчето или отваряне на чести записи
|
tool.trackassembly.logfile=Когато е включено започва да пише лог поток в специален файл
|
||||||
tool.trackassembly.right.2=Копиране на модела на парчето или отваряне на чести записи
|
tool.trackassembly.logfile_con=Включи лог файла
|
||||||
tool.trackassembly.right.3=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите
|
tool.trackassembly.logsmax=Променете тук за да настроите максималните линии за дължина на лога
|
||||||
tool.trackassembly.right.4=Регистриране на предмет в списъка за обръщане. Задръжте SHIFT за смяна на модела
|
tool.trackassembly.logsmax_con=Дължина на лога\:
|
||||||
tool.trackassembly.right.5=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите
|
tool.trackassembly.mass=Колко тежко ще бъде създаденото парче
|
||||||
tool.trackassembly.right_use.1=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи
|
tool.trackassembly.mass_con=Маса на парчето\:
|
||||||
tool.trackassembly.right_use.2=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи
|
tool.trackassembly.maxactrad=Променете тук за да настроите максималния радиус за взимане на индекс за снаждане
|
||||||
tool.trackassembly.right_use.3=Генериране на възел от най-близката активна точка на парчето
|
tool.trackassembly.maxactrad_con=Граница на радиус\:
|
||||||
tool.trackassembly.right_use.4=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи
|
tool.trackassembly.maxforce=Променете тук за да настроите максималната сила при на заварките
|
||||||
tool.trackassembly.right_use.5=Генериране на възел от най-близката активна точка на парчето
|
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.name=Монтаж на трасе
|
||||||
|
tool.trackassembly.nextpic=Допълнително отместване на началото по тангаж
|
||||||
|
tool.trackassembly.nextpic_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.nocollide=Създава не-сблъсък между парчетата или парчета/опора
|
||||||
|
tool.trackassembly.nocollide_con=Създай не-сблъсък
|
||||||
|
tool.trackassembly.nocollidew=Създава не-сблъсък между парчетата и света
|
||||||
|
tool.trackassembly.nocollidew_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_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.1=Премахване на парче трасе. Задръжте SHIFT за да изберете опора
|
||||||
tool.trackassembly.reload.2=Премахване на парче трасе. Задръжте SHIFT изберете релационен лъч
|
tool.trackassembly.reload.2=Премахване на парче трасе. Задръжте SHIFT изберете релационен лъч
|
||||||
tool.trackassembly.reload.3=Премахване на възел от интерполираната крива. Задръжте SHIFT за да изчистите стека
|
tool.trackassembly.reload.3=Премахване на възел от интерполираната крива. Задръжте SHIFT за да изчистите стека
|
||||||
@ -34,234 +222,60 @@ tool.trackassembly.reload_use.2=Позволете експорт на данн
|
|||||||
tool.trackassembly.reload_use.3=Позволете експорт на данните за да отворите DSV мениджър
|
tool.trackassembly.reload_use.3=Позволете експорт на данните за да отворите DSV мениджър
|
||||||
tool.trackassembly.reload_use.4=Позволете експорт на данните за да отворите DSV мениджър
|
tool.trackassembly.reload_use.4=Позволете експорт на данните за да отворите DSV мениджър
|
||||||
tool.trackassembly.reload_use.5=Позволете експорт на данните за да отворите 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.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=Цъкнете за да нулирате допълнителните стойности
|
||||||
tool.trackassembly.resetvars_con=V Нулиране на променливите V
|
tool.trackassembly.resetvars_con=V Нулиране на променливите V
|
||||||
tool.trackassembly.nextpic=Допълнително отместване на началото по тангаж
|
tool.trackassembly.right.1=Копиране на модела на парчето или отваряне на чести записи
|
||||||
tool.trackassembly.nextpic_con=Тангаж на началото\:
|
tool.trackassembly.right.2=Копиране на модела на парчето или отваряне на чести записи
|
||||||
tool.trackassembly.nextyaw=Допълнително отместване на началото по азимут
|
tool.trackassembly.right.3=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите
|
||||||
tool.trackassembly.nextyaw_con=Азимут на началото\:
|
tool.trackassembly.right.4=Регистриране на предмет в списъка за обръщане. Задръжте SHIFT за смяна на модела
|
||||||
tool.trackassembly.nextrol=Допълнително отместване на началото по крен
|
tool.trackassembly.right.5=Създаване на възел за сегментна крива. Задръжте SHIFT да обновите
|
||||||
tool.trackassembly.nextrol_con=Крен на началото\:
|
tool.trackassembly.right_use.1=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи
|
||||||
tool.trackassembly.nextx=Допълнително отместване на началото по абсциса
|
tool.trackassembly.right_use.2=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи
|
||||||
tool.trackassembly.nextx_con=Отместване по абсциса\:
|
tool.trackassembly.right_use.3=Генериране на възел от най-близката активна точка на парчето
|
||||||
tool.trackassembly.nexty=Допълнително отместване на началото по ордината
|
tool.trackassembly.right_use.4=Забранен SCROLL. Копиране на модела на парчето или отваряне на чести записи
|
||||||
tool.trackassembly.nexty_con=Отместване по ордината\:
|
tool.trackassembly.right_use.5=Генериране на възел от най-близката активна точка на парчето
|
||||||
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.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_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_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.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.rtradmenu=Променете за да настроите базовия ъгъл на кръговото меню и да преместите опциите
|
tool.trackassembly.rtradmenu=Променете за да настроите базовия ъгъл на кръговото меню и да преместите опциите
|
||||||
tool.trackassembly.rtradmenu_con=Радиална ротация\:
|
tool.trackassembly.rtradmenu_con=Радиална ротация\:
|
||||||
tool.trackassembly.enpntmscr=Когато се разреши позволява превключване на активните точки чрез скрола на мишката
|
tool.trackassembly.sgradmenu=Променете за да направите на кръговото меню по-гладко. По-голяма стойност за по-гладко
|
||||||
tool.trackassembly.enpntmscr_con=Разреши скрола за точките
|
tool.trackassembly.sgradmenu_con=Радиални сегменти\:
|
||||||
tool.trackassembly.exportdb=Когато се пусне разрешава експортирането на базата данни в един голям файл
|
tool.trackassembly.sizeucs=Мащаб за показваните координатни системи
|
||||||
tool.trackassembly.exportdb_con=Разреши експорт на базата данни
|
tool.trackassembly.sizeucs_con=Мащаб UCS\:
|
||||||
tool.trackassembly.devmode=Когато се разреши пуска режим на разработчик за анализ и дебъг на грешки
|
tool.trackassembly.spawncn=Създава парчето в центъра иначе спрямо избраната активна точка
|
||||||
tool.trackassembly.devmode_con=Включи режим на разработчик
|
tool.trackassembly.spawncn_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.spawnrate=Променете тук за да настроите броя сегменти създадени за един сървърен тик
|
tool.trackassembly.spawnrate=Променете тук за да настроите броя сегменти създадени за един сървърен тик
|
||||||
tool.trackassembly.spawnrate_con=Ставка на създаване\:
|
tool.trackassembly.spawnrate_con=Ставка на създаване\:
|
||||||
tool.trackassembly.bnderrmod=Променете тук за да дефинирате поведение когато клиентите създават парчета извън картата
|
tool.trackassembly.spnflat=Следващото парче ще бъде създадено/залепено/натрупано хоризонтално
|
||||||
tool.trackassembly.bnderrmod_off=Разрешено натрупване/създаване без граници
|
tool.trackassembly.spnflat_con=Създай хоризонтално
|
||||||
tool.trackassembly.bnderrmod_log=Забранено натрупване/създаване грешката е записана
|
tool.trackassembly.stackcnt=Максимален брой парчета които може да се създадат при натрупване
|
||||||
tool.trackassembly.bnderrmod_hint=Забранено натрупване/създаване подсказка е изобразена
|
tool.trackassembly.stackcnt_con=Брой парчета\:
|
||||||
tool.trackassembly.bnderrmod_generic=Забранено натрупване/създаване съобщение е изписано
|
tool.trackassembly.subfolder=Изберете категорията трасе която да използвате като разширите папката
|
||||||
tool.trackassembly.bnderrmod_error=Забранено натрупване/създаване грешка е показана
|
tool.trackassembly.subfolder_con=Категория трасе\:
|
||||||
tool.trackassembly.bnderrmod_con=Режим на ограничение\:
|
tool.trackassembly.surfsnap=Залепи парчето по повърхнината към която сочи потребителя
|
||||||
tool.trackassembly.modedb=Променете тук за да дефинирате поведението при съхранение на базата данни
|
tool.trackassembly.surfsnap_con=Залепи по повърхнината
|
||||||
tool.trackassembly.modedb_lua=Използвайте директно съхранение в кеша
|
|
||||||
tool.trackassembly.modedb_sql=Кеширане само на заявените записи
|
|
||||||
tool.trackassembly.modedb_con=Режим на базата\:
|
|
||||||
tool.trackassembly.maxfruse=Променете тук за да настроите дълбочината на често срещаните парчета в списъка
|
|
||||||
tool.trackassembly.maxfruse_con=Чести парчета\:
|
|
||||||
tool.trackassembly.timermode_ap=Кликнете за да приложите избраните настройки върху мениджъра на паметта
|
tool.trackassembly.timermode_ap=Кликнете за да приложите избраните настройки върху мениджъра на паметта
|
||||||
tool.trackassembly.timermode_ap_con=Приложи паметни настройки
|
tool.trackassembly.timermode_ap_con=Приложи паметни настройки
|
||||||
tool.trackassembly.timermode_md=Променете тук за да изберете алгоритъм за таймера на мениджъра на паметта
|
tool.trackassembly.timermode_cqt=Кеш таймер по заявка на запис
|
||||||
tool.trackassembly.timermode_lf=Променете тук за да настроите времето което всеки запис прекарва в кеша
|
|
||||||
tool.trackassembly.timermode_lf_con=Живот на записа\:
|
|
||||||
tool.trackassembly.timermode_rd=Когато е включено намазва кеша като записва празна стойност
|
|
||||||
tool.trackassembly.timermode_rd_con=Включи триене на записи
|
|
||||||
tool.trackassembly.timermode_ct=Когато е включено пуска почистването на боклука след всяко триене
|
tool.trackassembly.timermode_ct=Когато е включено пуска почистването на боклука след всяко триене
|
||||||
tool.trackassembly.timermode_ct_con=Включи почистване на боклука
|
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_mem=Мениджър на паметта за SQL таблица\:
|
||||||
tool.trackassembly.timermode_cqt=Кеш таймер по заявка на запис
|
|
||||||
tool.trackassembly.timermode_obj=Таймерен обект закачен за запис
|
tool.trackassembly.timermode_obj=Таймерен обект закачен за запис
|
||||||
tool.trackassembly.factory_reset=Кликнете за да приложите фабрични настройки на конзолните променливи
|
tool.trackassembly.timermode_rd=Когато е включено намазва кеша като записва празна стойност
|
||||||
tool.trackassembly.factory_reset_con=Приложи фабрични настройки
|
tool.trackassembly.timermode_rd_con=Включи триене на записи
|
||||||
tool.trackassembly.logfile=Когато е включено започва да пише лог поток в специален файл
|
tool.trackassembly.type=Изберете типа трасе което да използвате като разширите папката
|
||||||
tool.trackassembly.logfile_con=Включи лог файла
|
tool.trackassembly.type_con=Тип трасе\:
|
||||||
tool.trackassembly.logsmax=Променете тук за да настроите максималните линии за дължина на лога
|
tool.trackassembly.upspanchor=Включете за обновяване на опората при всяко създаване без натрупвате
|
||||||
tool.trackassembly.logsmax_con=Дължина на лога\:
|
tool.trackassembly.upspanchor_con=Обнови опората при създаване
|
||||||
tool.trackassembly.client_var=Клиентски предпочитания на играча. Променливи създадени чрез инструмента конфигурация
|
|
||||||
tool.trackassembly.nonrep_var=Контроли за не-репликирани променливи. Приемат различни стойности на сървъра и клиента
|
|
||||||
tool.trackassembly.relica_var=Контроли за репликирани променливи. Сървъра изпраща базова стойност до всички клиенти
|
|
||||||
tool.trackassembly.utilities_user=Потребителски настройки
|
|
||||||
tool.trackassembly.utilities_admin=Администраторски настройки
|
tool.trackassembly.utilities_admin=Администраторски настройки
|
||||||
tool.trackassembly.buttonas<>=Намали/Увеличи
|
tool.trackassembly.utilities_user=Потребителски настройки
|
||||||
tool.trackassembly.buttonas+/-=Обърни знака
|
tool.trackassembly.weld=Създава заварки между парчетата или парчета/опора
|
||||||
tool.trackassembly.buttonas@M=Запомни стойност
|
tool.trackassembly.weld_con=Създай заварка
|
||||||
tool.trackassembly.buttonas@D=Дефолтна стойност
|
tool.trackassembly.workmode.1=Обикновено създаване/залепяне
|
||||||
tool.trackassembly.buttonas@=Приложи стойност\:
|
tool.trackassembly.workmode.2=Пресичане на активни точки
|
||||||
sbox_maxasmtracks=Променете тук за да настроите нещата които са създадени от инструмента на сървъра
|
tool.trackassembly.workmode.3=Линейна сегментна интерполация
|
||||||
sbox_maxasmtracks_con=Общо сегменти\:
|
tool.trackassembly.workmode.4=Преобръщане спрямо нормалата
|
||||||
Cleanup_asmtracks=Сглобени парчета трасе
|
tool.trackassembly.workmode.5=Преход на завой по допирателна
|
||||||
Cleaned_asmtracks=Всички парчета трасе са почистени
|
tool.trackassembly.workmode=Сменете тази опция за да изберете различен режим на работа
|
||||||
SBoxLimit_asmtracks=Достигнахте границата на създадените парчета трасе!
|
tool.trackassembly.workmode_con=Работен режим\:
|
||||||
|
@ -1,9 +1,88 @@
|
|||||||
|
|
||||||
tool.trackassembly.workmode.1=General spawn/snap pieces
|
Cleaned_asmtracks=Cleaned up all track pieces
|
||||||
tool.trackassembly.workmode.2=Active point intersection
|
Cleanup_asmtracks=Assembled track pieces
|
||||||
tool.trackassembly.workmode.3=Curve line segment fitting
|
SBoxLimit_asmtracks=You've hit the spawned tracks limit!
|
||||||
tool.trackassembly.workmode.4=Surface normal flip over
|
sbox_maxasmtracks=Change this to adjust the things spawned via track assembly tool on the server
|
||||||
tool.trackassembly.workmode.5=Tangent transition turns
|
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.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.2=Connects track sections with dedicated segment designed for that
|
||||||
tool.trackassembly.info.3=Creates continuous track layouts passing through given checkpoints
|
tool.trackassembly.info.3=Creates continuous track layouts passing through given checkpoints
|
||||||
@ -14,16 +93,125 @@ tool.trackassembly.left.2=Spawn track piece at the intersection point
|
|||||||
tool.trackassembly.left.3=Spawn segmented track interpolation curve
|
tool.trackassembly.left.3=Spawn segmented track interpolation curve
|
||||||
tool.trackassembly.left.4=Spawn flipped over list of tracks selected
|
tool.trackassembly.left.4=Spawn flipped over list of tracks selected
|
||||||
tool.trackassembly.left.5=Spawn segmented track interpolation curve
|
tool.trackassembly.left.5=Spawn segmented track interpolation curve
|
||||||
tool.trackassembly.right.1=Copy track piece model or open frequent pieces frame
|
tool.trackassembly.logfile=When enabled starts streaming the log into dedicated file
|
||||||
tool.trackassembly.right.2=Copy track piece model or open frequent pieces frame
|
tool.trackassembly.logfile_con=Enable logging file
|
||||||
tool.trackassembly.right.3=Create node for the segmented curve. Hold SHIFT to update
|
tool.trackassembly.logsmax=Change this to adjust the log streaming maximum output lines written
|
||||||
tool.trackassembly.right.4=Register entity in the flip over list. Hold SHIFT to change model
|
tool.trackassembly.logsmax_con=Logging lines\:
|
||||||
tool.trackassembly.right.5=Create node for the segmented curve. Hold SHIFT to update
|
tool.trackassembly.mass=How heavy the piece spawned will be
|
||||||
tool.trackassembly.right_use.1=Disabled SCROLL. Copy track piece model or open frequent pieces frame
|
tool.trackassembly.mass_con=Piece mass\:
|
||||||
tool.trackassembly.right_use.2=Disabled SCROLL. Copy track piece model or open frequent pieces frame
|
tool.trackassembly.maxactrad=Change this to adjust the maximum active radius for obtaining point ID
|
||||||
tool.trackassembly.right_use.3=Generate node from the nearest track piece active point
|
tool.trackassembly.maxactrad_con=Radius limit\:
|
||||||
tool.trackassembly.right_use.4=Disabled SCROLL. Copy track piece model or open frequent pieces frame
|
tool.trackassembly.maxforce=Change this to adjust the maximum force limit when creating welds
|
||||||
tool.trackassembly.right_use.5=Generate node from the nearest track piece active point
|
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.name=Track assembly
|
||||||
|
tool.trackassembly.nextpic=Additional origin angular pitch offset
|
||||||
|
tool.trackassembly.nextpic_con=Origin pitch\:
|
||||||
|
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.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.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=<Select Surface Material NAME>
|
||||||
|
tool.trackassembly.phytype=Select physical properties type of the ones listed here
|
||||||
|
tool.trackassembly.phytype_con=Material type\:
|
||||||
|
tool.trackassembly.phytype_def=<Select Surface Material TYPE>
|
||||||
|
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_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_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=<Search by>
|
||||||
|
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.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.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.3=Removes a curve interpolation node. Hold SHIFT to clear the stack
|
||||||
@ -34,234 +222,60 @@ 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.3=Enable database export to open DSV manager
|
||||||
tool.trackassembly.reload_use.4=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.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=<Select Surface Material TYPE>
|
|
||||||
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=<Select Surface Material NAME>
|
|
||||||
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.mass=How heavy the piece spawned will be
|
|
||||||
tool.trackassembly.mass_con=Piece mass\:
|
|
||||||
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=Click to reset the additional values
|
||||||
tool.trackassembly.resetvars_con=V Reset variables V
|
tool.trackassembly.resetvars_con=V Reset variables V
|
||||||
tool.trackassembly.nextpic=Additional origin angular pitch offset
|
tool.trackassembly.right.1=Copy track piece model or open frequent pieces frame
|
||||||
tool.trackassembly.nextpic_con=Origin pitch\:
|
tool.trackassembly.right.2=Copy track piece model or open frequent pieces frame
|
||||||
tool.trackassembly.nextyaw=Additional origin angular yaw offset
|
tool.trackassembly.right.3=Create node for the segmented curve. Hold SHIFT to update
|
||||||
tool.trackassembly.nextyaw_con=Origin yaw\:
|
tool.trackassembly.right.4=Register entity in the flip over list. Hold SHIFT to change model
|
||||||
tool.trackassembly.nextrol=Additional origin angular roll offset
|
tool.trackassembly.right.5=Create node for the segmented curve. Hold SHIFT to update
|
||||||
tool.trackassembly.nextrol_con=Origin roll\:
|
tool.trackassembly.right_use.1=Disabled SCROLL. Copy track piece model or open frequent pieces frame
|
||||||
tool.trackassembly.nextx=Additional origin linear X offset
|
tool.trackassembly.right_use.2=Disabled SCROLL. Copy track piece model or open frequent pieces frame
|
||||||
tool.trackassembly.nextx_con=Offset X\:
|
tool.trackassembly.right_use.3=Generate node from the nearest track piece active point
|
||||||
tool.trackassembly.nexty=Additional origin linear Y offset
|
tool.trackassembly.right_use.4=Disabled SCROLL. Copy track piece model or open frequent pieces frame
|
||||||
tool.trackassembly.nexty_con=Offset Y\:
|
tool.trackassembly.right_use.5=Generate node from the nearest track piece active point
|
||||||
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.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_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_pattern=Write a pattern here and hit ENTER to perform a search
|
|
||||||
tool.trackassembly.pn_srchcol=Choose which list column you want to perform a search on
|
|
||||||
tool.trackassembly.pn_srchcol_lb=<Search by>
|
|
||||||
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.rtradmenu=Change this to adjust the radial menu base angle and relocate its options
|
tool.trackassembly.rtradmenu=Change this to adjust the radial menu base angle and relocate its options
|
||||||
tool.trackassembly.rtradmenu_con=Radial rotation\:
|
tool.trackassembly.rtradmenu_con=Radial rotation\:
|
||||||
tool.trackassembly.enpntmscr=When enabled turns on the switching active points via mouse scroll
|
tool.trackassembly.sgradmenu=Change this to make the radial menu more round. The higher the smoother
|
||||||
tool.trackassembly.enpntmscr_con=Enable point scroll
|
tool.trackassembly.sgradmenu_con=Radial segments\:
|
||||||
tool.trackassembly.exportdb=When enabled turns on the database export as one large file
|
tool.trackassembly.sizeucs=Scale set for the coordinate systems displayed
|
||||||
tool.trackassembly.exportdb_con=Enable database export
|
tool.trackassembly.sizeucs_con=Scale UCS\:
|
||||||
tool.trackassembly.devmode=When enabled turns on the developer mode for tracking and debugging
|
tool.trackassembly.spawncn=Spawns the piece at the center, else spawns relative to the active point chosen
|
||||||
tool.trackassembly.devmode_con=Enable developer mode
|
tool.trackassembly.spawncn_con=Origin from center
|
||||||
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.spawnrate=Change this to adjust the amount of track segments spawned per server tick
|
tool.trackassembly.spawnrate=Change this to adjust the amount of track segments spawned per server tick
|
||||||
tool.trackassembly.spawnrate_con=Spawning rate\:
|
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.spnflat=The next piece will be spawned/snapped/stacked horizontally
|
||||||
tool.trackassembly.bnderrmod_off=Allow stack/spawn without restriction
|
tool.trackassembly.spnflat_con=Spawn horizontally
|
||||||
tool.trackassembly.bnderrmod_log=Deny stack/spawn the error is logged
|
tool.trackassembly.stackcnt=Maximum number of pieces to create while stacking
|
||||||
tool.trackassembly.bnderrmod_hint=Deny stack/spawn hint message is displayed
|
tool.trackassembly.stackcnt_con=Pieces count\:
|
||||||
tool.trackassembly.bnderrmod_generic=Deny stack/spawn generic message is displayed
|
tool.trackassembly.subfolder=Select the track category to use by expanding the folder
|
||||||
tool.trackassembly.bnderrmod_error=Deny stack/spawn error message is displayed
|
tool.trackassembly.subfolder_con=Track category\:
|
||||||
tool.trackassembly.bnderrmod_con=Bounding mode\:
|
tool.trackassembly.surfsnap=Snaps the piece to the surface the player is pointing at
|
||||||
tool.trackassembly.modedb=Change this to define the storage behavior of the track database
|
tool.trackassembly.surfsnap_con=Snap to trace surface
|
||||||
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.timermode_ap=Click this to apply your changes to the SQL memory manager configuration
|
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_ap_con=Apply memory settings
|
||||||
tool.trackassembly.timermode_md=Change this to adjust the timer algorithm of the SQL memory manager
|
tool.trackassembly.timermode_cqt=Cache query timer via record request
|
||||||
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_ct=When enabled forces the garbage collection to run on record deletion
|
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_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_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.timermode_obj=Object timer attached to cache record
|
||||||
tool.trackassembly.factory_reset=Click this to apply console variables factory settings
|
tool.trackassembly.timermode_rd=When enabled wipes the record from the cache by forcing a nil value
|
||||||
tool.trackassembly.factory_reset_con=Apply factory settings
|
tool.trackassembly.timermode_rd_con=Enable record deletion
|
||||||
tool.trackassembly.logfile=When enabled starts streaming the log into dedicated file
|
tool.trackassembly.type=Select the track type to use by expanding the folder
|
||||||
tool.trackassembly.logfile_con=Enable logging file
|
tool.trackassembly.type_con=Track type\:
|
||||||
tool.trackassembly.logsmax=Change this to adjust the log streaming maximum output lines written
|
tool.trackassembly.upspanchor=Enable to update the anchor on every spawn when not snapping
|
||||||
tool.trackassembly.logsmax_con=Logging lines\:
|
tool.trackassembly.upspanchor_con=Update anchor on spawn
|
||||||
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.utilities_admin=Admin settings setup
|
tool.trackassembly.utilities_admin=Admin settings setup
|
||||||
tool.trackassembly.buttonas<>=Decrement/Increment
|
tool.trackassembly.utilities_user=User settings setup
|
||||||
tool.trackassembly.buttonas+/-=Negate value
|
tool.trackassembly.weld=Creates welds between pieces or pieces/anchor
|
||||||
tool.trackassembly.buttonas@M=Memorize value
|
tool.trackassembly.weld_con=Weld
|
||||||
tool.trackassembly.buttonas@D=Default value
|
tool.trackassembly.workmode.1=General spawn/snap pieces
|
||||||
tool.trackassembly.buttonas@=Apply value\:
|
tool.trackassembly.workmode.2=Active point intersection
|
||||||
sbox_maxasmtracks=Change this to adjust the things spawned via track assembly tool on the server
|
tool.trackassembly.workmode.3=Curve line segment fitting
|
||||||
sbox_maxasmtracks_con=Total segments\:
|
tool.trackassembly.workmode.4=Surface normal flip over
|
||||||
Cleanup_asmtracks=Assembled track pieces
|
tool.trackassembly.workmode.5=Tangent transition turns
|
||||||
Cleaned_asmtracks=Cleaned up all track pieces
|
tool.trackassembly.workmode=Change this option to select a different working mode
|
||||||
SBoxLimit_asmtracks=You've hit the spawned tracks limit!
|
tool.trackassembly.workmode_con=Work mode\:
|
||||||
|
@ -1,27 +1,217 @@
|
|||||||
|
|
||||||
tool.trackassembly.workmode.1=Général créer/aligner des pièces
|
Cleaned_asmtracks=Pistes nettoyées
|
||||||
tool.trackassembly.workmode.2=Point d'intersection actif
|
Cleanup_asmtracks=Pièces de piste assemblées
|
||||||
tool.trackassembly.workmode.3=Ajuster des segments de ligne courbés
|
SBoxLimit_asmtracks=Vous avez atteint la limite des pistes créées!
|
||||||
tool.trackassembly.workmode.4=Retourner la normale d'une surface
|
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.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.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.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.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.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.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.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.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.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.logfile=Commence la diffusion du journal dans un fichier dédié
|
||||||
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.logfile_con=Activer le journal
|
||||||
tool.trackassembly.right.3=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser
|
tool.trackassembly.logsmax=Changer ceci pour ajuster le flux maximum des lignes écrites par le journal
|
||||||
tool.trackassembly.right.4=Enregistrer l'entité dans la liste à retourner. Maintenir MAJUSCULE pour changer le modèle
|
tool.trackassembly.logsmax_con=Lignes maximum\:
|
||||||
tool.trackassembly.right.5=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser
|
tool.trackassembly.mass=À quel point la pièce créée sera lourd
|
||||||
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.mass_con=Masse de la pièce\:
|
||||||
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.maxactrad=Changer ceci pour ajuster le rayon actif maximal pour obtenir l'ID d'un point
|
||||||
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.maxactrad_con=Limite du rayon\:
|
||||||
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.maxforce=Changer ceci pour ajuster la limite maximale de la force lors des soudures
|
||||||
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.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.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.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.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.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=<Sélectionner un NOM de matériau de surface>
|
||||||
|
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=<Sélectionner un TYPE de matériau de surface>
|
||||||
|
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_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_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=<Recherche>
|
||||||
|
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.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.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.3=Retire un nœud de l'interpolation de courbe. Maintenir MAJUSCULE pour vider le tas
|
||||||
@ -32,192 +222,60 @@ tool.trackassembly.reload_use.2=Activer l'exportation de la base de données pou
|
|||||||
tool.trackassembly.reload_use.3=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.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.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=<Sélectionner un TYPE de matériau de surface>
|
|
||||||
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=<Sélectionner un NOM de matériau de surface>
|
|
||||||
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.mass=À quel point la pièce créée sera lourd
|
|
||||||
tool.trackassembly.mass_con=Masse de la pièce\:
|
|
||||||
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=Cliquez pour réinitialiser les valeurs supplémentaires
|
||||||
tool.trackassembly.resetvars_con=V Réinitialiser les variables V
|
tool.trackassembly.resetvars_con=V Réinitialiser les variables V
|
||||||
tool.trackassembly.nextpic=Décalage angulaire supplémentaire sur la position initial du tangage
|
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.nextpic_con=Angle du tangage\:
|
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.nextyaw=Décalage angulaire supplémentaire sur la position initial du lacet
|
tool.trackassembly.right.3=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser
|
||||||
tool.trackassembly.nextyaw_con=Angle du lacet\:
|
tool.trackassembly.right.4=Enregistrer l'entité dans la liste à retourner. Maintenir MAJUSCULE pour changer le modèle
|
||||||
tool.trackassembly.nextrol=Décalage angulaire supplementaire sur la position initial du roulis
|
tool.trackassembly.right.5=Créer un nœud pour la courbe segmentée. Maintenir MAJUSCULE pour réactualiser
|
||||||
tool.trackassembly.nextrol_con=Angle du roulis\:
|
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.nextx=Décalage linéaire supplémentaire sur la position initial de X
|
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.nextx_con=Décalage en X\:
|
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.nexty=Décalage linéaire supplémentaire sur la position initial de Y
|
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.nexty_con=Décalage en Y\:
|
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.nextz=Décalage linéaire supplémentaire sur la position initial de Z
|
tool.trackassembly.rtradmenu=Modifiez ceci pour ajuster l'angle de base du menu radial et repositionner ses options
|
||||||
tool.trackassembly.nextz_con=Décalage en Z\:
|
tool.trackassembly.rtradmenu_con=Rotation radiale\:
|
||||||
tool.trackassembly.gravity=Contrôle la gravité sur la pièce créée
|
tool.trackassembly.sgradmenu=Modifiez ceci pour rendre le menu radial plus arrondi. Plus la valeur est élevée, plus c'est lisse
|
||||||
tool.trackassembly.gravity_con=Appliquer la gravité sur la pièce
|
tool.trackassembly.sgradmenu_con=Segments radiaux\:
|
||||||
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.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_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_pattern=Écrire un modèle ici et appuyer sur ENTRÉE pour effectuer une recherche
|
|
||||||
tool.trackassembly.pn_srchcol=Choisir la liste de colonne auquel vous voulez effectuer une recherche sur
|
|
||||||
tool.trackassembly.pn_srchcol_lb=<Recherche>
|
|
||||||
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.sizeucs=Calibration de l'échelle pour le système de coordonnées affiché
|
tool.trackassembly.sizeucs=Calibration de l'échelle pour le système de coordonnées affiché
|
||||||
tool.trackassembly.sizeucs_con=Échelle UCS\:
|
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.spawncn=Créer la pièce vers le centre, sinon, la créer relativement vers le point active choisi
|
||||||
tool.trackassembly.maxstatts_con=Tentatives d'empilement\:
|
tool.trackassembly.spawncn_con=Partir du centre
|
||||||
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.spawnrate=Changer ceci pour ajuster la quantité de segments de pistes créés par cycle de serveur
|
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.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.spnflat=La prochaine pièce sera créée/alignée/empilé horizontalement
|
||||||
tool.trackassembly.bnderrmod_off=[1] Autoriser l'empilement/création sans restriction
|
tool.trackassembly.spnflat_con=Créer horizontalement
|
||||||
tool.trackassembly.bnderrmod_log=[2] Refuser l'empilement/création l'erreur est enregistré
|
tool.trackassembly.stackcnt=Nombre maximum de pièces à créer pendant l'empilement
|
||||||
tool.trackassembly.bnderrmod_hint=[3] Refuser l'empilement/création message d'astuce est affiché
|
tool.trackassembly.stackcnt_con=Nombre de pièces\:
|
||||||
tool.trackassembly.bnderrmod_generic=[4] Refuser l'empilement/création message générique est affiché
|
tool.trackassembly.subfolder=Sélectionnez la catégorie de piste à utiliser en développant le dossier
|
||||||
tool.trackassembly.bnderrmod_error=[5] Refuser l'empilement/création message d'erreur est affiché
|
tool.trackassembly.subfolder_con=Catégorie de piste\:
|
||||||
tool.trackassembly.bnderrmod_con=Sécurité frontière\:
|
tool.trackassembly.surfsnap=Aligne la pièce vers la surface auquel le joueur vise actuellement
|
||||||
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.surfsnap_con=Aligner vers la surface tracé
|
||||||
tool.trackassembly.maxfruse_con=Pièces fréquentes\:
|
|
||||||
tool.trackassembly.timermode_ap=Cliquer ici pour appliquer vos changements au gestionnaire de mémoire SQL
|
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_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_cqt=Mettre en cache la minuterie de la requête via l'enregistrement de la requête
|
||||||
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_ct=Force l'exécution du recyclage de la mémoire lorsqu'une entrée est supprimée
|
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_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_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.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.timermode_rd=Efface les entrées du cache en forçant une valeur nulle
|
||||||
tool.trackassembly.logfile_con=Activer le journal
|
tool.trackassembly.timermode_rd_con=Activer la suppression des entrées
|
||||||
tool.trackassembly.logsmax=Changer ceci pour ajuster le flux maximum des lignes écrites par le journal
|
tool.trackassembly.type=Sélectionnez le type de piste à utiliser en développant le dossier
|
||||||
tool.trackassembly.logsmax_con=Lignes maximum\:
|
tool.trackassembly.type_con=Type de piste\:
|
||||||
sbox_maxasmtracks=Changer ceci pour ajuster les choses créées par l'outil assembleur à piste sur le serveur
|
tool.trackassembly.upspanchor=Activer pour mettre à jour l'ancrage à chaque apparition sans ajustement
|
||||||
sbox_maxasmtracks_con=Quantité de rails\:
|
tool.trackassembly.upspanchor_con=Mettre à jour l'ancrage à l'apparition
|
||||||
Cleanup_asmtracks=Pièces de piste assemblées
|
tool.trackassembly.utilities_admin=Configuration des paramètres administrateur
|
||||||
Cleaned_asmtracks=Pistes nettoyées
|
tool.trackassembly.utilities_user=Configuration des paramètres utilisateur
|
||||||
SBoxLimit_asmtracks=Vous avez atteint la limite des pistes créées!
|
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\:
|
||||||
|
@ -1,115 +1,109 @@
|
|||||||
|
|
||||||
tool.trackassembly.workmode.1=通常部分のスポーン/スナップ
|
Cleaned_asmtracks=線路部分全部綺麗にした
|
||||||
tool.trackassembly.workmode.2=アクティブポイントの交差点
|
Cleanup_asmtracks=組み立てた線路部分
|
||||||
tool.trackassembly.workmode.3=曲線線分フィッティング
|
SBoxLimit_asmtracks=スポーンした線路の限定
|
||||||
tool.trackassembly.desc=乗り物が走る線路を組み立てる
|
tool.trackassembly.activrad=アクティブポイントを選ぶの最小限距離
|
||||||
tool.trackassembly.name=線路の組み立て
|
tool.trackassembly.activrad_con=アクティブ半径\:
|
||||||
tool.trackassembly.phytype=一覧済みしたものの物性タイプを選択して
|
tool.trackassembly.adviser=ツールのレンダリング拠点/角度アドバイザーを管理する
|
||||||
tool.trackassembly.phytype_def=<表面物質タイプを選択して>
|
tool.trackassembly.adviser_con=ドローアドバイザー
|
||||||
tool.trackassembly.phyname=線路を作る時物性ネームを選択すると表面フリクションに効果が出る
|
tool.trackassembly.angsnap=この程度で最初の部分をスナップして
|
||||||
tool.trackassembly.phyname_con=表面材料名\:
|
tool.trackassembly.angsnap_con=鋭角的な路線\:
|
||||||
tool.trackassembly.phyname_def=<表面物質ネームを選択して>
|
tool.trackassembly.appangfst=最初部分のみに鋭角的なオフセットを付けて
|
||||||
|
tool.trackassembly.appangfst_con=最初のに鋭角的のを付けて
|
||||||
|
tool.trackassembly.applinfst=最初部分のみに点直線的なオフセットを付けて
|
||||||
|
tool.trackassembly.applinfst_con=最初のに点直線のを付けて
|
||||||
tool.trackassembly.bgskids=コンマ区切りボディーグループ/スキンIDのセレクションコード。
|
tool.trackassembly.bgskids=コンマ区切りボディーグループ/スキンIDのセレクションコード。
|
||||||
tool.trackassembly.bgskids_con=ボディーグループ/スキン\:
|
tool.trackassembly.bgskids_con=ボディーグループ/スキン\:
|
||||||
tool.trackassembly.bgskids_def=ここにセレクションコードを登録して。模範1,0,0,2,1/3
|
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=スポーンする部分の重さ
|
||||||
tool.trackassembly.mass_con=部分の質量\:
|
tool.trackassembly.mass_con=部分の質量\:
|
||||||
tool.trackassembly.model=タイプを拡張してとノードをクリックしてで線路を始まる/続けるために部分を選んで
|
tool.trackassembly.model=タイプを拡張してとノードをクリックしてで線路を始まる/続けるために部分を選んで
|
||||||
tool.trackassembly.model_con=部分のモデル\:
|
tool.trackassembly.model_con=部分のモデル\:
|
||||||
tool.trackassembly.activrad=アクティブポイントを選ぶの最小限距離
|
tool.trackassembly.name=線路の組み立て
|
||||||
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.nextpic=追加的原点鋭角的なピッチオフセット
|
tool.trackassembly.nextpic=追加的原点鋭角的なピッチオフセット
|
||||||
tool.trackassembly.nextpic_con=原点ピッチ\:
|
tool.trackassembly.nextpic_con=原点ピッチ\:
|
||||||
tool.trackassembly.nextyaw=追加的原点鋭角的なヨーオフセット
|
|
||||||
tool.trackassembly.nextyaw_con=原点ヨー\:
|
|
||||||
tool.trackassembly.nextrol=追加的原点鋭角的なロールオフセット
|
tool.trackassembly.nextrol=追加的原点鋭角的なロールオフセット
|
||||||
tool.trackassembly.nextrol_con=原点ロール\:
|
tool.trackassembly.nextrol_con=原点ロール\:
|
||||||
tool.trackassembly.nextx=追加的原点直線的なXオフセット
|
tool.trackassembly.nextx=追加的原点直線的なXオフセット
|
||||||
tool.trackassembly.nextx_con=Xオフセット\:
|
tool.trackassembly.nextx_con=Xオフセット\:
|
||||||
tool.trackassembly.nexty=追加的原点直線的なYオフセット
|
tool.trackassembly.nexty=追加的原点直線的なYオフセット
|
||||||
tool.trackassembly.nexty_con=Yオフセット\:
|
tool.trackassembly.nexty_con=Yオフセット\:
|
||||||
|
tool.trackassembly.nextyaw=追加的原点鋭角的なヨーオフセット
|
||||||
|
tool.trackassembly.nextyaw_con=原点ヨー\:
|
||||||
tool.trackassembly.nextz=追加的原点直線的なZオフセット
|
tool.trackassembly.nextz=追加的原点直線的なZオフセット
|
||||||
tool.trackassembly.nextz_con=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=部分と部分とアンカーの間に「突き当たる禁止」を入れる
|
||||||
tool.trackassembly.nocollide_con=突き当たる禁止
|
tool.trackassembly.nocollide_con=突き当たる禁止
|
||||||
tool.trackassembly.nocollidew=部分と世界ーの間に「突き当たる禁止」を入れる
|
tool.trackassembly.nocollidew=部分と世界ーの間に「突き当たる禁止」を入れる
|
||||||
tool.trackassembly.nocollidew_con=な衝突世界突き当たる禁止
|
tool.trackassembly.nocollidew_con=な衝突世界突き当たる禁止
|
||||||
tool.trackassembly.freeze=動かぬ状態で部分をスポーンする
|
tool.trackassembly.phyname=線路を作る時物性ネームを選択すると表面フリクションに効果が出る
|
||||||
tool.trackassembly.freeze_con=それは移動しません
|
tool.trackassembly.phyname_con=表面材料名\:
|
||||||
tool.trackassembly.igntype=ツールをスナップする/スタックする時部分の種類を無視させる
|
tool.trackassembly.phyname_def=<表面物質ネームを選択して>
|
||||||
tool.trackassembly.igntype_con=線路部分タイプを無視して
|
tool.trackassembly.phytype=一覧済みしたものの物性タイプを選択して
|
||||||
tool.trackassembly.spnflat=次の部分が横にスポーン/スナップ/スタック
|
tool.trackassembly.phytype_def=<表面物質タイプを選択して>
|
||||||
tool.trackassembly.spnflat_con=横にスポーンして
|
tool.trackassembly.pn_contextm_st=Tables
|
||||||
tool.trackassembly.spawncn=真ん中で部分をスポーンして、他のは選んだアクティブポイントに身寄でスポーンする
|
tool.trackassembly.pn_contextm_stdl=データベースエントリを消して
|
||||||
tool.trackassembly.spawncn_con=真ん中から原点
|
tool.trackassembly.pn_contextm_sted=アイテムを編集して(Luapad)
|
||||||
tool.trackassembly.surfsnap=プレイヤーに指した表面で部分をスナップして
|
tool.trackassembly.pn_contextm_stnk=テーブルニックネームをコピーして
|
||||||
tool.trackassembly.surfsnap_con=トレース表面でスナップして
|
tool.trackassembly.pn_contextm_stpt=テーブルパスをコピーして
|
||||||
tool.trackassembly.appangfst=最初部分のみに鋭角的なオフセットを付けて
|
tool.trackassembly.pn_contextm_stsz=テーブルサイズをコピーして
|
||||||
tool.trackassembly.appangfst_con=最初のに鋭角的のを付けて
|
tool.trackassembly.pn_contextm_sttm=テーブルタイムをコピーして
|
||||||
tool.trackassembly.applinfst=最初部分のみに点直線的なオフセットを付けて
|
tool.trackassembly.pn_display=プレーやの線路部分ここに映る
|
||||||
tool.trackassembly.applinfst_con=最初のに点直線のを付けて
|
tool.trackassembly.pn_display_lb=部分を映る
|
||||||
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.workmode=稼働モード変更の設定
|
|
||||||
tool.trackassembly.workmode_con=稼働モ\:
|
|
||||||
tool.trackassembly.pn_export=クリックでクライアントデータベースをファイルにエクスポート
|
tool.trackassembly.pn_export=クリックでクライアントデータベースをファイルにエクスポート
|
||||||
tool.trackassembly.pn_export_lb=DB エクスポート
|
tool.trackassembly.pn_export_lb=DB エクスポート
|
||||||
tool.trackassembly.pn_routine=よく使った線路部分表
|
tool.trackassembly.pn_extdsv_act=アクティブ
|
||||||
tool.trackassembly.pn_routine_hd=よく使った部分\:
|
tool.trackassembly.pn_extdsv_hd=外部DSVデータベースリストはここに見せる
|
||||||
tool.trackassembly.pn_externdb=使用可能外部データベース\:
|
tool.trackassembly.pn_extdsv_lb=外部DSVリスト
|
||||||
|
tool.trackassembly.pn_extdsv_prf=データベース特異プレッフィクス
|
||||||
tool.trackassembly.pn_externdb_hd=外部データベース\:
|
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_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=サーチするコラムを選択し
|
||||||
tool.trackassembly.pn_srchcol_lb=<でサーチ>
|
tool.trackassembly.pn_srchcol_lb=<でサーチ>
|
||||||
tool.trackassembly.pn_srchcol_lb1=モデル
|
tool.trackassembly.pntasist=ツールのレンダリングスナップポイントアシスタントを管理する
|
||||||
tool.trackassembly.pn_srchcol_lb2=タイプ
|
tool.trackassembly.pntasist_con=ドローアシスタント
|
||||||
tool.trackassembly.pn_srchcol_lb3=ネーム
|
tool.trackassembly.resetvars=追加的な数値をリセットためにクリックして
|
||||||
tool.trackassembly.pn_srchcol_lb4=角
|
tool.trackassembly.resetvars_con=V 変数リセット V
|
||||||
tool.trackassembly.pn_routine_lb=定番アイテム
|
tool.trackassembly.spawncn=真ん中で部分をスポーンして、他のは選んだアクティブポイントに身寄でスポーンする
|
||||||
tool.trackassembly.pn_routine_lb1=期限
|
tool.trackassembly.spawncn_con=真ん中から原点
|
||||||
tool.trackassembly.pn_routine_lb2=角
|
tool.trackassembly.spnflat=次の部分が横にスポーン/スナップ/スタック
|
||||||
tool.trackassembly.pn_routine_lb3=タイプ
|
tool.trackassembly.spnflat_con=横にスポーンして
|
||||||
tool.trackassembly.pn_routine_lb4=ネーム
|
tool.trackassembly.stackcnt=スタックする場合線路部分の最大量
|
||||||
tool.trackassembly.pn_display_lb=部分を映る
|
tool.trackassembly.stackcnt_con=部分の数\:
|
||||||
tool.trackassembly.pn_pattern_lb=パターンを書く
|
tool.trackassembly.subfolder=フォルダを展開して、使用するトラックカテゴリを選択します
|
||||||
Cleanup_asmtracks=組み立てた線路部分
|
tool.trackassembly.subfolder_con=トラックカテゴリ\:
|
||||||
Cleaned_asmtracks=線路部分全部綺麗にした
|
tool.trackassembly.surfsnap=プレイヤーに指した表面で部分をスナップして
|
||||||
SBoxLimit_asmtracks=スポーンした線路の限定
|
tool.trackassembly.surfsnap_con=トレース表面でスナップして
|
||||||
|
tool.trackassembly.type=フォルダを展開して、使用するトラックタイプを選択します
|
||||||
|
tool.trackassembly.type_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=稼働モ\:
|
||||||
|
@ -1,125 +1,281 @@
|
|||||||
|
|
||||||
tool.trackassembly.workmode.1=Общее создание/прилепание куски
|
Cleaned_asmtracks=Все куски дороги очищены
|
||||||
tool.trackassembly.workmode.2=Пересечение активной точки
|
Cleanup_asmtracks=Собранные куски дороги
|
||||||
tool.trackassembly.workmode.3=Кривой отрезок линии фитинг
|
SBoxLimit_asmtracks=Вы достигли предела созданных кусков дороги!
|
||||||
tool.trackassembly.workmode.4=Нормаль поверхности перевернуть
|
sbox_maxasmtracks=Измените это, чтобы настроить объекты, создаваемые с помощью инструмента сборки треков на сервере
|
||||||
tool.trackassembly.desc=Создает дорогу для транспортных средств
|
sbox_maxasmtracks_con=Всего сегментов\:
|
||||||
tool.trackassembly.name=Сборка дороги
|
tool.trackassembly.activrad=Минимальное расстояние чтобы выбрать активную точку
|
||||||
tool.trackassembly.phytype=Выберите тип физических свойств из тех которые перечислены здесь
|
tool.trackassembly.activrad_con=Активный радиус\:
|
||||||
tool.trackassembly.phytype_con=Тип поверхности\:
|
tool.trackassembly.adviser=Управляет отображением позиционного/углового советника
|
||||||
tool.trackassembly.phytype_def=<Выберите ТИП поверхности>
|
tool.trackassembly.adviser_con=Нарисовать советник
|
||||||
tool.trackassembly.phyname=Выберите имя физических свойств которые могут быть использованы при создании дороги так как это повлияет на поверхностное трение
|
tool.trackassembly.angsnap=Приклейте первый кусок созданный тем положением градусов
|
||||||
tool.trackassembly.phyname_con=Имя поверхности\:
|
tool.trackassembly.angsnap_con=Угловое выравнивание\:
|
||||||
tool.trackassembly.phyname_def=<Выберите ИМЯ поверхности>
|
tool.trackassembly.appangfst=Применять угловое смещение только на первой кусок
|
||||||
|
tool.trackassembly.appangfst_con=Применять угловое на первой
|
||||||
|
tool.trackassembly.applinfst=Применять линейное смещение только на первой кусок
|
||||||
|
tool.trackassembly.applinfst_con=Применять линейное на первой
|
||||||
tool.trackassembly.bgskids=Код выбора через запятую для Группа-тела/Кожа ID
|
tool.trackassembly.bgskids=Код выбора через запятую для Группа-тела/Кожа ID
|
||||||
tool.trackassembly.bgskids_con=Группа-тела/Кожа\:
|
tool.trackassembly.bgskids_con=Группа-тела/Кожа\:
|
||||||
tool.trackassembly.bgskids_def=Написать код выбора здесь. Например 1,0,0,2,1/3
|
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=Как тяжелый кусок создал будет
|
||||||
tool.trackassembly.mass_con=Масса куска\:
|
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=Выберите кусок чтобы начать/продолжить свою дорогу выбирая тип дерева и нажав на листе
|
||||||
tool.trackassembly.model_con=Модель куска\:
|
tool.trackassembly.model_con=Модель куска\:
|
||||||
tool.trackassembly.activrad=Минимальное расстояние чтобы выбрать активную точку
|
tool.trackassembly.name=Сборка дороги
|
||||||
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.nextpic=Дополнительный сдвиг начала тангажом
|
tool.trackassembly.nextpic=Дополнительный сдвиг начала тангажом
|
||||||
tool.trackassembly.nextpic_con=Начало тангажа\:
|
tool.trackassembly.nextpic_con=Начало тангажа\:
|
||||||
tool.trackassembly.nextyaw=Дополнительный сдвиг начала рысканием
|
|
||||||
tool.trackassembly.nextyaw_con=Начало рыскания\:
|
|
||||||
tool.trackassembly.nextrol=Дополнительный сдвиг начала рулона
|
tool.trackassembly.nextrol=Дополнительный сдвиг начала рулона
|
||||||
tool.trackassembly.nextrol_con=Начало рулона\:
|
tool.trackassembly.nextrol_con=Начало рулона\:
|
||||||
tool.trackassembly.nextx=Дополнительное линейное смещение X
|
tool.trackassembly.nextx=Дополнительное линейное смещение X
|
||||||
tool.trackassembly.nextx_con=Смещения X\:
|
tool.trackassembly.nextx_con=Смещения X\:
|
||||||
tool.trackassembly.nexty=Дополнительное линейное смещение Y
|
tool.trackassembly.nexty=Дополнительное линейное смещение Y
|
||||||
tool.trackassembly.nexty_con=Смещения Y\:
|
tool.trackassembly.nexty_con=Смещения Y\:
|
||||||
|
tool.trackassembly.nextyaw=Дополнительный сдвиг начала рысканием
|
||||||
|
tool.trackassembly.nextyaw_con=Начало рыскания\:
|
||||||
tool.trackassembly.nextz=Дополнительное линейное смещение Z
|
tool.trackassembly.nextz=Дополнительное линейное смещение Z
|
||||||
tool.trackassembly.nextz_con=Смещения 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=Делает не-столкновение между кусками или кусоком/якорем
|
||||||
tool.trackassembly.nocollide_con=Не-столкновение
|
tool.trackassembly.nocollide_con=Не-столкновение
|
||||||
tool.trackassembly.nocollidew=Делает не-столкновение между кусками и миром
|
tool.trackassembly.nocollidew=Делает не-столкновение между кусками и миром
|
||||||
tool.trackassembly.nocollidew_con=Не-столкновение миром
|
tool.trackassembly.nocollidew_con=Не-столкновение миром
|
||||||
tool.trackassembly.freeze=Создает заморожений кусок
|
tool.trackassembly.nonrep_var=Не реплицируемые консольные переменные. Они имеют разные значения на сервере и клиенте
|
||||||
tool.trackassembly.freeze_con=Заморозить кусок
|
tool.trackassembly.phyname=Выберите имя физических свойств которые могут быть использованы при создании дороги так как это повлияет на поверхностное трение
|
||||||
tool.trackassembly.igntype=Игнорирует различные типы кусков прилипания/накопления
|
tool.trackassembly.phyname_con=Имя поверхности\:
|
||||||
tool.trackassembly.igntype_con=Игнорировать тип кусков
|
tool.trackassembly.phyname_def=<Выберите ИМЯ поверхности>
|
||||||
tool.trackassembly.spnflat=Следующий кусок будет создан/приклеен/накоплен по горизонтали
|
tool.trackassembly.phytype=Выберите тип физических свойств из тех которые перечислены здесь
|
||||||
tool.trackassembly.spnflat_con=Нагромождать по горизонтали
|
tool.trackassembly.phytype_con=Тип поверхности\:
|
||||||
tool.trackassembly.spawncn=Создание куска в центре иначе в выбранной активной точке
|
tool.trackassembly.phytype_def=<Выберите ТИП поверхности>
|
||||||
tool.trackassembly.spawncn_con=Происхождение из центра
|
tool.trackassembly.pn_contextm_cp=Копировать
|
||||||
tool.trackassembly.surfsnap=Приклеить кусок к поверхности к которой ссылается пользователь
|
tool.trackassembly.pn_contextm_cpbx=Коробка
|
||||||
tool.trackassembly.surfsnap_con=Приклеивать к поверхности
|
tool.trackassembly.pn_contextm_cpmd=Модель
|
||||||
tool.trackassembly.appangfst=Применять угловое смещение только на первой кусок
|
tool.trackassembly.pn_contextm_cpnm=Имя
|
||||||
tool.trackassembly.appangfst_con=Применять угловое на первой
|
tool.trackassembly.pn_contextm_cprw=Ряд
|
||||||
tool.trackassembly.applinfst=Применять линейное смещение только на первой кусок
|
tool.trackassembly.pn_contextm_cpth=Путь
|
||||||
tool.trackassembly.applinfst_con=Применять линейное на первой
|
tool.trackassembly.pn_contextm_cpty=Тип
|
||||||
tool.trackassembly.adviser=Управляет отображением позиционного/углового советника
|
tool.trackassembly.pn_contextm_ep=Развернуть узел
|
||||||
tool.trackassembly.adviser_con=Нарисовать советник
|
tool.trackassembly.pn_contextm_ex=Экспортировать
|
||||||
tool.trackassembly.pntasist=Управляет изображение помощника для прилипания
|
tool.trackassembly.pn_contextm_exdv=Внешний
|
||||||
tool.trackassembly.pntasist_con=Нарисовать помощника
|
tool.trackassembly.pn_contextm_exru=Автозапуск
|
||||||
tool.trackassembly.ghostcnt=Управляет подсчет отображением куска-тени
|
tool.trackassembly.pn_contextm_li=Линия
|
||||||
tool.trackassembly.ghostcnt_con=Нарисовать подсчет кусок-тень
|
tool.trackassembly.pn_contextm_licg=Изменить
|
||||||
tool.trackassembly.engunsnap=Управляет приклеивание когда кусок выпущен физической пушки пользователя
|
tool.trackassembly.pn_contextm_licr=Создать
|
||||||
tool.trackassembly.engunsnap_con=Приклеивать выпуском
|
tool.trackassembly.pn_contextm_lirm=Удалить
|
||||||
tool.trackassembly.upspanchor=Включите якорь обновить для каждый раз когда создаете без накопления
|
tool.trackassembly.pn_contextm_mv=Переместить
|
||||||
tool.trackassembly.upspanchor_con=Обновить якорь при создаване
|
tool.trackassembly.pn_contextm_mvbt=Вниз
|
||||||
tool.trackassembly.type=Выберите типа дороги для использования путем расширения папки
|
tool.trackassembly.pn_contextm_mvdn=Ниже
|
||||||
tool.trackassembly.type_con=Тип дороги\:
|
tool.trackassembly.pn_contextm_mvtp=Вверх
|
||||||
tool.trackassembly.subfolder=Выберите категорию дороги для использования путем расширения папки
|
tool.trackassembly.pn_contextm_mvup=Выше
|
||||||
tool.trackassembly.subfolder_con=Категория дороги\:
|
tool.trackassembly.pn_contextm_st=Таблицы
|
||||||
tool.trackassembly.workmode=Измените эту опцию чтобы использовать другой рабочий режим
|
tool.trackassembly.pn_contextm_stdl=Удалить файлы
|
||||||
tool.trackassembly.workmode_con=Рабочий режим\:
|
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=Нажмите чтобы сохранить файл базы данных
|
||||||
tool.trackassembly.pn_export_lb=Экспорт БД
|
tool.trackassembly.pn_export_lb=Экспорт БД
|
||||||
tool.trackassembly.pn_routine=Список регулярно используемых кусков дороги
|
tool.trackassembly.pn_extdsv_act=Активный
|
||||||
tool.trackassembly.pn_routine_hd=Часто используемых кусков пользователя\:
|
tool.trackassembly.pn_extdsv_hd=Список внешних баз данных DSV отображается здесь
|
||||||
tool.trackassembly.pn_externdb=Внешние базы данных доступные для\:
|
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_hd=Внешние базы данных для\:
|
||||||
tool.trackassembly.pn_externdb_lb=Нажмите правой для вариантов\:
|
tool.trackassembly.pn_externdb_ttt=Текущее измененное значение конфигурации\:
|
||||||
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_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=Выберите столбец для поиска
|
||||||
tool.trackassembly.pn_srchcol_lb=<Искать по>
|
tool.trackassembly.pn_srchcol_lb=<Искать по>
|
||||||
tool.trackassembly.pn_srchcol_lb1=Модель
|
tool.trackassembly.pntasist=Управляет изображение помощника для прилипания
|
||||||
tool.trackassembly.pn_srchcol_lb2=Тип
|
tool.trackassembly.pntasist_con=Нарисовать помощника
|
||||||
tool.trackassembly.pn_srchcol_lb3=Имя
|
tool.trackassembly.relica_var=Управление константами с репликацией. Значение на сервере передается всем клиентам для использования
|
||||||
tool.trackassembly.pn_srchcol_lb4=Конец
|
tool.trackassembly.reload.1=Удалить элемент трассы. Удерживайте SHIFT для выбора якоря
|
||||||
tool.trackassembly.pn_routine_lb=Часто используемых кусков
|
tool.trackassembly.reload.2=Удалить элемент трассы. Удерживайте SHIFT для выбора луча связи
|
||||||
tool.trackassembly.pn_routine_lb1=Срок
|
tool.trackassembly.reload.3=Удалить узел интерполяции кривой. Удерживайте SHIFT для очистки стека
|
||||||
tool.trackassembly.pn_routine_lb2=Конец
|
tool.trackassembly.reload.4=Очистить список выбора перевернутых объектов. При пустом удаляет элемент
|
||||||
tool.trackassembly.pn_routine_lb3=Тип
|
tool.trackassembly.reload.5=Удалить узел интерполяции кривой. Удерживайте SHIFT для очистки стека
|
||||||
tool.trackassembly.pn_routine_lb4=Имя
|
tool.trackassembly.reload_use.1=Включить экспорт базы данных для открытия менеджера DSV
|
||||||
tool.trackassembly.pn_display_lb=Показать кусок
|
tool.trackassembly.reload_use.2=Включить экспорт базы данных для открытия менеджера DSV
|
||||||
tool.trackassembly.pn_pattern_lb=Напишите шаблон
|
tool.trackassembly.reload_use.3=Включить экспорт базы данных для открытия менеджера DSV
|
||||||
tool.trackassembly.buttonas<>=Уменьшить/Увеличить
|
tool.trackassembly.reload_use.4=Включить экспорт базы данных для открытия менеджера DSV
|
||||||
tool.trackassembly.buttonas+/-=Начение по умолчаниюз
|
tool.trackassembly.reload_use.5=Включить экспорт базы данных для открытия менеджера DSV
|
||||||
tool.trackassembly.buttonas@M=Запомнить стоимость
|
tool.trackassembly.resetvars=Нажмите чтобы сбросить дополнительные значения
|
||||||
tool.trackassembly.buttonas@D=Значение по умолчанию
|
tool.trackassembly.resetvars_con=V Сбросить переменные V
|
||||||
tool.trackassembly.buttonas@=Применять стоимость\:
|
tool.trackassembly.right.1=Копировать модель элемента трассы или открыть окно частых элементов
|
||||||
Cleanup_asmtracks=Собранные куски дороги
|
tool.trackassembly.right.2=Копировать модель элемента трассы или открыть окно частых элементов
|
||||||
Cleaned_asmtracks=Все куски дороги очищены
|
tool.trackassembly.right.3=Создать узел для сегментированной кривой. Удерживайте SHIFT для обновления
|
||||||
SBoxLimit_asmtracks=Вы достигли предела созданных кусков дороги!
|
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.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.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=Рабочий режим\:
|
||||||
|
@ -1,9 +1,85 @@
|
|||||||
|
|
||||||
tool.trackassembly.workmode.1=一般生成/固定
|
Cleaned_asmtracks=清理了所有轨道组件
|
||||||
tool.trackassembly.workmode.2=活动点交点
|
Cleanup_asmtracks=组装好的轨道组件
|
||||||
tool.trackassembly.workmode.3=曲线线段拟合
|
SBoxLimit_asmtracks=You've hit the spawned tracks limit!
|
||||||
tool.trackassembly.workmode.4=表面法线翻转
|
sbox_maxasmtracks=更改此项以调整服务器上通过轨道工具生成的东西
|
||||||
tool.trackassembly.workmode.5=切线过渡弯
|
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.1=在地图上生成部件或将部件对齐
|
||||||
tool.trackassembly.info.2=将轨道部分与为此设计的专用路段连接起来
|
tool.trackassembly.info.2=将轨道部分与为此设计的专用路段连接起来
|
||||||
tool.trackassembly.info.3=创建通过给定检查点的连续轨道布局
|
tool.trackassembly.info.3=创建通过给定检查点的连续轨道布局
|
||||||
@ -14,16 +90,104 @@ tool.trackassembly.left.2=在交叉点生成轨道部件
|
|||||||
tool.trackassembly.left.3=生成分段轨迹插值曲线
|
tool.trackassembly.left.3=生成分段轨迹插值曲线
|
||||||
tool.trackassembly.left.4=在所选轨道浏览列表上生成
|
tool.trackassembly.left.4=在所选轨道浏览列表上生成
|
||||||
tool.trackassembly.left.5=生成分段轨迹插值曲线
|
tool.trackassembly.left.5=生成分段轨迹插值曲线
|
||||||
tool.trackassembly.right.1=复制轨道件模型或打开常用部件对话框
|
tool.trackassembly.logfile=启用后开始将日志流式传输到专用文件中
|
||||||
tool.trackassembly.right.2=复制轨道件模型或打开常用部件对话框
|
tool.trackassembly.logfile_con=启用日志文件
|
||||||
tool.trackassembly.right.3=为分段曲线创建节点。按住SHIFT进行更新。
|
tool.trackassembly.logsmax=更改此项以调整日志流写入的最大输出行数
|
||||||
tool.trackassembly.right.4=将实体注册到浏览列表中。按住SHIFT更改模型。
|
tool.trackassembly.logsmax_con=记录线路\:
|
||||||
tool.trackassembly.right.5=为分段曲线创建节点。按住SHIFT进行更新。
|
tool.trackassembly.mass=生成的组件有多重
|
||||||
tool.trackassembly.right_use.1=禁用滚动。复制轨道件模型或打开常用组件对话框。
|
tool.trackassembly.mass_con=组件质量\:
|
||||||
tool.trackassembly.right_use.2=禁用滚动。复制轨道件模型或打开常用组件对话框。
|
tool.trackassembly.maxactrad=更改此项可调整获取点ID的最大活动半径
|
||||||
tool.trackassembly.right_use.3=从最近的轨道组件活动点生成节点。
|
tool.trackassembly.maxactrad_con=半径限制\:
|
||||||
tool.trackassembly.right_use.4=禁用滚动。复制轨道件模型或打开常用组件对话框。
|
tool.trackassembly.maxforce=更改此设置以调整创建焊缝时的最大力限制
|
||||||
tool.trackassembly.right_use.5=从最近的轨道组件活动点生成节点。
|
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.name=轨道组件
|
||||||
|
tool.trackassembly.nextpic=额外的原点角节距偏移
|
||||||
|
tool.trackassembly.nextpic_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.nocollide=在组件/锚点之间创建无碰撞
|
||||||
|
tool.trackassembly.nocollide_con=无碰撞
|
||||||
|
tool.trackassembly.nocollidew=在组件和世界之间创建无碰撞
|
||||||
|
tool.trackassembly.nocollidew_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_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=在此写入模式并按 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.relica_var=复制convar控件。服务器值发送给所有客户端使用
|
||||||
tool.trackassembly.reload.1=移除轨道部件。按住SHIFT键选择锚点。
|
tool.trackassembly.reload.1=移除轨道部件。按住SHIFT键选择锚点。
|
||||||
tool.trackassembly.reload.2=移除一个轨道。按住SHIFT键选择关系射线。
|
tool.trackassembly.reload.2=移除一个轨道。按住SHIFT键选择关系射线。
|
||||||
tool.trackassembly.reload.3=删除曲线插值节点。按住SHIFT清除堆栈。
|
tool.trackassembly.reload.3=删除曲线插值节点。按住SHIFT清除堆栈。
|
||||||
@ -34,235 +198,60 @@ tool.trackassembly.reload_use.2=启用数据库导出以打开DSV管理器
|
|||||||
tool.trackassembly.reload_use.3=启用数据库导出以打开DSV管理器
|
tool.trackassembly.reload_use.3=启用数据库导出以打开DSV管理器
|
||||||
tool.trackassembly.reload_use.4=启用数据库导出以打开DSV管理器
|
tool.trackassembly.reload_use.4=启用数据库导出以打开DSV管理器
|
||||||
tool.trackassembly.reload_use.5=启用数据库导出以打开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.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=单击以重置附加值
|
||||||
tool.trackassembly.resetvars_con=V 重置变量 V
|
tool.trackassembly.resetvars_con=V 重置变量 V
|
||||||
tool.trackassembly.nextpic=额外的原点角节距偏移
|
tool.trackassembly.right.1=复制轨道件模型或打开常用部件对话框
|
||||||
tool.trackassembly.nextpic_con=原点间距\:
|
tool.trackassembly.right.2=复制轨道件模型或打开常用部件对话框
|
||||||
tool.trackassembly.nextyaw=附加原点偏航角偏移
|
tool.trackassembly.right.3=为分段曲线创建节点。按住SHIFT进行更新。
|
||||||
tool.trackassembly.nextyaw_con=原点偏航\:
|
tool.trackassembly.right.4=将实体注册到浏览列表中。按住SHIFT更改模型。
|
||||||
tool.trackassembly.nextrol=附加原点角滚动偏移
|
tool.trackassembly.right.5=为分段曲线创建节点。按住SHIFT进行更新。
|
||||||
tool.trackassembly.nextrol_con=原点滚动\:
|
tool.trackassembly.right_use.1=禁用滚动。复制轨道件模型或打开常用组件对话框。
|
||||||
tool.trackassembly.nextx=附加原点线性 X 支距
|
tool.trackassembly.right_use.2=禁用滚动。复制轨道件模型或打开常用组件对话框。
|
||||||
tool.trackassembly.nextx_con=支距 X\:
|
tool.trackassembly.right_use.3=从最近的轨道组件活动点生成节点。
|
||||||
tool.trackassembly.nexty=附加原点线性 Y 支距
|
tool.trackassembly.right_use.4=禁用滚动。复制轨道件模型或打开常用组件对话框。
|
||||||
tool.trackassembly.nexty_con=支距 Y\:
|
tool.trackassembly.right_use.5=从最近的轨道组件活动点生成节点。
|
||||||
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.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_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_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=写入模式
|
|
||||||
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.rtradmenu=更改此设置可调整径向菜单基角并重新定位其选项
|
tool.trackassembly.rtradmenu=更改此设置可调整径向菜单基角并重新定位其选项
|
||||||
tool.trackassembly.rtradmenu_con=径向旋转\:
|
tool.trackassembly.rtradmenu_con=径向旋转\:
|
||||||
tool.trackassembly.enpntmscr=启用后,通过鼠标滚动打开切换活动点
|
tool.trackassembly.sgradmenu=更改此设置以使径向菜单更加圆形。越高越平滑
|
||||||
tool.trackassembly.enpntmscr_con=启用点滚动
|
tool.trackassembly.sgradmenu_con=径向段\:
|
||||||
tool.trackassembly.exportdb=启用后,会将数据库导出为一个大文件
|
tool.trackassembly.sizeucs=为显示的坐标系设置的比例
|
||||||
tool.trackassembly.exportdb_con=启用数据库导出
|
tool.trackassembly.sizeucs_con=缩放 UCS\:
|
||||||
tool.trackassembly.modedb=将其更改为定义轨道数据库的存储行为
|
tool.trackassembly.spawncn=在中心点生成组件,否则相对于所选的活动点生成组件
|
||||||
tool.trackassembly.modedb_con=数据库模式\:
|
tool.trackassembly.spawncn_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.spawnrate=更改此设置以调整每个服务器刻度生成的轨道段的数量
|
tool.trackassembly.spawnrate=更改此设置以调整每个服务器刻度生成的轨道段的数量
|
||||||
tool.trackassembly.spawnrate_con=生成率\:
|
tool.trackassembly.spawnrate_con=生成率\:
|
||||||
tool.trackassembly.bnderrmod=更改此设置以定义客户端在地图边界之外生成组件时的行为
|
tool.trackassembly.spnflat=下一组件将水平生成/固定/堆叠
|
||||||
tool.trackassembly.bnderrmod_off=允许无限制地堆叠/生成
|
tool.trackassembly.spnflat_con=水平生成
|
||||||
tool.trackassembly.bnderrmod_log=拒绝堆栈/生成错误被记录
|
tool.trackassembly.stackcnt=堆叠时创建的最大组件数量
|
||||||
tool.trackassembly.bnderrmod_hint=显示拒绝堆栈/生成提示消息
|
tool.trackassembly.stackcnt_con=组件数量\:
|
||||||
tool.trackassembly.bnderrmod_generic=显示拒绝堆栈/生成通用消息
|
tool.trackassembly.subfolder=通过展开文件夹选择要使用的轨道类别
|
||||||
tool.trackassembly.bnderrmod_error=显示拒绝堆栈/生成错误消息
|
tool.trackassembly.subfolder_con=轨道类别\:
|
||||||
tool.trackassembly.bnderrmod_con=边界模式\:
|
tool.trackassembly.surfsnap=将组件固定在玩家指向的表面上
|
||||||
tool.trackassembly.modedb=更改此项以定义轨道数据库的存储行为
|
tool.trackassembly.surfsnap_con=固定到轨迹表面
|
||||||
tool.trackassembly.modedb_lua=利用直接缓存存储
|
|
||||||
tool.trackassembly.modedb_sql=仅缓存请求的记录
|
|
||||||
tool.trackassembly.modedb_con=数据库模式\:
|
|
||||||
tool.trackassembly.maxfruse=更改此设置以调整有多少常用组件的深度
|
|
||||||
tool.trackassembly.maxfruse_con=常用组件\:
|
|
||||||
tool.trackassembly.timermode_ap=单击此按钮可将更改应用到 SQL 内存管理器配置
|
tool.trackassembly.timermode_ap=单击此按钮可将更改应用到 SQL 内存管理器配置
|
||||||
tool.trackassembly.timermode_ap_con=应用内存设置
|
tool.trackassembly.timermode_ap_con=应用内存设置
|
||||||
tool.trackassembly.timermode_md=更改此项可调整 SQL 内存管理器的计时器算法
|
tool.trackassembly.timermode_cqt=通过记录请求缓存查询计时器
|
||||||
tool.trackassembly.timermode_lf=更改此项可调整记录在缓存中的停留时间
|
|
||||||
tool.trackassembly.timermode_lf_con=Record life\:
|
|
||||||
tool.trackassembly.timermode_rd=启用后,通过强制 nil 值从缓存中擦除记录
|
|
||||||
tool.trackassembly.timermode_rd_con=启用记录删除
|
|
||||||
tool.trackassembly.timermode_ct=启用后,删除记录时强制运行垃圾回收
|
tool.trackassembly.timermode_ct=启用后,删除记录时强制运行垃圾回收
|
||||||
tool.trackassembly.timermode_ct_con=启用垃圾收集
|
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_mem=SQL表的内存管理器\:
|
||||||
tool.trackassembly.timermode_cqt=通过记录请求缓存查询计时器
|
|
||||||
tool.trackassembly.timermode_obj=附加到缓存记录的对象计时器
|
tool.trackassembly.timermode_obj=附加到缓存记录的对象计时器
|
||||||
tool.trackassembly.factory_reset=单击此按钮应用控制台变量出厂设置
|
tool.trackassembly.timermode_rd=启用后,通过强制 nil 值从缓存中擦除记录
|
||||||
tool.trackassembly.factory_reset_con=应用出厂设置
|
tool.trackassembly.timermode_rd_con=启用记录删除
|
||||||
tool.trackassembly.logfile=启用后开始将日志流式传输到专用文件中
|
tool.trackassembly.type=通过展开文件夹选择要使用的轨道类型
|
||||||
tool.trackassembly.logfile_con=启用日志文件
|
tool.trackassembly.type_con=轨道类型\:
|
||||||
tool.trackassembly.logsmax=更改此项以调整日志流写入的最大输出行数
|
tool.trackassembly.upspanchor=启用在每次生成时更新锚点(非固定状态)
|
||||||
tool.trackassembly.logsmax_con=记录线路\:
|
tool.trackassembly.upspanchor_con=更新生成时的锚点
|
||||||
tool.trackassembly.client_var=客户端玩家偏好。在工具客户端配置中创建的Convar
|
|
||||||
tool.trackassembly.nonrep_var=非复制convar控件。它们在服务器和客户端上有不同的值
|
|
||||||
tool.trackassembly.relica_var=复制convar控件。服务器值发送给所有客户端使用
|
|
||||||
tool.trackassembly.utilities_user=用户设置
|
|
||||||
tool.trackassembly.utilities_admin=管理员设置
|
tool.trackassembly.utilities_admin=管理员设置
|
||||||
tool.trackassembly.buttonas<>=Decrement/Increment
|
tool.trackassembly.utilities_user=用户设置
|
||||||
tool.trackassembly.buttonas+/-=Negate value
|
tool.trackassembly.weld=在组件或组件/锚点之间创建焊接
|
||||||
tool.trackassembly.buttonas@M=Memorize value
|
tool.trackassembly.weld_con=焊接
|
||||||
tool.trackassembly.buttonas@D=Default value
|
tool.trackassembly.workmode.1=一般生成/固定
|
||||||
tool.trackassembly.buttonas@45=Update 45
|
tool.trackassembly.workmode.2=活动点交点
|
||||||
tool.trackassembly.buttonas@90=Update 90
|
tool.trackassembly.workmode.3=曲线线段拟合
|
||||||
tool.trackassembly.buttonas@135=Update 135
|
tool.trackassembly.workmode.4=表面法线翻转
|
||||||
tool.trackassembly.buttonas@180=Update 180
|
tool.trackassembly.workmode.5=切线过渡弯
|
||||||
sbox_maxasmtracks=更改此项以调整服务器上通过轨道工具生成的东西
|
tool.trackassembly.workmode=更改此选项以选择不同的工作模式
|
||||||
sbox_maxasmtracks_con=总段数\:
|
tool.trackassembly.workmode_con=工作模式\:
|
||||||
Cleanup_asmtracks=组装好的轨道组件
|
|
||||||
Cleaned_asmtracks=清理了所有轨道组件
|
|
||||||
SBoxLimit_asmtracks=You've hit the spawned tracks limit!
|
|
||||||
|
Loading…
Reference in New Issue
Block a user