light_2d.h
1 #ifndef LIGHT_2D_H
2 #define LIGHT_2D_H
3 
4 #include "scene/2d/node_2d.h"
5 
6 class Light2D : public Node2D {
7 
8  OBJ_TYPE(Light2D,Node2D);
9 public:
10  enum Mode {
11  MODE_ADD,
12  MODE_SUB,
13  MODE_MIX,
14  MODE_MASK,
15  };
16 
17 private:
18  RID canvas_light;
19  bool enabled;
20  bool shadow;
21  Color color;
22  Color shadow_color;
23  float height;
24  float _scale;
25  float energy;
26  int z_min;
27  int z_max;
28  int layer_min;
29  int layer_max;
30  int item_mask;
31  int item_shadow_mask;
32  int shadow_buffer_size;
33  float shadow_esm_multiplier;
34  Mode mode;
35  Ref<Texture> texture;
36  Vector2 texture_offset;
37 
38  void _update_light_visibility();
39 protected:
40 
41  void _notification(int p_what);
42  static void _bind_methods();
43 public:
44 
45 
46  virtual void edit_set_pivot(const Point2& p_pivot);
47  virtual Point2 edit_get_pivot() const;
48  virtual bool edit_has_pivot() const;
49 
50  void set_enabled( bool p_enabled);
51  bool is_enabled() const;
52 
53  void set_texture( const Ref<Texture>& p_texture);
54  Ref<Texture> get_texture() const;
55 
56  void set_texture_offset( const Vector2& p_offset);
57  Vector2 get_texture_offset() const;
58 
59  void set_color( const Color& p_color);
60  Color get_color() const;
61 
62  void set_height( float p_height);
63  float get_height() const;
64 
65  void set_energy( float p_energy);
66  float get_energy() const;
67 
68  void set_texture_scale( float p_scale);
69  float get_texture_scale() const;
70 
71  void set_z_range_min( int p_min_z);
72  int get_z_range_min() const;
73 
74  void set_z_range_max( int p_max_z);
75  int get_z_range_max() const;
76 
77  void set_layer_range_min( int p_min_layer);
78  int get_layer_range_min() const;
79 
80  void set_layer_range_max( int p_max_layer);
81  int get_layer_range_max() const;
82 
83  void set_item_mask( int p_mask);
84  int get_item_mask() const;
85 
86  void set_item_shadow_mask( int p_mask);
87  int get_item_shadow_mask() const;
88 
89  void set_mode( Mode p_mode );
90  Mode get_mode() const;
91 
92  void set_shadow_enabled( bool p_enabled);
93  bool is_shadow_enabled() const;
94 
95  void set_shadow_buffer_size( int p_size );
96  int get_shadow_buffer_size() const;
97 
98  void set_shadow_esm_multiplier( float p_multiplier);
99  float get_shadow_esm_multiplier() const;
100 
101  void set_shadow_color( const Color& p_shadow_color);
102  Color get_shadow_color() const;
103 
104 
105  virtual Rect2 get_item_rect() const;
106 
107  Light2D();
108  ~Light2D();
109 };
110 
111 VARIANT_ENUM_CAST(Light2D::Mode);
112 
113 #endif // LIGHT_2D_H
Definition: color.h:37
Definition: math_2d.h:204
Definition: light_2d.h:6
Definition: rid.h:47
Definition: math_2d.h:65
Definition: node_2d.h:34