|
@@ -96,6 +96,21 @@ float Light2D::get_height() const {
|
|
|
return height;
|
|
|
}
|
|
|
|
|
|
+void Light2D::set_energy( float p_energy) {
|
|
|
+
|
|
|
+ energy=p_energy;
|
|
|
+ VS::get_singleton()->canvas_light_set_energy(canvas_light,energy);
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+float Light2D::get_energy() const {
|
|
|
+
|
|
|
+ return energy;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
void Light2D::set_texture_scale( float p_scale) {
|
|
|
|
|
|
_scale=p_scale;
|
|
@@ -178,15 +193,15 @@ int Light2D::get_item_shadow_mask() const {
|
|
|
return item_shadow_mask;
|
|
|
}
|
|
|
|
|
|
-void Light2D::set_subtract_mode( bool p_enable ) {
|
|
|
+void Light2D::set_mode( Mode p_mode ) {
|
|
|
|
|
|
- subtract_mode=p_enable;
|
|
|
- VS::get_singleton()->canvas_light_set_subtract_mode(canvas_light,p_enable);
|
|
|
+ mode=p_mode;
|
|
|
+ VS::get_singleton()->canvas_light_set_mode(canvas_light,VS::CanvasLightMode(p_mode));
|
|
|
}
|
|
|
|
|
|
-bool Light2D::get_subtract_mode() const {
|
|
|
+Light2D::Mode Light2D::get_mode() const {
|
|
|
|
|
|
- return subtract_mode;
|
|
|
+ return mode;
|
|
|
}
|
|
|
|
|
|
void Light2D::set_shadow_enabled( bool p_enabled) {
|
|
@@ -260,6 +275,9 @@ void Light2D::_bind_methods() {
|
|
|
ObjectTypeDB::bind_method(_MD("set_height","height"),&Light2D::set_height);
|
|
|
ObjectTypeDB::bind_method(_MD("get_height"),&Light2D::get_height);
|
|
|
|
|
|
+ ObjectTypeDB::bind_method(_MD("set_energy","energy"),&Light2D::set_energy);
|
|
|
+ ObjectTypeDB::bind_method(_MD("get_energy"),&Light2D::get_energy);
|
|
|
+
|
|
|
ObjectTypeDB::bind_method(_MD("set_texture_scale","texture_scale"),&Light2D::set_texture_scale);
|
|
|
ObjectTypeDB::bind_method(_MD("get_texture_scale"),&Light2D::get_texture_scale);
|
|
|
|
|
@@ -283,8 +301,8 @@ void Light2D::_bind_methods() {
|
|
|
ObjectTypeDB::bind_method(_MD("set_item_shadow_mask","item_shadow_mask"),&Light2D::set_item_shadow_mask);
|
|
|
ObjectTypeDB::bind_method(_MD("get_item_shadow_mask"),&Light2D::get_item_shadow_mask);
|
|
|
|
|
|
- ObjectTypeDB::bind_method(_MD("set_subtract_mode","enable"),&Light2D::set_subtract_mode);
|
|
|
- ObjectTypeDB::bind_method(_MD("get_subtract_mode"),&Light2D::get_subtract_mode);
|
|
|
+ ObjectTypeDB::bind_method(_MD("set_mode","mode"),&Light2D::set_mode);
|
|
|
+ ObjectTypeDB::bind_method(_MD("get_mode"),&Light2D::get_mode);
|
|
|
|
|
|
ObjectTypeDB::bind_method(_MD("set_shadow_enabled","enabled"),&Light2D::set_shadow_enabled);
|
|
|
ObjectTypeDB::bind_method(_MD("is_shadow_enabled"),&Light2D::is_shadow_enabled);
|
|
@@ -300,7 +318,8 @@ void Light2D::_bind_methods() {
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::VECTOR2,"offset"),_SCS("set_texture_offset"),_SCS("get_texture_offset"));
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::REAL,"scale",PROPERTY_HINT_RANGE,"0.01,4096,0.01"),_SCS("set_texture_scale"),_SCS("get_texture_scale"));
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::COLOR,"color"),_SCS("set_color"),_SCS("get_color"));
|
|
|
- ADD_PROPERTY( PropertyInfo(Variant::BOOL,"subtract"),_SCS("set_subtract_mode"),_SCS("get_subtract_mode"));
|
|
|
+ ADD_PROPERTY( PropertyInfo(Variant::REAL,"energy"),_SCS("set_energy"),_SCS("get_energy"));
|
|
|
+ ADD_PROPERTY( PropertyInfo(Variant::INT,"mode",PROPERTY_HINT_ENUM,"Add,Sub,Mix"),_SCS("set_mode"),_SCS("get_mode"));
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::REAL,"range/height"),_SCS("set_height"),_SCS("get_height"));
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::INT,"range/z_min",PROPERTY_HINT_RANGE,itos(VS::CANVAS_ITEM_Z_MIN)+","+itos(VS::CANVAS_ITEM_Z_MAX)+",1"),_SCS("set_z_range_min"),_SCS("get_z_range_min"));
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::INT,"range/z_max",PROPERTY_HINT_RANGE,itos(VS::CANVAS_ITEM_Z_MIN)+","+itos(VS::CANVAS_ITEM_Z_MAX)+",1"),_SCS("set_z_range_max"),_SCS("get_z_range_max"));
|
|
@@ -312,6 +331,10 @@ void Light2D::_bind_methods() {
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::REAL,"shadow/esm_multiplier",PROPERTY_HINT_RANGE,"1,4096,0.1"),_SCS("set_shadow_esm_multiplier"),_SCS("get_shadow_esm_multiplier"));
|
|
|
ADD_PROPERTY( PropertyInfo(Variant::INT,"shadow/item_mask",PROPERTY_HINT_ALL_FLAGS),_SCS("set_item_shadow_mask"),_SCS("get_item_shadow_mask"));
|
|
|
|
|
|
+ BIND_CONSTANT( MODE_ADD );
|
|
|
+ BIND_CONSTANT( MODE_SUB );
|
|
|
+ BIND_CONSTANT( MODE_MIX );
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|
|
@@ -329,9 +352,10 @@ Light2D::Light2D() {
|
|
|
layer_max=0;
|
|
|
item_mask=1;
|
|
|
item_shadow_mask=1;
|
|
|
- subtract_mode=false;
|
|
|
+ mode=MODE_ADD;
|
|
|
shadow_buffer_size=2048;
|
|
|
shadow_esm_multiplier=80;
|
|
|
+ energy=1.0;
|
|
|
|
|
|
}
|
|
|
|