179 lines
6.4 KiB
Text
179 lines
6.4 KiB
Text
|
-- Nel Material properties
|
||
|
-- based on Real Time material by Fred Ruff www.ruff-stuff.com
|
||
|
|
||
|
plugin material NelMaterial
|
||
|
name:"NeL Material"
|
||
|
classID:#(0x64c75fec, 0x222b9eb9)
|
||
|
extends:standard replaceUI:false version:1.0
|
||
|
(
|
||
|
local params,
|
||
|
|
||
|
ThreeValueArray = #("None","average","a lot"),
|
||
|
CollisionTypeArray = #("floor","door","stairs","elevator","ladder"),
|
||
|
FrictionTypeArray = ThreeValueArray,
|
||
|
SlowMotionTypeArray = ThreeValueArray,
|
||
|
SinkTypeArray = ThreeValueArray,
|
||
|
BounceTypeArray = ThreeValueArray,
|
||
|
DammageTypeArray = ThreeValueArray,
|
||
|
TriggerTypeArray = #("type1 ?","type2 ?","type3 ?"),
|
||
|
SoundTypeArray = #("type1 ?","type2 ?","type3 ?"),
|
||
|
FXTypeArray = #("type1 ?","type2 ?","type3 ?"),
|
||
|
TracksPersistanceTypeArray = ThreeValueArray,
|
||
|
PresetsArray = #("--"),
|
||
|
|
||
|
presetfile = ((getdir #scripts) + "\\RTmatpresets.ini")
|
||
|
|
||
|
|
||
|
parameters main rollout:NelParams
|
||
|
(
|
||
|
-- 3d part of the material
|
||
|
|
||
|
bLightMap type:#boolean default:false ui:cbLightMap
|
||
|
|
||
|
-- Pacs part of the material
|
||
|
|
||
|
BaseColor type:#color default:(color 100 100 100) --ui:Base
|
||
|
|
||
|
CollisionType type:#integer default:1 --ui:CollisionTypeList
|
||
|
FrictionType type:#integer default:1 --ui:FrictionType
|
||
|
SlowMotionType type:#integer default:1 --ui:SlowMotionType
|
||
|
SinkType type:#integer default:1 --ui:SinkType
|
||
|
BounceType type:#integer default:1 --ui:BounceType
|
||
|
DammageType type:#integer default:1 --ui:DammageType
|
||
|
TriggerType type:#integer default:1 --ui:TriggerType
|
||
|
SoundType type:#integer default:1 --ui:SoundType
|
||
|
FXType type:#integer default:1 --ui:FXType
|
||
|
TracksPersistanceType type:#integer default:1 --ui:TracksPersistanceType
|
||
|
|
||
|
)
|
||
|
|
||
|
|
||
|
rollout NelParams "Nel Material"
|
||
|
(
|
||
|
|
||
|
------------------------------------------------
|
||
|
group "3d"
|
||
|
(
|
||
|
CheckBox cbLightMap "LightMap"
|
||
|
)
|
||
|
group "Pacs"
|
||
|
(
|
||
|
colorpicker Base "Base Color: "
|
||
|
DropDownList PresetList "Presets :" width:145 items:PresetsArray align:#left across:2
|
||
|
Label labeltext01 "Presets works only 'one way'"
|
||
|
DropDownList CollisionTypeList "Collision Type :" width:145 items:CollisionTypeArray align:#left across:2
|
||
|
DropDownList FrictionTypeList "No Friction Type (ice) :" width:145 items:FrictionTypeArray align:#left across:2
|
||
|
DropDownList SlowMotionTypeList "Slow Motion Type :" width:145 items:SlowMotionTypeArray align:#left across:2
|
||
|
DropDownList SinkTypeList "Sink Type :" width:145 items:SinkTypeArray align:#left across:2
|
||
|
DropDownList BounceTypeList "Bounce Type :" width:145 items:BounceTypeArray align:#left across:2
|
||
|
DropDownList DammageTypeList "Dammage Type :" width:145 items:DammageTypeArray align:#left across:2
|
||
|
DropDownList TriggerTypeList "Trigger Type :" width:145 items:TriggerTypeArray align:#left across:2
|
||
|
DropDownList SoundTypeList "Sound Type :" width:145 items:SoundTypeArray align:#left across:2
|
||
|
DropDownList FXTypeList "FX Type :" width:145 items:FXTypeArray align:#left across:2
|
||
|
DropDownList TracksPersistanceTypeList "Tracks Type :" width:145 items:TracksPersistanceTypeArray align:#left
|
||
|
)
|
||
|
------------------------------------------------
|
||
|
|
||
|
on CollisionTypeList selected val do CollisionType = val
|
||
|
on FrictionTypeList selected val do FrictionType = val
|
||
|
on SlowMotionTypeList selected val do SlowMotionType = val
|
||
|
on SinkTypeList selected val do SinkType = val
|
||
|
on BounceTypeList selected val do BounceType = val
|
||
|
on DammageTypeList selected val do DammageType = val
|
||
|
on TriggerTypeList selected val do TriggerType = val
|
||
|
on SoundTypeList selected val do SoundType = val
|
||
|
on FXTypeList selected val do FXType = val
|
||
|
on TracksPersistanceTypeList selected val do TracksPersistanceType = val
|
||
|
|
||
|
on Base changed col do
|
||
|
(
|
||
|
basecolor = col
|
||
|
try (delegate.diffuse = col) catch ()
|
||
|
try (this.standard.diffuse=col) catch ()
|
||
|
)
|
||
|
|
||
|
|
||
|
Fn presetread =
|
||
|
(
|
||
|
matnum = GetINISetting presetfile "materials" "matnumber"
|
||
|
for i = 1 to (matnum as integer) do (PresetsArray[i]=GetINISetting presetfile "materials" ("matname" + i as string))
|
||
|
PresetList.items = PresetsArray
|
||
|
)
|
||
|
|
||
|
Fn UsePreset selectedpreset=
|
||
|
(
|
||
|
local tempcolor = (color 0 0 0)
|
||
|
presetparams = GetINISetting presetfile "materials" ("matparam" + selectedpreset as string)
|
||
|
presetparamsarray = (filterString presetparams "-,")
|
||
|
|
||
|
CollisionType = presetparamsarray[1] as float
|
||
|
FrictionType = presetparamsarray[2] as integer
|
||
|
SlowMotionType = presetparamsarray[3] as integer
|
||
|
SinkType = presetparamsarray[4] as integer
|
||
|
BounceType = presetparamsarray[5] as integer
|
||
|
DammageType = presetparamsarray[6] as integer
|
||
|
TriggerType = presetparamsarray[7] as integer
|
||
|
SoundType = presetparamsarray[8] as integer
|
||
|
FXType = presetparamsarray[9] as integer
|
||
|
TracksPersistanceType = presetparamsarray[10] as integer
|
||
|
tempcolor.r = presetparamsarray[11] as integer
|
||
|
tempcolor.g = presetparamsarray[12] as integer
|
||
|
tempcolor.b = presetparamsarray[13] as integer
|
||
|
|
||
|
basecolor = tempcolor
|
||
|
Base.color = basecolor
|
||
|
try (delegate.diffuse = basecolor) catch ()
|
||
|
try (this.standard.diffuse=basecolor) catch ()
|
||
|
|
||
|
)
|
||
|
|
||
|
|
||
|
Fn updateparams =
|
||
|
(
|
||
|
print "updating params"
|
||
|
CollisionTypeList.selection = CollisionType
|
||
|
FrictionTypeList.selection = FrictionType
|
||
|
SlowMotionTypeList.selection= SlowMotionType
|
||
|
SinkTypeList.selection = SinkType
|
||
|
BounceTypeList.selection = BounceType
|
||
|
DammageTypeList.selection = DammageType
|
||
|
TriggerTypeList.selection = TriggerType
|
||
|
SoundTypeList.selection = SoundType
|
||
|
FXTypeList.selection = FXType
|
||
|
TracksPersistanceTypeList.selection = TracksPersistanceType
|
||
|
Base.color = BaseColor
|
||
|
)
|
||
|
|
||
|
on PresetList selected val do
|
||
|
(
|
||
|
UsePreset val
|
||
|
updateparams()
|
||
|
)
|
||
|
|
||
|
on params reload do (print "reload" ; updateparams())
|
||
|
on params open do
|
||
|
(
|
||
|
print "open"
|
||
|
presetread()
|
||
|
updateparams()
|
||
|
)
|
||
|
)
|
||
|
|
||
|
on create do
|
||
|
(
|
||
|
print "create"
|
||
|
delegate.ambient = [0,0,0]
|
||
|
delegate.diffuse = [255,255,255]
|
||
|
delegate.diffuse = BaseColor
|
||
|
delegate.specular = [255,255,255]
|
||
|
delegate.specularlevel = 0
|
||
|
delegate.glossiness = 0
|
||
|
delegate.diffuseMap = bitmapTexture()
|
||
|
delegate.selfillumMap = bitmapTexture()
|
||
|
-- delegate.name = "toto"
|
||
|
)
|
||
|
|
||
|
)
|
||
|
|
||
|
|