You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

72 lines
3.5 KiB

# This file is part of Korman.
#
# Korman is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Korman is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Korman. If not, see <http://www.gnu.org/licenses/>.
import bpy
from bpy.props import *
from .. import idprops
class PlasmaLamp(idprops.IDPropObjectMixin, bpy.types.PropertyGroup):
affect_characters = BoolProperty(name="Affect Avatars",
description="This lamp affects avatars",
options=set(),
default=True)
# Shadow settings
cast_shadows = BoolProperty(name="Cast",
description="This lamp casts runtime shadows",
default=True)
shadow_falloff = FloatProperty(name="Falloff",
description="Distance from the Lamp past which we don't cast shadows",
min=5.0, max=50.0, default=10.0,
options=set())
shadow_distance = FloatProperty(name="Fade Distance",
description="Distance at which the shadow has completely faded out",
min=0.0, max=500.0, default=0.0,
options=set())
shadow_power = IntProperty(name="Power",
description="Multiplier for the shadow's intensity",
min=0, max=200, default=100,
options=set(), subtype="PERCENTAGE")
shadow_self = BoolProperty(name="Self-Shadow",
description="This light can cause objects to cast shadows on themselves",
default=False,
options=set())
shadow_quality = EnumProperty(name="Shadow Quality",
description="Maximum resolution the shadow is rendered",
items=[("ABYSMAL", "Abysmal Quality", "64x64 pixels"),
("LOW", "Low Quality", "128x128 pixels"),
("NORMAL", "Normal Quality", "256x256 pixels"),
("HIGH", "High Quality", "512x512 pixels")],
default="NORMAL",
options=set())
lamp_region = PointerProperty(name="Soft Volume",
description="Soft region this light is active inside",
type=bpy.types.Object,
poll=idprops.poll_softvolume_objects)
# For LimitedDirLights
size_height = FloatProperty(name="Height",
description="Size of the area for the Area Lamp in the Z direction",
min=0.0, default=200.0,
options=set())
def has_light_group(self, bo):
return bool(bo.users_group)
@classmethod
def _idprop_mapping(cls):
return {"lamp_region": "soft_region"}