From 8aad5a012f874ae67ee20ee4384bc17fd084485f Mon Sep 17 00:00:00 2001 From: Deyan Dobromirov Date: Thu, 15 Feb 2024 11:16:24 +0200 Subject: [PATCH 1/7] Update: Ghost count upper limit to 2500 Update: Ghost array count calculation --- lua/autorun/trackassembly_init.lua | 4 ++-- lua/weapons/gmod_tool/stools/trackassembly.lua | 15 ++++++--------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index c1e2eea8..e3498f22 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -85,7 +85,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.739") +asmlib.SetOpVar("TOOL_VERSION","8.740") asmlib.SetIndexes("V" ,1,2,3) asmlib.SetIndexes("A" ,1,2,3) asmlib.SetIndexes("WV",1,2,3) @@ -130,7 +130,7 @@ asmlib.SetBorder(gsToolPrefL.."enctxmenu", 0, 1) asmlib.SetBorder(gsToolPrefL.."endsvlock", 0, 1) asmlib.SetBorder(gsToolPrefL.."enwiremod", 0, 1) asmlib.SetBorder(gsToolPrefL.."enmultask", 0, 1) -asmlib.SetBorder(gsToolPrefL.."ghostcnt" , 0, 200) +asmlib.SetBorder(gsToolPrefL.."ghostcnt" , 0, 2500) asmlib.SetBorder(gsToolPrefL.."angsnap" , 0, gnMaxRot) asmlib.SetBorder(gsToolPrefL.."incsnpang", 0, gnMaxRot) asmlib.SetBorder(gsToolPrefL.."incsnplin", 0, 250) diff --git a/lua/weapons/gmod_tool/stools/trackassembly.lua b/lua/weapons/gmod_tool/stools/trackassembly.lua index da226d95..b006de11 100644 --- a/lua/weapons/gmod_tool/stools/trackassembly.lua +++ b/lua/weapons/gmod_tool/stools/trackassembly.lua @@ -556,15 +556,12 @@ function TOOL:GetGhostsDepth() local stackcnt = self:GetStackCount() if(workmode == 1) then -- Defined by the stack count otherwise 1 return mathMin(ghostcnt, mathMax(stackcnt, 1)) - elseif(workmode == 2) then -- Put second value 1 here - return mathMin(ghostcnt, 1) -- to be able to disable it - elseif(workmode == 3 or workmode == 5) then -- Track interpolation curving - local nC = mathMin(mathMax(stackcnt, 1), ghostcnt) - return (stackcnt > 0 and nC or ghostcnt) - elseif(workmode == 4) then -- Put second value 1 here - local tArr = self:GetFlipOver() -- to be used in no array - local nLen = (tArr and #tArr or 1) -- flip-over mode snapping - return mathMin(ghostcnt, nLen) -- Use ghosts count to disable it + elseif(workmode == 2) then -- Intersection. Force lower bound here + return mathMin(ghostcnt, 1) -- Force lower bound one otherwise ghosts + elseif(workmode == 3 or workmode == 5) then -- Track curving interpolation + return (stackcnt > 0 and mathMin(stackcnt, ghostcnt) or ghostcnt) + elseif(workmode == 4) then local tArr = self:GetFlipOver() -- Read flip array + return mathMin(ghostcnt, (tArr and #tArr or 1)) -- Disable via ghosts count end; return 0 end From c9c088f8fc567eaea4929afcbaeaba3432954705 Mon Sep 17 00:00:00 2001 From: Deyan Dobromirov Date: Thu, 15 Feb 2024 14:48:01 +0200 Subject: [PATCH 2/7] Removed: Ghosting count upper limit --- lua/autorun/trackassembly_init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index e3498f22..3eba93d3 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -85,7 +85,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.740") +asmlib.SetOpVar("TOOL_VERSION","8.741") asmlib.SetIndexes("V" ,1,2,3) asmlib.SetIndexes("A" ,1,2,3) asmlib.SetIndexes("WV",1,2,3) @@ -130,7 +130,7 @@ asmlib.SetBorder(gsToolPrefL.."enctxmenu", 0, 1) asmlib.SetBorder(gsToolPrefL.."endsvlock", 0, 1) asmlib.SetBorder(gsToolPrefL.."enwiremod", 0, 1) asmlib.SetBorder(gsToolPrefL.."enmultask", 0, 1) -asmlib.SetBorder(gsToolPrefL.."ghostcnt" , 0, 2500) +asmlib.SetBorder(gsToolPrefL.."ghostcnt" , 0) asmlib.SetBorder(gsToolPrefL.."angsnap" , 0, gnMaxRot) asmlib.SetBorder(gsToolPrefL.."incsnpang", 0, gnMaxRot) asmlib.SetBorder(gsToolPrefL.."incsnplin", 0, 250) From 0a6edc5e9aadd96776343daa725798ee232b8d1e Mon Sep 17 00:00:00 2001 From: Deyan Dobromirov Date: Thu, 15 Feb 2024 14:59:20 +0200 Subject: [PATCH 3/7] Renamed: Callback internals --- lua/autorun/trackassembly_init.lua | 32 +++++++++---------- .../gmod_tool/stools/trackassembly.lua | 8 ++--- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index 3eba93d3..21660c0a 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -85,7 +85,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.741") +asmlib.SetOpVar("TOOL_VERSION","8.742") asmlib.SetIndexes("V" ,1,2,3) asmlib.SetIndexes("A" ,1,2,3) asmlib.SetIndexes("WV",1,2,3) @@ -237,37 +237,37 @@ local conWorkMode = asmlib.GetContainer("WORK_MODE") ------------ CALLBACKS ------------ local conCallBack = asmlib.GetContainer("CALLBAC_FUNC") - conCallBack:Push({"maxtrmarg", function(sVar, vOld, vNew) - local nM = (tonumber(vNew) or 0); nM = ((nM > 0) and nM or 0) + conCallBack:Push({"maxtrmarg", function(sV, vO, vN) + local nM = (tonumber(vN) or 0); nM = ((nM > 0) and nM or 0) asmlib.SetOpVar("TRACE_MARGIN", nM) end}) - conCallBack:Push({"maxspmarg", function(sVar, vOld, vNew) - local nM = (tonumber(vNew) or 0) + conCallBack:Push({"maxspmarg", function(sV, vO, vN) + local nM = (tonumber(vN) or 0) asmlib.SetOpVar("SPAWN_MARGIN", nM) end}) - conCallBack:Push({"logsmax", function(sVar, vOld, vNew) - local nM = asmlib.BorderValue((tonumber(vNew) or 0), "non-neg") + conCallBack:Push({"logsmax", function(sV, vO, vN) + local nM = asmlib.BorderValue((tonumber(vN) or 0), "non-neg") asmlib.SetOpVar("LOG_MAXLOGS", nM) end}) - conCallBack:Push({"logfile", function(sVar, vOld, vNew) - asmlib.IsFlag("en_logging_file", tobool(vNew)) + conCallBack:Push({"logfile", function(sV, vO, vN) + asmlib.IsFlag("en_logging_file", tobool(vN)) end}) - conCallBack:Push({"endsvlock", function(sVar, vOld, vNew) - asmlib.IsFlag("en_dsv_datalock", tobool(vNew)) + conCallBack:Push({"endsvlock", function(sV, vO, vN) + asmlib.IsFlag("en_dsv_datalock", tobool(vN)) end}) - conCallBack:Push({"timermode", function(sVar, vOld, vNew) - local arTim = gsSymDir:Explode(vNew) + conCallBack:Push({"timermode", function(sV, vO, vN) + local arTim = gsSymDir:Explode(vN) local mkTab, ID = asmlib.GetBuilderID(1), 1 while(mkTab) do local sTim = arTim[ID] local defTab = mkTab:GetDefinition(); mkTab:TimerSetup(sTim) asmlib.LogInstance("Timer apply "..asmlib.GetReport2(defTab.Nick,sTim),gtInitLogs) ID = ID + 1; mkTab = asmlib.GetBuilderID(ID) -- Next table on the list - end; asmlib.LogInstance("Timer update "..asmlib.GetReport(vNew),gtInitLogs) + end; asmlib.LogInstance("Timer update "..asmlib.GetReport(vN),gtInitLogs) end}) - conCallBack:Push({"dtmessage", function(sVar, vOld, vNew) + conCallBack:Push({"dtmessage", function(sV, vO, vN) if(SERVER) then local sK = gsToolPrefL.."dtmessage" - local nD = (tonumber(vNew) or 0) + local nD = (tonumber(vN) or 0) nD = asmlib.BorderValue(nD, sK) asmlib.SetOpVar("MSDELTA_SEND", nD) end diff --git a/lua/weapons/gmod_tool/stools/trackassembly.lua b/lua/weapons/gmod_tool/stools/trackassembly.lua index b006de11..6938e4de 100644 --- a/lua/weapons/gmod_tool/stools/trackassembly.lua +++ b/lua/weapons/gmod_tool/stools/trackassembly.lua @@ -2437,8 +2437,8 @@ function TOOL.BuildCPanel(CPanel) end cvarsRemoveChangeCallback(sName, sName..sCall) - cvarsAddChangeCallback(sName, function(sVar, vOld, vNew) - pComboPhysName:SetValue(vNew) end, sName..sCall); + cvarsAddChangeCallback(sName, function(sV, vO, vN) + pComboPhysName:SetValue(vN) end, sName..sCall); asmlib.LogTable(cqProperty, "Property", sLog) -- http://wiki.garrysmod.com/page/Category:DTextEntry @@ -2451,8 +2451,8 @@ function TOOL.BuildCPanel(CPanel) local sName = asmlib.GetAsmConvar("bgskids", "NAM") cvarsRemoveChangeCallback(sName, sName..sCall) - cvarsAddChangeCallback(sName, function(sVar, vOld, vNew) - pText:SetText(vNew); pText:SetValue(vNew) end, sName..sCall); + cvarsAddChangeCallback(sName, function(sV, vO, vN) + pText:SetText(vN); pText:SetValue(vN) end, sName..sCall); asmlib.SetNumSlider(CPanel, "mass" , iMaxDec, 0, asmlib.GetAsmConvar("maxmass" , "FLT")) asmlib.SetNumSlider(CPanel, "activrad", iMaxDec, 0, asmlib.GetAsmConvar("maxactrad", "FLT")) asmlib.SetNumSlider(CPanel, "stackcnt", 0 , 0, asmlib.GetAsmConvar("maxstcnt" , "INT")) From d87ed3fd1ea44077fdc037f24ae7e420b3f46db8 Mon Sep 17 00:00:00 2001 From: dvdvideo1234 Date: Sun, 10 Mar 2024 21:08:23 +0200 Subject: [PATCH 4/7] Added: Max ghosts count --- lua/autorun/trackassembly_init.lua | 3 ++- lua/weapons/gmod_tool/stools/trackassembly.lua | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index 21660c0a..754b7370 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -85,7 +85,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.742") +asmlib.SetOpVar("TOOL_VERSION","8.743") asmlib.SetIndexes("V" ,1,2,3) asmlib.SetIndexes("A" ,1,2,3) asmlib.SetIndexes("WV",1,2,3) @@ -144,6 +144,7 @@ asmlib.SetBorder(gsToolPrefL.."maxmass" , 1) asmlib.SetBorder(gsToolPrefL.."maxmenupr", 0, 10) asmlib.SetBorder(gsToolPrefL.."maxstatts", 1, 10) asmlib.SetBorder(gsToolPrefL.."maxstcnt" , 1) +asmlib.SetBorder(gsToolPrefL.."maxghcnt" , 1) asmlib.SetBorder(gsToolPrefL.."maxtrmarg", 0, 1) asmlib.SetBorder(gsToolPrefL.."maxspmarg", -100, 100) asmlib.SetBorder(gsToolPrefL.."sizeucs" , 0, 50) diff --git a/lua/weapons/gmod_tool/stools/trackassembly.lua b/lua/weapons/gmod_tool/stools/trackassembly.lua index 6938e4de..9ec69409 100644 --- a/lua/weapons/gmod_tool/stools/trackassembly.lua +++ b/lua/weapons/gmod_tool/stools/trackassembly.lua @@ -132,6 +132,7 @@ TOOL.ClientConVar = { [ "ghostblnd" ] = 0.8, [ "stackcnt" ] = 5, [ "maxstatts" ] = 3, + [ "maxghcnt" ] = 1000, [ "nocollide" ] = 1, [ "nocollidew" ] = 0, [ "physmater" ] = "metal", @@ -320,7 +321,7 @@ function TOOL:GetGravity() end function TOOL:GetGhostsCount() - return mathClamp(self:GetClientNumber("ghostcnt", 0), 0, asmlib.GetAsmConvar("maxstcnt", "INT")) + return mathClamp(self:GetClientNumber("ghostcnt", 0), 0, asmlib.GetAsmConvar("maxghcnt", "INT")) end function TOOL:GetUpSpawnAnchor() @@ -2538,6 +2539,7 @@ if(CLIENT) then asmlib.SetNumSlider(CPanel, "maxforce" , iMaxDec) asmlib.SetNumSlider(CPanel, "maxactrad", iMaxDec) asmlib.SetNumSlider(CPanel, "maxstcnt" , 0) + asmlib.SetNumSlider(CPanel, "maxghcnt" , 0) asmlib.SetNumSlider(CPanel, "maxstatts", 0) asmlib.SetNumSlider(CPanel, "maxfruse" , 0) asmlib.SetNumSlider(CPanel, "dtmessage", iMaxDec) From 0af4ef09be28badada9be79d81e55c9eb4643a5d Mon Sep 17 00:00:00 2001 From: dvdvideo1234 Date: Mon, 18 Mar 2024 22:51:47 +0200 Subject: [PATCH 5/7] Fixed: Transform POA attachment extraction crashing the game Fixed: Ghosts not being removed when count is changed Added: Current ghosts count control to tool panel Added: Maximum ghosts count control to admin panel Utilize: Library function `SafeRemoveEntityDelayed` Changed: Bump the remove time frame to 1s --- lua/autorun/trackassembly_init.lua | 3 +- lua/trackassembly/trackasmlib.lua | 31 ++++++++----------- .../gmod_tool/stools/trackassembly.lua | 3 +- .../localization/bg/trackassembly.properties | 2 ++ .../localization/en/trackassembly.properties | 2 ++ 5 files changed, 20 insertions(+), 21 deletions(-) diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index 754b7370..d3d0d335 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -85,7 +85,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.743") +asmlib.SetOpVar("TOOL_VERSION","8.744") asmlib.SetIndexes("V" ,1,2,3) asmlib.SetIndexes("A" ,1,2,3) asmlib.SetIndexes("WV",1,2,3) @@ -177,6 +177,7 @@ asmlib.MakeAsmConvar("maxlinear", 5000 , nil, gnServerControled, "Maximum linea asmlib.MakeAsmConvar("maxforce" , 100000, nil, gnServerControled, "Maximum force limit when creating welds") asmlib.MakeAsmConvar("maxactrad", 200 , nil, gnServerControled, "Maximum active radius to search for a point ID") asmlib.MakeAsmConvar("maxstcnt" , 200 , nil, gnServerControled, "Maximum spawned pieces in stacking mode") +asmlib.MakeAsmConvar("maxghcnt" , 1500 , nil, gnServerControled, "Maximum ghost pieces being spawned by client") asmlib.MakeAsmConvar("enwiremod", 1 , nil, gnServerControled, "Toggle the wire extension on/off server side") asmlib.MakeAsmConvar("enmultask", 1 , nil, gnServerControled, "Toggle the spawn multitasking on/off server side") asmlib.MakeAsmConvar("enctxmenu", 1 , nil, gnServerControled, "Toggle the context menu on/off in general") diff --git a/lua/trackassembly/trackasmlib.lua b/lua/trackassembly/trackasmlib.lua index 60d20c54..005711bd 100644 --- a/lua/trackassembly/trackasmlib.lua +++ b/lua/trackassembly/trackasmlib.lua @@ -74,6 +74,7 @@ local getmetatable = getmetatable local setmetatable = setmetatable local collectgarbage = collectgarbage local LocalToWorld = LocalToWorld +local SafeRemoveEntityDelayed = SafeRemoveEntityDelayed local osClock = os and os.clock local osDate = os and os.date local bitBand = bit and bit.band @@ -715,6 +716,7 @@ function InitBase(sName, sPurp) SetOpVar("TIME_STAMP",Time()) SetOpVar("TIME_INIT",Time()) SetOpVar("DELAY_ACTION",0.01) + SetOpVar("DELAY_REMOVE",0.5) SetOpVar("MAX_ROTATION",360) SetOpVar("ANG_ZERO",Angle()) SetOpVar("VEC_ZERO",Vector()) @@ -2186,11 +2188,13 @@ function DecodePOA(sStr) end; return arPOA -- Return the converted string to POA end -function GetTransformOA(sModel,sKey) +function GetTransformOA(sModel, sKey) if(not IsString(sModel)) then - LogInstance("Model mismatch "..GetReport(sKey)); return nil end + LogInstance("Model mismatch "..GetReport2(sModel, sKey)); return nil end + if(not fileExists(sModel, "GAME")) then + LogInstance("Model missing "..GetReport2(sModel, sKey)); return nil end if(not IsString(sKey)) then - LogInstance("Key mismatch "..GetReport(sKey)..sModel); return nil end + LogInstance("Key mismatch "..GetReport2(sModel, sKey)); return nil end local ePiece = GetOpVar("ENTITY_TRANSFORMPOA") if(ePiece and ePiece:IsValid()) then -- There is basis entity then update and extract if(ePiece:GetModel() ~= sModel) then ePiece:SetModel(sModel) @@ -5000,17 +5004,9 @@ function ClearGhosts(vSiz, bCol) local tGho = GetOpVar("ARRAY_GHOST") if(not IsHere(tGho)) then return true end local iSiz = mathCeil(tonumber(vSiz) or tGho.Size) - local nDer = GetOpVar("DELAY_ACTION") + local nDer = GetOpVar("DELAY_REMOVE") for iD = 1, iSiz do local eGho = tGho[iD] - if(eGho and eGho:IsValid()) then - timerSimple(nDer, function() - if(eGho and eGho:IsValid()) then - eGho:SetNoDraw(true) - eGho:Remove() - tGho[iD] = nil - end - end) - end + SafeRemoveEntityDelayed(eGho, nDer) end; tGho.Size, tGho.Slot = 0, GetOpVar("MISS_NOMD") if(bCol) then collectgarbage() end; return true end @@ -5081,11 +5077,10 @@ function MakeGhosts(nCnt, sModel) -- Only he's not a shadow, he's a green ghost! LogInstance("Invalid ["..iD.."]"..sModel); return false end end; iD = iD + 1 -- Fade all the ghosts and refresh these that must be drawn end -- Remove all others that must not be drawn to save memory - for iK = iD, tGho.Size do -- Executes only when (nCnt <= tGho.Size) - local eGho = tGho[iD] -- Read the current ghosted entity - if(eGho and eGho:IsValid()) then -- When valid remove it - eGho:SetNoDraw(true); eGho:Remove() -- Stop drawing and remove - end; eGho = nil; tGho[iD] = nil -- Make sure the item is NIL + local nDer = GetOpVar("DELAY_REMOVE") + for iR = iD, tGho.Size do -- Executes only when (nCnt <= tGho.Size) + local eGho = tGho[iR] -- Read the current ghosted entity + SafeRemoveEntityDelayed(eGho, nDer) -- Make sure the item is NIL end; tGho.Size, tGho.Slot = nCnt, sModel; return true end diff --git a/lua/weapons/gmod_tool/stools/trackassembly.lua b/lua/weapons/gmod_tool/stools/trackassembly.lua index 9ec69409..e1ea8050 100644 --- a/lua/weapons/gmod_tool/stools/trackassembly.lua +++ b/lua/weapons/gmod_tool/stools/trackassembly.lua @@ -132,7 +132,6 @@ TOOL.ClientConVar = { [ "ghostblnd" ] = 0.8, [ "stackcnt" ] = 5, [ "maxstatts" ] = 3, - [ "maxghcnt" ] = 1000, [ "nocollide" ] = 1, [ "nocollidew" ] = 0, [ "physmater" ] = "metal", @@ -2457,6 +2456,7 @@ function TOOL.BuildCPanel(CPanel) asmlib.SetNumSlider(CPanel, "mass" , iMaxDec, 0, asmlib.GetAsmConvar("maxmass" , "FLT")) asmlib.SetNumSlider(CPanel, "activrad", iMaxDec, 0, asmlib.GetAsmConvar("maxactrad", "FLT")) asmlib.SetNumSlider(CPanel, "stackcnt", 0 , 0, asmlib.GetAsmConvar("maxstcnt" , "INT")) + asmlib.SetNumSlider(CPanel, "ghostcnt", 0 , 0, asmlib.GetAsmConvar("maxghcnt" , "INT")) asmlib.SetNumSlider(CPanel, "angsnap" , iMaxDec) asmlib.SetButton(CPanel, "resetvars") local tBAng = { -- Button interactive slider ( angle offsets ) @@ -2504,7 +2504,6 @@ if(CLIENT) then asmlib.SetNumSlider(CPanel, "sizeucs" , iMaxDec) asmlib.SetNumSlider(CPanel, "incsnplin", 0) asmlib.SetNumSlider(CPanel, "incsnpang", 0) - asmlib.SetNumSlider(CPanel, "ghostcnt" , 0) asmlib.SetNumSlider(CPanel, "ghostblnd", iMaxDec) asmlib.SetNumSlider(CPanel, "crvturnlm", iMaxDec) asmlib.SetNumSlider(CPanel, "crvleanlm", iMaxDec) diff --git a/resource/localization/bg/trackassembly.properties b/resource/localization/bg/trackassembly.properties index 7a349049..47399aed 100644 --- a/resource/localization/bg/trackassembly.properties +++ b/resource/localization/bg/trackassembly.properties @@ -197,6 +197,8 @@ 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=Когато е разрешено включва многозадачната система по време на натрупване diff --git a/resource/localization/en/trackassembly.properties b/resource/localization/en/trackassembly.properties index 7d46bd12..18d0d879 100644 --- a/resource/localization/en/trackassembly.properties +++ b/resource/localization/en/trackassembly.properties @@ -197,6 +197,8 @@ tool.trackassembly.maxactrad=Change this to adjust the maximum active radius for 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 From 015a49650f97780f740daa75115f38c94dfeabd2 Mon Sep 17 00:00:00 2001 From: dvdvideo1234 Date: Mon, 18 Mar 2024 23:27:38 +0200 Subject: [PATCH 6/7] Added: Duplication flag `DoNotDuplicate = true` to prevent area-duplication --- lua/autorun/trackassembly_init.lua | 2 +- lua/trackassembly/trackasmlib.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index d3d0d335..77cb8c25 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -85,7 +85,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.744") +asmlib.SetOpVar("TOOL_VERSION","8.745") asmlib.SetIndexes("V" ,1,2,3) asmlib.SetIndexes("A" ,1,2,3) asmlib.SetIndexes("WV",1,2,3) diff --git a/lua/trackassembly/trackasmlib.lua b/lua/trackassembly/trackasmlib.lua index 005711bd..e1a15dc9 100644 --- a/lua/trackassembly/trackasmlib.lua +++ b/lua/trackassembly/trackasmlib.lua @@ -2100,6 +2100,7 @@ local function MakeEntityNone(sModel, vPos, aAng) local eNone local vPos = Vector(vPos or GetOpVar("VEC_ZERO")) local aAng = Angle(aAng or GetOpVar("ANG_ZERO")) eNone:SetPos(vPos); eNone:SetAngles(aAng) + eNone.DoNotDuplicate = true -- Disable duping eNone:SetCollisionGroup(COLLISION_GROUP_NONE) eNone:SetSolid(SOLID_NONE); eNone:SetMoveType(MOVETYPE_NONE) eNone:SetNotSolid(true); eNone:SetNoDraw(true); eNone:SetModel(sModel) From 15df57c3cf7548849d05973e10eee1ba84b8ff5c Mon Sep 17 00:00:00 2001 From: dvdvideo1234 Date: Mon, 18 Mar 2024 23:33:14 +0200 Subject: [PATCH 7/7] Equalize version --- lua/autorun/trackassembly_init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/autorun/trackassembly_init.lua b/lua/autorun/trackassembly_init.lua index 77cb8c25..47714bb4 100644 --- a/lua/autorun/trackassembly_init.lua +++ b/lua/autorun/trackassembly_init.lua @@ -85,7 +85,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present ------------ CONFIGURE ASMLIB ------------ asmlib.InitBase("track","assembly") -asmlib.SetOpVar("TOOL_VERSION","8.745") +asmlib.SetOpVar("TOOL_VERSION","8.740") asmlib.SetIndexes("V" ,1,2,3) asmlib.SetIndexes("A" ,1,2,3) asmlib.SetIndexes("WV",1,2,3)