Code: Select all
defineObject{
name = "dwarf_force_field_door",
components = {
{
class = "Model",
model = "mod_assets/dwarf/models/forcefield_door.fbx",
offset = vec(0, 0.05, 0),
},
{
class = "Light",
offset = vec(0, 1.75, 0),
range = 6,
color = vec(0, 0, 0),
brightness = 30,
castShadow = false,
fillLight = true,
},
{
class = "Particle",
particleSystem = "dwarf_force_field",
},
{
class = "Sound",
sound = "force_field_ambient",
},
{
class = "Door",
openVelocity = 1000,
closeVelocity = 1000,
closeAcceleration = -100,
--sparse = true,
killPillars = true,
-- pullchainObject = "dwarf_door_button",
hitSound = "impact_blunt",
openSound = "force_field_cast",
closeSound = "force_field_cast",
lockSound = "force_field_cast",
maxHeight = 5.0,
},
{
class = "Model",
name = "frame",
model = "mod_assets/dwarf/models/dwarf_door_frame.fbx",
staticShadow = true,
},
{
class = "ProjectileCollider",
},
{
class = "Clickable",
offset = vec(0, 1.5, 0),
size = vec(2.75,3,2.75),
maxDistance = 1,
--debugDraw = true,
},
{
class = "Controller",
onInitialActivate = function(self)
self.go.model:enable()
self.go.door:enable()
self.go.clickable:enable()
end,
onInitialDeactivate = function(self)
self.go.model:disable()
self.go.door:disable()
self.go.particle:fadeOut(0)
self.go.sound:fadeOut(0)
self.go.light:fadeOut(0)
self.go.clickable:disable()
end,
onActivate = function(self)
self.go.model:enable()
self.go.door:enable()
self.go.particle:fadeIn(0.1)
self.go.sound:fadeIn(0.25)
self.go.light:fadeIn(0.1)
self.go.clickable:enable()
--self.go:playSound("force_field_cast")
end,
onDeactivate = function(self)
if self.go.model:isEnabled() then
self.go:playSound("force_field_cast")
end
self.go.model:disable()
self.go.door:disable()
self.go.particle:fadeOut(0.1)
self.go.sound:fadeOut(0.5)
self.go.light:fadeOut(0.5)
self.go.clickable:disable()
end,
onToggle = function(self)
if self.go.door:isEnabled() then
self:deactivate()
else
self:activate()
end
end,
},
},
placement = "wall",
editorIcon = 272,
tags = { "obstacle" },
}