Antkeeper
0.0.1
src
engine
entity
clone.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2023 Christopher J. Howard
3
*
4
* This file is part of Antkeeper source code.
5
*
6
* Antkeeper source code is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* Antkeeper source code is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#include <
engine/entity/clone.hpp
>
21
22
namespace
entity
{
23
24
void
clone
(
entity::registry
&
registry
,
entity::id
source,
entity::id
destination)
25
{
26
for
(
auto
&& it:
registry
.storage())
27
{
28
if
(
auto
& storage = it.second; storage.contains(source))
29
{
30
storage.emplace(destination, storage.get(source));
31
}
32
}
33
}
34
35
}
// namespace entity
clone.hpp
entity
Definition:
archetype.cpp:23
entity::clone
void clone(entity::registry ®istry, entity::id source, entity::id destination)
Clones all the components of an entity.
Definition:
clone.cpp:24
entity::registry
entt::registry registry
Component registry type.
Definition:
registry.hpp:28
entity::id
entt::entity id
Entity ID type.
Definition:
id.hpp:28