kiki/coffee/light.coffee
monsterkodi 30f8389a2c cage
2016-08-18 20:58:02 +02:00

49 lines
1.6 KiB
CoffeeScript

# 000 000 0000000 000 000 000000000
# 000 000 000 000 000 000
# 000 000 000 0000 000000000 000
# 000 000 000 000 000 000 000
# 0000000 000 0000000 000 000 000
Item = require './item'
class Light extends Item
constructor: (opt) ->
@radius = opt?.radius ? 4
@shadow = opt?.shadow ? false
@intensity = opt?.intensity ? 0.5
# @ambient_color = colors[KikiLight_base_color]
# @diffuse_color = colors[KikiLight_diffuse_color]
# @specular_color = colors[KikiLight_specular_color]
@point = new THREE.PointLight 0xffffff, @intensity, @radius, 2
@point.castShadow = @shadow
@point.shadow.darkness = 0.5
@point.shadow.mapSize = new THREE.Vector2 2048, 2048
@point.shadow.bias = 0.01
geom = new THREE.SphereGeometry 0.3, 16, 16
mat = new THREE.MeshLambertMaterial
color: 0xffffff
side: THREE.FrontSide
shading: THREE.SmoothShading
transparent: true
opacity: 0.7
emissive: 0xffff00
emissiveIntensity: 0.9
@mesh = new THREE.Mesh geom, mat
world.scene.add @point
world.addLight @
@setPosition opt.pos if opt?.pos?
super
del: ->
world.removeLight @
world.scene.remove @point
super
setPosition: (pos) ->
super pos
@point.position.copy @position
module.exports = Light