Add Array.front() and Array.back()

This commit is contained in:
Kazuo256 2016-11-18 18:30:16 -02:00
parent 959683c3d8
commit bf4fda64fd
4 changed files with 31 additions and 0 deletions

View file

@ -150,6 +150,16 @@ void Array::erase(const Variant& p_value) {
_p->array.erase(p_value); _p->array.erase(p_value);
} }
Variant Array::front() const {
ERR_FAIL_COND_V(_p->array.size() == 0, Variant());
return operator[](0);
}
Variant Array::back() const {
ERR_FAIL_COND_V(_p->array.size() == 0, Variant());
return operator[](_p->array.size() - 1);
}
int Array::find(const Variant& p_value, int p_from) const { int Array::find(const Variant& p_value, int p_from) const {
return _p->array.find(p_value, p_from); return _p->array.find(p_value, p_from);

View file

@ -67,6 +67,9 @@ public:
void insert(int p_pos, const Variant& p_value); void insert(int p_pos, const Variant& p_value);
void remove(int p_pos); void remove(int p_pos);
Variant front() const;
Variant back() const;
void sort(); void sort();
void sort_custom(Object *p_obj,const StringName& p_function); void sort_custom(Object *p_obj,const StringName& p_function);
void invert(); void invert();

View file

@ -472,6 +472,8 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM1(Array,resize); VCALL_LOCALMEM1(Array,resize);
VCALL_LOCALMEM2(Array,insert); VCALL_LOCALMEM2(Array,insert);
VCALL_LOCALMEM1(Array,remove); VCALL_LOCALMEM1(Array,remove);
VCALL_LOCALMEM0R(Array,front);
VCALL_LOCALMEM0R(Array,back);
VCALL_LOCALMEM2R(Array,find); VCALL_LOCALMEM2R(Array,find);
VCALL_LOCALMEM2R(Array,rfind); VCALL_LOCALMEM2R(Array,rfind);
VCALL_LOCALMEM1R(Array,find_last); VCALL_LOCALMEM1R(Array,find_last);
@ -1576,6 +1578,8 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC2(ARRAY,NIL,Array,insert,INT,"pos",NIL,"value",varray()); ADDFUNC2(ARRAY,NIL,Array,insert,INT,"pos",NIL,"value",varray());
ADDFUNC1(ARRAY,NIL,Array,remove,INT,"pos",varray()); ADDFUNC1(ARRAY,NIL,Array,remove,INT,"pos",varray());
ADDFUNC1(ARRAY,NIL,Array,erase,NIL,"value",varray()); ADDFUNC1(ARRAY,NIL,Array,erase,NIL,"value",varray());
ADDFUNC0(ARRAY,NIL,Array,front,varray());
ADDFUNC0(ARRAY,NIL,Array,back,varray());
ADDFUNC2(ARRAY,INT,Array,find,NIL,"what",INT,"from",varray(0)); ADDFUNC2(ARRAY,INT,Array,find,NIL,"what",INT,"from",varray(0));
ADDFUNC2(ARRAY,INT,Array,rfind,NIL,"what",INT,"from",varray(-1)); ADDFUNC2(ARRAY,INT,Array,rfind,NIL,"what",INT,"from",varray(-1));
ADDFUNC1(ARRAY,INT,Array,find_last,NIL,"value",varray()); ADDFUNC1(ARRAY,INT,Array,find_last,NIL,"value",varray());

View file

@ -4656,6 +4656,20 @@
Remove the first occurrence of a value from the array. Remove the first occurrence of a value from the array.
</description> </description>
</method> </method>
<method name="front">
<return type="Variant">
</return>
<description>
Returns the first element of the array if the array is not empty (size>0).
</description>
</method>
<method name="back">
<return type="Variant">
</return>
<description>
Returns the last element of the array if the array is not empty (size>0).
</description>
</method>
<method name="find"> <method name="find">
<return type="int"> <return type="int">
</return> </return>