Files
wnsrc/lua/autorun/rpprops_init.lua

220 lines
7.9 KiB
Lua
Raw Normal View History

2024-08-04 23:12:27 +03:00
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local cvar = CreateConVar("rpprops_hide", -1, {FCVAR_ARCHIVE, FCVAR_REPLICATED}, "Show Roleplay Props in the spawnmenu")
if SERVER then
if (cvar:GetInt() == -1) then -- Default convars don't seem to be sent to clients
cvar:SetInt(0)
end
else
local models = {
["Living Room"] = {
"models/U4Lab/tv_monitor_plasma.mdl",
"models/gmod_tower/suitetv.mdl",
"models/scenery/furniture/coffeetable1/vestbl.mdl",
"models/props_interiors/chairlobby01.mdl",
"models/props_warehouse/office_furniture_couch.mdl",
"models/props_vtmb/armchair.mdl",
"models/props_vtmb/sofa.mdl",
"models/props_interiors/sofa01.mdl",
"models/props_interiors/sofa02.mdl",
"models/props_interiors/sofa_chair02.mdl",
"models/props_interiors/ottoman01.mdl",
"models/env/furniture/decosofa_wood/decosofa_wood_dou.mdl",
"models/Highrise/lobby_chair_01.mdl",
"models/Highrise/lobby_chair_02.mdl",
"models/props_interiors/desk_motel.mdl",
"models/props_furniture/piano.mdl",
"models/props_furniture/piano_bench.mdl",
"models/props_interiors/painting_landscape01.mdl",
"models/props_interiors/painting_portrait01.mdl",
"models/props_furniture/picture_frame8.mdl",
"models/props_urban/hotel_curtain001.mdl",
"models/props_plants/plantairport01.mdl",
"models/Highrise/potted_plant_05.mdl",
"models/env/decor/tall_plant_b/tall_plant_b.mdl",
"models/env/decor/plant_decofern/plant_decofern.mdl",
},
["Kitchen"] = {
"models/props_interiors/refrigerator03.mdl",
"models/sickness/fridge_01.mdl",
"models/sickness/stove_01.mdl",
"models/props_interiors/sink_kitchen.mdl",
"models/props_interiors/coffee_maker.mdl",
"models/props_interiors/chair01.mdl",
"models/props_interiors/chair_cafeteria.mdl",
"models/props_interiors/dining_table_round.mdl",
"models/props_interiors/dinning_table_oval.mdl",
"models/props_interiors/trashcankitchen01.mdl",
},
["Bathroom"] = {
"models/env/furniture/wc_double_cupboard/wc_double_cupboard.mdl",
"models/env/furniture/square_sink/sink_double.mdl",
"models/env/furniture/square_sink/sink_merged_b.mdl",
"models/env/furniture/showerbase/showerbase.mdl",
"models/env/furniture/shower/shower.mdl",
"models/props_interiors/bathtub01.mdl",
"models/env/furniture/ensuite1_toilet/ensuite1_toilet.mdl",
"models/env/furniture/ensuite1_toilet/ensuite1_toilet_b.mdl",
"models/env/furniture/ensuite1_sink/ensuite1_sink.mdl",
"models/props_interiors/soap_dispenser.mdl",
"models/props_interiors/toiletpaperdispenser_residential.mdl",
"models/props_interiors/toiletpaperroll.mdl",
},
["Bedroom"] = {
"models/props_interiors/bed_motel.mdl",
"models/props_downtown/bed_motel01.mdl",
"models/env/furniture/bed_secondclass/beddouble_group.mdl",
"models/env/furniture/bed_andrea/bed_andrea_1st.mdl",
"models/props_interiors/side_table_square.mdl",
},
["Office"] = {
"models/U4Lab/chair_office_a.mdl",
"models/U4Lab/desk_office_a.mdl",
"models/props_warehouse/office_furniture_coffee_table.mdl",
"models/props_warehouse/office_furniture_desk.mdl",
"models/props_warehouse/office_furniture_desk_corner.mdl",
"models/props_office/desk_01.mdl",
"models/props_interiors/desk_executive.mdl",
"models/env/furniture/largedesk/largedesk.mdl",
"models/props_office/file_cabinet_03.mdl",
"models/Highrise/cubicle_monitor_01.mdl",
"models/props_interiors/copymachine01.mdl",
"models/props_interiors/printer.mdl",
"models/props_interiors/paper_tray.mdl",
"models/props_interiors/water_cooler.mdl",
"models/props_interiors/corkboardverticle01.mdl",
},
["Outdoors"] = {
"models/props_unique/spawn_apartment/coffeeammo.mdl",
"models/props_downtown/sign_donotenter.mdl",
"models/props_waterfront/awning01.mdl",
"models/props_street/awning_department_store.mdl",
"models/props/de_tides/planter.mdl",
"models/props_urban/bench001.mdl",
"models/props_interiors/table_picnic.mdl",
"models/props_urban/plastic_chair001.mdl",
"models/props_interiors/patio_chair2_white.mdl",
"models/props/de_tides/patio_chair2.mdl",
"models/props/de_tides/patio_table2.mdl",
"models/env/furniture/pool_recliner/pool_recliner.mdl",
"models/props/de_piranesi/pi_bench.mdl",
"models/props/de_piranesi/pi_sundial.mdl",
"models/props/de_inferno/bench_concrete.mdl",
"models/props/de_inferno/fountain.mdl",
"models/props/de_inferno/lattice.mdl",
"models/props_unique/firepit_campground.mdl",
"models/props_equipment/sleeping_bag1.mdl",
"models/props_equipment/sleeping_bag2.mdl",
"models/props_urban/outhouse001.mdl",
"models/props_junk/trashcluster01a_corner.mdl",
"models/trees/pi_tree1.mdl",
"models/trees/pi_tree3.mdl",
"models/trees/pi_tree4.mdl",
"models/trees/pi_tree5.mdl",
},
["Commercial"] = {
"models/props_equipment/phone_booth.mdl",
"models/Highrise/trashcanashtray_01.mdl",
"models/Highrise/trash_can_03.mdl",
"models/props_interiors/trashcan01.mdl",
"models/props_interiors/cashregister01.mdl",
"models/props_interiors/magazine_rack.mdl",
"models/props_interiors/shelvinggrocery01.mdl",
"models/props_interiors/shelvingstore01.mdl",
"models/props_equipment/fountain_drinks.mdl",
"models/props_downtown/bar_long.mdl",
"models/props_downtown/bar_long_endcorner.mdl",
"models/scenery/structural/vesuvius/bartap.mdl",
"models/env/furniture/bstoolred/bstoolred.mdl",
"models/props_furniture/cafe_barstool1.mdl",
"models/props_downtown/pooltable.mdl",
"models/de_vegas/card_table.mdl",
"models/props_equipment/security_desk1.mdl",
"models/sickness/bk_booth2.mdl",
"models/props_downtown/booth01.mdl",
"models/props_downtown/booth02.mdl",
"models/props_downtown/booth_table.mdl",
"models/props_interiors/table_cafeteria.mdl",
"models/props_warehouse/table_01.mdl",
"models/props_interiors/chairs_airport.mdl",
"models/props_warehouse/toolbox.mdl",
"models/props_vtmb/turntable.mdl",
"models/props_vehicles/ambulance.mdl",
"models/props_unique/wheelchair01.mdl",
"models/props_unique/hospital/exam_table.mdl",
"models/props_unique/hospital/gurney.mdl",
"models/props_equipment/surgicaltray_01.mdl",
"models/props_unique/hospital/hospital_bed.mdl",
"models/props_unique/hospital/iv_pole.mdl",
"models/props_unique/hospital/surgery_lamp.mdl",
"models/props_interiors/medicalcabinet02.mdl",
},
["Lighting"] = {
"models/props_unique/spawn_apartment/lantern.mdl",
"models/env/lighting/lamp_trumpet/lamp_trumpet_tall.mdl",
"models/env/lighting/jelly_lamp/jellylamp.mdl",
"models/env/lighting/corridor_ceil_lamp/corridor_ceil_lamp.mdl",
"models/env/lighting/corridorlamp/corridorlamp.mdl",
"models/props_urban/light_fixture01.mdl",
"models/Highrise/tall_lamp_01.mdl",
"models/U4Lab/track_lighting_a.mdl",
"models/Highrise/sconce_01.mdl",
"models/wilderness/lamp6.mdl",
"models/props_interiors/lamp_table02.mdl",
}
}
hook.Add("PopulateContent", "RoleplayProps", function(pnlContent, tree)
local cvar = GetConVar("rpprops_hide")
if cvar and (cvar:GetInt() == 1) then return end -- The server doesn't want it in the client spawn menu
local RootNode = tree:AddNode("Roleplay Props", "icon16/rpprops.png")
local ViewPanel = vgui.Create("ContentContainer", pnlContent)
ViewPanel:SetVisible(false)
RootNode.DoClick = function()
ViewPanel:Clear(true)
for name, tbl in SortedPairs(models) do
local label = vgui.Create("ContentHeader", container)
label:SetText(name)
ViewPanel:Add(label)
for _, v in ipairs(tbl) do
local mdlicon = spawnmenu.GetContentType("model")
if mdlicon then
mdlicon(ViewPanel, {model = v})
end
end
end
pnlContent:SwitchPanel(ViewPanel)
end
end)
end