# 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 . 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"}