MatSelect

Açıklama

Material & Lamba Sandbox araçları tarafından doku seçimi için kullanılan panel. Yalnızca Sandbox'ta kullanılmasına rağmen, bu oyun moduna özel değildir.

Prop seçme alternatifi için ayrıca bakınız: PropSelect.

Kaynağı görüntüle

Ebeveyn

Bu sayfada listelenmeyen metotları vb. ContextBase'den türetir.

Uygular

Aşağıdaki kancaları/metotları uygular veya geçersiz kılar. Bunları geçersiz kılmak isterseniz, muhtemelen orijinal fonksiyonu da çağırmanız gerekir.

Olaylar

MatSelect:OnRightClick( Panel pnl )
Oyuncu bir materyale sağ tıkladığında çağrılır. Varsayılan olarak bu, oyuncunun materyal yolunu kopyalamasına olanak tanıyan bir menü açar.
MatSelect:OnSelect( string material, Panel pnl )
Oyuncu bir materyal seçtiğinde çağrılır.
Bir DImageButton seçildiğinde onun için bir üzerine çizim fonksiyonu tanımlar. Bu fonksiyonun bağlamında `self`, DImageButton'ın kendisidir!

Metotlar

MatSelect:AddMaterial( string label, string path )
Seçim listesine yeni bir materyal ekler.
MatSelect:AddMaterialEx( string label, string path, any value, table convars )
Seçim listesine, bazı ekstra seçeneklerle birlikte yeni bir materyal ekler.
MatSelect:FindAndSelectMaterial( string mat )
Bu panelde mevcutsa bir materyal bulur ve seçer.
Girdi materyal yoluna göre bir DImageButton paneli bulur.
Panelin, tüm materyalleri kendi yüksekliğine sığdırmak için kendi yüksekliğini ayarlayıp ayarlamayacağını döndürür.
MatSelect:SelectMaterial( DImageButton mat )
Bu dahili olarak kullanılır - kullanabilseniz de muhtemelen kullanmamalısınız. Bunun yerine MatSelect:FindAndSelectMaterial kullanın. Verilen bir materyal panelini seçer.
MatSelect:SetAutoHeight( boolean autoSize )
Panelin, tüm materyalleri kendi yüksekliğine sığdırmak için kendi yüksekliğini ayarlayıp ayarlamayacağını belirler.
MatSelect:SetItemHeight( number height )
Tek bir materyalin yüksekliğini piksel cinsinden ayarlar.
MatSelect:SetItemWidth( number width )
Tek bir materyalin genişliğini piksel cinsinden ayarlar.
MatSelect:SetNumRows( number rows )
Panelin hedef yüksekliğini satır sayısı olarak ayarlar.

Örnek

Panelin örnek kullanımı.

local frame = vgui.Create( "DFrame" ) frame:SetSize( 500, 500 ) frame:Center() frame:MakePopup() local MatSelect = vgui.Create( "MatSelect", frame ) MatSelect:Dock( TOP ) Derma_Hook( MatSelect.List, "Paint", "Paint", "Panel" ) -- MatSelect:SetConVar( "my_convar_name" ) MatSelect:SetAutoHeight( true ) MatSelect:SetItemWidth( 64 ) MatSelect:SetItemHeight( 64 ) local items = { "effects/flashlight001", "effects/flashlight/slit", "effects/flashlight/circles" } for k, material in pairs( items ) do MatSelect:AddMaterial( "Item #" .. k, material ) end function MatSelect:OnSelect( mat, pnl ) print( "Selected material: ", mat ) end
Çıktı:
image.png

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord