2014-02-10 09:10:30 +08:00
/*************************************************************************/
/* portal.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
2017-08-27 20:16:55 +08:00
/* https://godotengine.org */
2014-02-10 09:10:30 +08:00
/*************************************************************************/
2017-01-02 05:01:57 +08:00
/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
2017-04-08 06:11:42 +08:00
/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */
2014-02-10 09:10:30 +08:00
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
# ifndef PORTAL_H
# define PORTAL_H
# include "scene/3d/visual_instance.h"
/**
@ author Juan Linietsky < reduzio @ gmail . com >
*/
/* Portal Logic:
If a portal is placed next ( very close to ) a similar , opposing portal , they automatically connect ,
otherwise , a portal connects to the parent room
*/
2017-08-26 11:40:45 +08:00
//this will be redone and replaced by area portals, left for reference since a new class with this name will have to exist and want to reuse the gizmos
#if 0
2014-02-10 09:10:30 +08:00
class Portal : public VisualInstance {
2017-01-03 10:03:46 +08:00
GDCLASS ( Portal , VisualInstance ) ;
2016-03-09 07:00:52 +08:00
2014-02-10 09:10:30 +08:00
RID portal ;
2016-10-04 03:33:42 +08:00
Vector < Point2 > shape ;
2016-03-09 07:00:52 +08:00
2014-02-10 09:10:30 +08:00
bool enabled ;
float disable_distance ;
Color disabled_color ;
float connect_range ;
2016-03-09 07:00:52 +08:00
2017-01-11 11:52:51 +08:00
Rect3 aabb ;
2014-02-10 09:10:30 +08:00
protected :
2017-03-05 23:44:50 +08:00
bool _set ( const StringName & p_name , const Variant & p_value ) ;
bool _get ( const StringName & p_name , Variant & r_ret ) const ;
void _get_property_list ( List < PropertyInfo > * p_list ) const ;
2016-03-09 07:00:52 +08:00
2014-02-10 09:10:30 +08:00
static void _bind_methods ( ) ;
2016-03-09 07:00:52 +08:00
2014-02-10 09:10:30 +08:00
public :
2017-01-11 11:52:51 +08:00
virtual Rect3 get_aabb ( ) const ;
2017-01-08 05:25:37 +08:00
virtual PoolVector < Face3 > get_faces ( uint32_t p_usage_flags ) const ;
2014-02-10 09:10:30 +08:00
void set_enabled ( bool p_enabled ) ;
bool is_enabled ( ) const ;
void set_disable_distance ( float p_distance ) ;
float get_disable_distance ( ) const ;
2017-03-05 23:44:50 +08:00
void set_disabled_color ( const Color & p_disabled_color ) ;
2014-02-10 09:10:30 +08:00
Color get_disabled_color ( ) const ;
2017-03-05 23:44:50 +08:00
void set_shape ( const Vector < Point2 > & p_shape ) ;
2014-02-10 09:10:30 +08:00
Vector < Point2 > get_shape ( ) const ;
void set_connect_range ( float p_range ) ;
float get_connect_range ( ) const ;
Portal ( ) ;
~ Portal ( ) ;
} ;
# endif
2017-08-26 11:40:45 +08:00
# endif