178 lines
6.4 KiB
Text
178 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"
|
|
)
|
|
|
|
)
|
|
|
|
|