Ejemplo n.º 1
0
void TileMap::set_tile_origin(TileOrigin p_tile_origin) {

	_clear_quadrants();
	tile_origin=p_tile_origin;
	_recreate_quadrants();
	emit_signal("settings_changed");
}
Ejemplo n.º 2
0
void TileMap::set_mode(Mode p_mode) {

	_clear_quadrants();
	mode=p_mode;
	_recreate_quadrants();
	emit_signal("settings_changed");
}
Ejemplo n.º 3
0
void TileMap::set_half_offset(HalfOffset p_half_offset) {

	_clear_quadrants();
	half_offset=p_half_offset;
	_recreate_quadrants();
	emit_signal("settings_changed");
}
Ejemplo n.º 4
0
void TileMap::set_custom_transform(const Matrix32& p_xform) {

	_clear_quadrants();
	custom_transform=p_xform;
	_recreate_quadrants();
	emit_signal("settings_changed");

}
Ejemplo n.º 5
0
void TileMap::set_quadrant_size(int p_size) {

	ERR_FAIL_COND(p_size<1);

	_clear_quadrants();
	quadrant_size=p_size;
	_recreate_quadrants();

}
Ejemplo n.º 6
0
void TileMap::set_y_sort_mode(bool p_enable) {

	_clear_quadrants();
	y_sort_mode=p_enable;
	VS::get_singleton()->canvas_item_set_sort_children_by_y(get_canvas_item(),y_sort_mode);
	_recreate_quadrants();
	emit_signal("settings_changed");

}
Ejemplo n.º 7
0
void TileMap::set_quadrant_size(int p_size) {

	ERR_FAIL_COND(p_size<1);

	_clear_quadrants();
	quadrant_size=p_size;
	_recreate_quadrants();
	emit_signal("settings_changed");

}
Ejemplo n.º 8
0
void TileMap::set_cell_size(Size2 p_size) {

	ERR_FAIL_COND(p_size.x<1 || p_size.y<1);

	_clear_quadrants();
	cell_size=p_size;
	_recreate_quadrants();
	emit_signal("settings_changed");


}
Ejemplo n.º 9
0
void TileMap::set_tileset(const Ref<TileSet>& p_tileset) {

	if (tile_set.is_valid())
		tile_set->disconnect("changed",this,"_recreate_quadrants");

	_clear_quadrants();
	tile_set=p_tileset;

	if (tile_set.is_valid())
		tile_set->connect("changed",this,"_recreate_quadrants");
	else
		clear();

	_recreate_quadrants();

}
Ejemplo n.º 10
0
void TileMap::_recreate_quadrants() {

	_clear_quadrants();

	for (Map<PosKey,Cell>::Element *E=tile_map.front();E;E=E->next()) {

		PosKey qk(E->key().x/quadrant_size,E->key().y/quadrant_size);

		Map<PosKey,Quadrant>::Element *Q=quadrant_map.find(qk);
		if (!Q) {
			Q=_create_quadrant(qk);
			dirty_quadrant_list.add(&Q->get().dirty_list);
		}

		Q->get().cells.insert(E->key());

	}
}
Ejemplo n.º 11
0
void TileMap::clear() {

	_clear_quadrants();
	tile_map.clear();
}
Ejemplo n.º 12
0
void TileMap::set_collision_use_kinematic(bool p_use_kinematic) {

	_clear_quadrants();
	use_kinematic=p_use_kinematic;
	_recreate_quadrants();
}