Engine maker "Load Custom" menu -BETA-
This commit is contained in:
parent
d02f886dd0
commit
adaadfc5d9
|
@ -0,0 +1,169 @@
|
|||
// A sound browser for the sound emitter and the expression 2 editor.
|
||||
// Made by Grocel.
|
||||
|
||||
local max_char_count = 200 //File length limit
|
||||
|
||||
local SoundBrowserPanel = nil
|
||||
local TabFavourites2 = nil
|
||||
|
||||
--################################################################################
|
||||
|
||||
// Save the file path. It should be cross session.
|
||||
// It's used when opening the browser in the e2 editor.
|
||||
local function SaveFilePath(panel, file)
|
||||
if (!IsValid(panel)) then return end
|
||||
if (panel.Soundemitter) then return end
|
||||
|
||||
panel:SetCookie("wire_soundfile", file)
|
||||
end
|
||||
|
||||
// Open the Sound Browser.
|
||||
local function CreateSoundBrowser(path)
|
||||
local soundemitter = false
|
||||
if (isstring(path) and path ~= "") then
|
||||
soundemitter = true
|
||||
end
|
||||
|
||||
SoundBrowserPanel = vgui.Create("DFrame") // The main frame.
|
||||
SoundBrowserPanel:SetPos(130,60)
|
||||
SoundBrowserPanel:SetSize(480, 460)
|
||||
|
||||
SoundBrowserPanel:SetMinWidth(450)
|
||||
SoundBrowserPanel:SetMinHeight(450)
|
||||
|
||||
SoundBrowserPanel:SetSizable(true)
|
||||
SoundBrowserPanel:SetDeleteOnClose( false )
|
||||
SoundBrowserPanel:SetTitle("Engine Menu V3.3 - LOAD MENU")
|
||||
SoundBrowserPanel:SetVisible(false)
|
||||
SoundBrowserPanel:SetCookieName( "wire_sound_browser" )
|
||||
SoundBrowserPanel:GetParent():SetWorldClicker(true) // Allow the use of the toolgun while in menu.
|
||||
|
||||
TabFavourites2 = vgui.Create("acf_list2editor") // The favourites manager.
|
||||
|
||||
local BrowserTabs = SoundBrowserPanel:Add("DPropertySheet") // The tabs.
|
||||
BrowserTabs:DockMargin(5, 5, 5, 5)
|
||||
BrowserTabs:Dock(FILL)
|
||||
BrowserTabs:AddSheet("Settings", TabFavourites2, "icon16/disk.png", false, false, "Current Settings.")
|
||||
|
||||
file.CreateDir("engineslists/created")
|
||||
TabFavourites2:SetRootPath("engineslists/created")
|
||||
|
||||
TabFavourites2.DoClick = function(parent, item, data)
|
||||
local newString = ""
|
||||
if string.find(item, "0. Name : ") then
|
||||
newString = string.gsub(item,"0. Name : ","")
|
||||
RunConsoleCommand( "acfmenu_data10", newString )
|
||||
elseif string.find(item, "1. Model : ") then
|
||||
newString = string.gsub(item,"1. Model : ","")
|
||||
strModel = newString
|
||||
RunConsoleCommand("wire_soundemitter_model", strModel)
|
||||
elseif string.find(item, "2. Sound : ") then
|
||||
newString = string.gsub(item,"2. Sound : ","")
|
||||
strSound = newString
|
||||
RunConsoleCommand("wire_soundemitter_sound", strSound)
|
||||
elseif string.find(item, "3. Torque : ") then
|
||||
newString = string.gsub(item,"3. Torque : ","")
|
||||
RunConsoleCommand( "acfmenu_data3", newString )
|
||||
elseif string.find(item, "4. Idle : ") then
|
||||
newString = string.gsub(item,"4. Idle : ","")
|
||||
RunConsoleCommand( "acfmenu_data4", newString )
|
||||
elseif string.find(item, "5. Peak Min : ") then
|
||||
newString = string.gsub(item,"5. Peak Min : ","")
|
||||
RunConsoleCommand( "acfmenu_data5", newString )
|
||||
elseif string.find(item, "6. Peak Max : ") then
|
||||
newString = string.gsub(item,"6. Peak Max : ","")
|
||||
RunConsoleCommand( "acfmenu_data6", newString )
|
||||
elseif string.find(item, "7. Limit : ") then
|
||||
newString = string.gsub(item,"7. Limit : ","")
|
||||
RunConsoleCommand( "acfmenu_data7", newString )
|
||||
elseif string.find(item, "8. Flywheel : ") then
|
||||
newString = string.gsub(item,"8. Flywheel : ","")
|
||||
RunConsoleCommand( "acfmenu_data8", newString )
|
||||
elseif string.find(item, "9. Weight : ") then
|
||||
newString = string.gsub(item,"9. Weight : ","")
|
||||
RunConsoleCommand( "acfmenu_data9", newString )
|
||||
else return end
|
||||
end
|
||||
--########
|
||||
|
||||
--Button Panel
|
||||
local ButtonsSidePanel = SoundBrowserPanel:Add("DPanel") // The buttons.
|
||||
ButtonsSidePanel:DockMargin(5, 5, 5, 5)
|
||||
ButtonsSidePanel:Dock(BOTTOM)
|
||||
ButtonsSidePanel:SetTall(80)
|
||||
ButtonsSidePanel:SetWide(SoundBrowserPanel:GetWide())
|
||||
ButtonsSidePanel:SetDrawBackground(true)
|
||||
--button
|
||||
BackButton = ButtonsSidePanel:Add("DButton") // The play button.
|
||||
BackButton:SetText("Back")
|
||||
BackButton:SetTextColor(Color(0,0,155,255))
|
||||
BackButton:SetPos(40,20)
|
||||
BackButton:SetWide(60)
|
||||
BackButton:SetTall(40)
|
||||
BackButton.DoClick = function()
|
||||
RunConsoleCommand("acf_start_browser_open")
|
||||
SoundBrowserPanel:Close()
|
||||
end
|
||||
|
||||
NextButton = ButtonsSidePanel:Add("DButton") // The play button.
|
||||
NextButton:SetText("Next")
|
||||
NextButton:SetTextColor(Color(0,0,255,255))
|
||||
NextButton:SetPos(360,10)
|
||||
NextButton:SetWide(80)
|
||||
NextButton:SetTall(60)
|
||||
NextButton.DoClick = function()
|
||||
RunConsoleCommand("acf_engineloaded_browser_open")
|
||||
SoundBrowserPanel:Close()
|
||||
end
|
||||
|
||||
--#### text ##
|
||||
SaveText1 = ButtonsSidePanel:Add("DLabel")
|
||||
SaveText1:SetText("Load Menu Beta, click on each \n lines to load value's")
|
||||
SaveText1:SetTextColor(Color(0,255,0,255))
|
||||
SaveText1:SetPos(150,20)
|
||||
SaveText1:SetFont( "DefaultBold" )
|
||||
SaveText1:SizeToContents()
|
||||
--####
|
||||
|
||||
SoundBrowserPanel:InvalidateLayout(true)
|
||||
|
||||
end
|
||||
|
||||
--###################################################################################################
|
||||
|
||||
// Open the Sound Browser.
|
||||
local function OpenSoundBrowser(pl, cmd, args)
|
||||
local path = args[1] // nil or "" will put the browser in e2 mode else the soundemitter mode is applied.
|
||||
|
||||
if (!IsValid(SoundBrowserPanel)) then
|
||||
CreateSoundBrowser(path)
|
||||
end
|
||||
|
||||
SoundBrowserPanel:SetVisible(true)
|
||||
SoundBrowserPanel:MakePopup()
|
||||
SoundBrowserPanel:InvalidateLayout(true)
|
||||
|
||||
if (!IsValid(TabFavourites2)) then return end
|
||||
|
||||
//Replaces the timer, doesn't get paused in singleplayer.
|
||||
WireLib.Timedcall(function(SoundBrowserPanel, TabFavourites2, path)
|
||||
if (!IsValid(SoundBrowserPanel)) then return end
|
||||
if (!IsValid(TabFavourites2)) then return end
|
||||
|
||||
local soundemitter = false
|
||||
if (isstring(path) and path ~= "") then
|
||||
soundemitter = true
|
||||
end
|
||||
|
||||
SoundBrowserPanel.Soundemitter = soundemitter
|
||||
|
||||
SoundBrowserPanel:InvalidateLayout(true)
|
||||
|
||||
if (!soundemitter) then
|
||||
path = SoundBrowserPanel:GetCookie("wire_soundfile", "") // load last session
|
||||
end
|
||||
TabFavourites2:SetOpenFile(path)
|
||||
end, SoundBrowserPanel, ModelBrowserPanel, TabFavourites2, path)
|
||||
end
|
||||
|
||||
concommand.Add("acf_engineloadcustom_browser_open", OpenSoundBrowser)
|
Loading…
Reference in New Issue