315 lines
12 KiB
Lua
315 lines
12 KiB
Lua
include("shared.lua")
|
|
|
|
ENT.RenderGroup = RENDERGROUP_OPAQUE
|
|
|
|
ENT.AutomaticFrameAdvance = true
|
|
|
|
function ENT:Draw()
|
|
self:DoNormalDraw()
|
|
self:DrawModel()
|
|
Wire_Render(self.Entity)
|
|
end
|
|
|
|
function ENT:DoNormalDraw()
|
|
local e = self.Entity
|
|
if (LocalPlayer():GetEyeTrace().Entity == e and EyePos():Distance(e:GetPos()) < 256) then
|
|
if(self:GetOverlayText() ~= "") then
|
|
AddWorldTip(e:EntIndex(),self:GetOverlayText(),0.5,e:GetPos(),e)
|
|
end
|
|
end
|
|
end
|
|
|
|
function ENT:GetOverlayText()
|
|
local name = self.Entity:GetNetworkedString("WireName")
|
|
local Type = self.Entity:GetNetworkedBeamString("Type")
|
|
local Power = self.Entity:GetNetworkedBeamInt("Power")
|
|
local Torque = self.Entity:GetNetworkedBeamInt("Torque")
|
|
local MinRPM = self.Entity:GetNetworkedBeamInt("MinRPM")
|
|
local MaxRPM = self.Entity:GetNetworkedBeamInt("MaxRPM")
|
|
local LimitRPM = self.Entity:GetNetworkedBeamInt("LimitRPM")
|
|
--##################################################################
|
|
local FlywheelMass = self.Entity:GetNetworkedBeamInt("FlywheelMass2")
|
|
local Idle = self.Entity:GetNetworkedBeamInt("Idle")
|
|
local Weight = self.Entity:GetNetworkedBeamInt("Weight")
|
|
local Rpm = self.Entity:GetNetworkedBeamInt("Rpm")
|
|
--##################################################################
|
|
local txt = Type.."\nMax Power : "..Power.."KW / "..math.Round(Power*1.34).."HP \nMax Torque : "..Torque.."N/m / "..math.Round(Torque*0.73).."ft-lb \nPowerband : "..MinRPM.." - "..MaxRPM.."RPM\nRedline : "..LimitRPM.."RPM\nFlywheelMass : "..FlywheelMass.."Grams\nIdle : "..Idle.."RPM\nWeight : "..Weight.."Kg\nRpm : "..Rpm.."RPM" or ""
|
|
if (not game.SinglePlayer()) then
|
|
local PlayerName = self:GetPlayerName()
|
|
txt = txt .. "\n(" .. PlayerName .. ")"
|
|
end
|
|
if(name and name ~= "") then
|
|
if (txt == "") then
|
|
return "- "..name.." -"
|
|
end
|
|
return "- "..name.." -\n"..txt
|
|
end
|
|
return txt
|
|
end
|
|
|
|
function ACFEngine5GUICreate( Table )
|
|
|
|
if not acfmenupanel.ModData then
|
|
acfmenupanel.ModData = {}
|
|
end
|
|
if not acfmenupanel.ModData[Table.id] then
|
|
acfmenupanel.ModData[Table.id] = {}
|
|
acfmenupanel.ModData[Table.id]["ModTable"] = Table.modtable
|
|
end
|
|
|
|
--acfmenupanel:CPanelText("Desc", Table.desc)
|
|
TextDesc = vgui.Create( "DLabel" )
|
|
TextDesc:SetText( "Desc : "..Table.desc)
|
|
TextDesc:SetTextColor(Color(0,0,200,255))
|
|
TextDesc:SetFont( "DefaultBold" )
|
|
acfmenupanel.CustomDisplay:AddItem( TextDesc )
|
|
|
|
for ID,Value in pairs(acfmenupanel.ModData[Table.id]["ModTable"]) do
|
|
if ID == 1 then
|
|
ACF_ModingSound(1, Value, Table.id)
|
|
end
|
|
end
|
|
|
|
acfmenupanel.CustomDisplay:PerformLayout()
|
|
|
|
end
|
|
|
|
--##################################################################
|
|
--##################################################################
|
|
|
|
function ACF_ModingSound( Mod, Mod1, Value, ID )
|
|
local wide = acfmenupanel.CustomDisplay:GetWide()
|
|
|
|
Open = vgui.Create("DButton")
|
|
Open:SetText("Open Engine Menu")
|
|
Open:SetTextColor(Color(0,0,200,255))
|
|
Open:SetWide(wide)
|
|
Open:SetTall(30)
|
|
Open:SetVisible(true)
|
|
Open.DoClick = function()
|
|
RunConsoleCommand("acf_sound_browser_open",acfmenupanel["CData"][Mod]:GetValue())
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem(Open)
|
|
|
|
SoundText = vgui.Create("DLabel")
|
|
SoundText:SetText("Sound :")
|
|
SoundText:SetFont( "DefaultBold" )
|
|
SoundText:SetTextColor(Color(0,0,255,255))
|
|
SoundText:SetWide(wide)
|
|
SoundText:SetTall(20)
|
|
acfmenupanel.CustomDisplay:AddItem(SoundText)
|
|
|
|
if Mod and not acfmenupanel["CData"][Mod] then
|
|
acfmenupanel["CData"][Mod] = vgui.Create("DTextEntry", acfmenupanel.CustomDisplay)
|
|
acfmenupanel["CData"][Mod]:SetText("")
|
|
acfmenupanel["CData"][Mod]:SetWide(wide)
|
|
acfmenupanel["CData"][Mod]:SetTall(20)
|
|
acfmenupanel["CData"][Mod]:SetMultiline(false)
|
|
acfmenupanel["CData"][Mod]:SetCursorColor(Color(0,0,255,255))
|
|
acfmenupanel["CData"][Mod]:SetHighlightColor(Color(0,255,0,200))
|
|
acfmenupanel["CData"][Mod]:SetTextColor(Color(0,0,150,255))
|
|
acfmenupanel["CData"][Mod]["Mod"] = Mod
|
|
acfmenupanel["CData"][Mod]["ID"] = ID
|
|
Value = GetConVarString("wire_soundemitter_sound")
|
|
RunConsoleCommand("wire_soundemitter_sound", Value )
|
|
acfmenupanel["CData"][Mod]:SetConVar( "wire_soundemitter_sound" )
|
|
RunConsoleCommand( "acfmenu_data1", Value )
|
|
acfmenupanel["CData"][Mod].ConVarChanged = function( sound, Value )
|
|
acfmenupanel["CData"][Mod]:SetConVar( "wire_soundemitter_sound" )
|
|
Value = GetConVarString("wire_soundemitter_sound")
|
|
RunConsoleCommand( "acfmenu_data1", Value )
|
|
end
|
|
acfmenupanel["CData"][Mod]:SetVisible(true)
|
|
acfmenupanel.CustomDisplay:AddItem(acfmenupanel["CData"][Mod])
|
|
end
|
|
|
|
ModelText = vgui.Create("DLabel")
|
|
ModelText:SetText("Model :")
|
|
ModelText:SetFont( "DefaultBold" )
|
|
ModelText:SetTextColor(Color(0,0,255,255))
|
|
ModelText:SetWide(wide)
|
|
ModelText:SetTall(20)
|
|
acfmenupanel.CustomDisplay:AddItem(ModelText)
|
|
|
|
if Mod1 and not acfmenupanel["CData"][Mod1] then
|
|
acfmenupanel["CData"][Mod1] = vgui.Create("DTextEntry", acfmenupanel.CustomDisplay)
|
|
acfmenupanel["CData"][Mod1]:SetText("")
|
|
acfmenupanel["CData"][Mod1]:SetWide(wide)
|
|
acfmenupanel["CData"][Mod1]:SetTall(20)
|
|
acfmenupanel["CData"][Mod1]:SetMultiline(false)
|
|
acfmenupanel["CData"][Mod1]:SetCursorColor(Color(0,0,255,255))
|
|
acfmenupanel["CData"][Mod1]:SetHighlightColor(Color(0,255,0,200))
|
|
acfmenupanel["CData"][Mod1]:SetTextColor(Color(0,0,150,255))
|
|
acfmenupanel["CData"][Mod1]["Mod1"] = Mod1
|
|
acfmenupanel["CData"][Mod1]["ID"] = ID
|
|
Value = GetConVarString("wire_soundemitter_model")
|
|
RunConsoleCommand("wire_soundemitter_model", Value )
|
|
acfmenupanel["CData"][Mod1]:SetConVar( "wire_soundemitter_model" )
|
|
RunConsoleCommand( "acfmenu_data2", Value )
|
|
acfmenupanel["CData"][Mod1].ConVarChanged = function( sound, Value )
|
|
acfmenupanel["CData"][Mod1]:SetConVar( "wire_soundemitter_model" )
|
|
Value = GetConVarString("wire_soundemitter_model")
|
|
RunConsoleCommand( "acfmenu_data2", Value )
|
|
end
|
|
acfmenupanel["CData"][Mod1]:SetVisible(true)
|
|
acfmenupanel.CustomDisplay:AddItem(acfmenupanel["CData"][Mod1])
|
|
end
|
|
|
|
|
|
TextName = vgui.Create( "DLabel" )
|
|
TextName:SetText( "Engine Name : "..GetConVarString("acfmenu_data10"))
|
|
TextName:SetFont( "DefaultBold" )
|
|
TextName:SetTextColor(Color(0,0,200,255))
|
|
acfmenupanel.CustomDisplay:AddItem( TextName )
|
|
|
|
TextTorque = vgui.Create( "DLabel" )
|
|
TextTorque:SetText( "Torque : "..GetConVarString("acfmenu_data3"))
|
|
TextTorque:SetFont( "DefaultBold" )
|
|
if(GetConVarNumber("acfmenu_data3") > 0) then
|
|
TextTorque:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data3") <= 0) then
|
|
TextTorque:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem( TextTorque )
|
|
|
|
TextIdle = vgui.Create( "DLabel" )
|
|
TextIdle:SetText( "Idle Rpm : "..GetConVarString("acfmenu_data4"))
|
|
TextIdle:SetFont( "DefaultBold" )
|
|
if(GetConVarNumber("acfmenu_data4") > 0) then
|
|
TextIdle:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data4") <= 0) then
|
|
TextIdle:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem( TextIdle )
|
|
|
|
TextPeakMin = vgui.Create( "DLabel" )
|
|
TextPeakMin:SetText( "Peak Min Rpm : "..GetConVarString("acfmenu_data5"))
|
|
TextPeakMin:SetFont( "DefaultBold" )
|
|
if(GetConVarNumber("acfmenu_data5") > 0) then
|
|
TextPeakMin:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data5") <= 0) then
|
|
TextPeakMin:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem( TextPeakMin )
|
|
|
|
TextPeakMax = vgui.Create( "DLabel" )
|
|
TextPeakMax:SetText( "Peak Max Rpm : "..GetConVarString("acfmenu_data6"))
|
|
TextPeakMax:SetFont( "DefaultBold" )
|
|
if(GetConVarNumber("acfmenu_data6") > 0) then
|
|
TextPeakMax:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data6") <= 0) then
|
|
TextPeakMax:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem( TextPeakMax )
|
|
|
|
TextLimit = vgui.Create( "DLabel" )
|
|
TextLimit:SetText( "Limit Rpm : "..GetConVarString("acfmenu_data7"))
|
|
TextLimit:SetFont( "DefaultBold" )
|
|
if(GetConVarNumber("acfmenu_data7") > 0) then
|
|
TextLimit:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data7") <= 0) then
|
|
TextLimit:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem( TextLimit )
|
|
|
|
TextFly = vgui.Create( "DLabel" )
|
|
TextFly:SetText( "Flywheel Mass : "..GetConVarString("acfmenu_data8"))
|
|
TextFly:SetFont( "DefaultBold" )
|
|
if(GetConVarNumber("acfmenu_data8") > 0) then
|
|
TextFly:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data8") <= 0) then
|
|
TextFly:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem( TextFly )
|
|
|
|
TextWeight = vgui.Create( "DLabel" )
|
|
TextWeight:SetText( "Weight : "..GetConVarString("acfmenu_data9"))
|
|
TextWeight:SetFont( "DefaultBold" )
|
|
if(GetConVarNumber("acfmenu_data9") > 0) then
|
|
TextWeight:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data9") <= 0) then
|
|
TextWeight:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem( TextWeight )
|
|
|
|
|
|
UpdateAll = vgui.Create("DButton")
|
|
UpdateAll:SetText("Update")
|
|
UpdateAll:SetTextColor(Color(0,200,0,255))
|
|
UpdateAll:SetWide(wide)
|
|
UpdateAll:SetTall(20)
|
|
UpdateAll:SetVisible(true)
|
|
UpdateAll.DoClick = function( )
|
|
--update Sound
|
|
acfmenupanel["CData"][Mod]:SetConVar( "wire_soundemitter_sound" )
|
|
Value = GetConVarString("wire_soundemitter_sound")
|
|
RunConsoleCommand( "acfmenu_data1", Value )
|
|
--update Engine
|
|
acfmenupanel["CData"][Mod1]:SetConVar( "wire_soundemitter_model" )
|
|
Value = GetConVarString("wire_soundemitter_model")
|
|
RunConsoleCommand( "acfmenu_data2", Value )
|
|
--update Value
|
|
TextName:SetText( "Engine Name : "..GetConVarString("acfmenu_data10"))
|
|
TextTorque:SetText( "Torque : "..GetConVarString("acfmenu_data3"))
|
|
if(GetConVarNumber("acfmenu_data3") > 0) then
|
|
TextTorque:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data3") <= 0) then
|
|
TextTorque:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
--####
|
|
TextIdle:SetText( "Idle Rpm : "..GetConVarString("acfmenu_data4"))
|
|
if(GetConVarNumber("acfmenu_data4") > 0) then
|
|
TextIdle:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data4") <= 0) then
|
|
TextIdle:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
--####
|
|
TextPeakMin:SetText( "Peak Min Rpm : "..GetConVarString("acfmenu_data5"))
|
|
if(GetConVarNumber("acfmenu_data5") > 0) then
|
|
TextPeakMin:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data5") <= 0) then
|
|
TextPeakMin:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
--####
|
|
TextPeakMax:SetText( "Peak Max Rpm : "..GetConVarString("acfmenu_data6"))
|
|
if(GetConVarNumber("acfmenu_data6") > 0) then
|
|
TextPeakMax:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data6") <= 0) then
|
|
TextPeakMax:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
--####
|
|
TextLimit:SetText( "Limit Rpm : "..GetConVarString("acfmenu_data7"))
|
|
if(GetConVarNumber("acfmenu_data7") > 0) then
|
|
TextLimit:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data7") <= 0) then
|
|
TextLimit:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
--####
|
|
TextFly:SetText( "Flywheel Mass : "..GetConVarString("acfmenu_data8"))
|
|
if(GetConVarNumber("acfmenu_data8") > 0) then
|
|
TextFly:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data8") <= 0) then
|
|
TextFly:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
--####
|
|
TextWeight:SetText( "Weight : "..GetConVarString("acfmenu_data9"))
|
|
if(GetConVarNumber("acfmenu_data9") > 0) then
|
|
TextWeight:SetTextColor(Color(0,0,200,255))
|
|
elseif(GetConVarNumber("acfmenu_data9") <= 0) then
|
|
TextWeight:SetTextColor(Color(200,0,0,255))
|
|
end
|
|
--####
|
|
end
|
|
acfmenupanel.CustomDisplay:AddItem(UpdateAll)
|
|
|
|
Help = vgui.Create("DButton")
|
|
Help:SetToolTip("1.Customizable engine in the Engine menu \n 2.Send info in the Acf menu \n 3.Press update Button \n 4.Spawn the Engine")
|
|
Help:SetTextColor(Color(200,0,0,255))
|
|
Help:SetWide(wide/2)
|
|
Help:SetTall(20)
|
|
Help:SetVisible(true)
|
|
Help:SetText("Help")
|
|
acfmenupanel.CustomDisplay:AddItem(Help)
|
|
|
|
end
|