Skip to content

Commit 84e7d5c

Browse files
committed
refactor: refactoring Item
1 parent 183fad6 commit 84e7d5c

File tree

4 files changed

+10
-11
lines changed

4 files changed

+10
-11
lines changed

src/legacy/api/CommandOriginAPI.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
#include <magic_enum.hpp>
1717

18-
1918
//////////////////// Class Definition ////////////////////
2019
ClassDefine<void> OriginTypeStaticBuilder = EnumDefineBuilder<CommandOriginType>::build("OriginType");
2120

@@ -39,7 +38,7 @@ ClassDefine<CommandOriginClass> CommandOriginClassBuilder =
3938

4039
CommandOriginClass::CommandOriginClass(CommandOrigin const* p)
4140
: ScriptClass(ScriptClass::ConstructFromCpp<CommandOriginClass>{}),
42-
ptr(p){};
41+
ptr(p) {};
4342

4443
Local<Object> CommandOriginClass::newCommandOrigin(CommandOrigin const* p) {
4544
auto newp = new CommandOriginClass(p);

src/legacy/api/EntityAPI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,7 @@ Local<Value> EntityClass::toItem(const Arguments& args) {
925925
if (!entity || !entity->hasCategory(ActorCategory::Item)) {
926926
return Local<Value>();
927927
} else {
928-
return ItemClass::newItem(&((ItemActor*)entity)->item(), false);
928+
return ItemClass::newItem(&static_cast<ItemActor*>(entity)->item(), false);
929929
}
930930
}
931931
CATCH("Fail in toItem!");

src/legacy/api/ItemAPI.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ ClassDefine<ItemClass> ItemClassBuilder = defineClass<ItemClass>("LLSE_Item")
7373

7474
ItemClass::ItemClass(ItemStack* p, bool isNew) : ScriptClass(ScriptClass::ConstructFromCpp<ItemClass>{}) {
7575
if (isNew) {
76-
item = std::unique_ptr<ItemStack>(p);
76+
item = std::shared_ptr<ItemStack>(p);
7777
} else {
7878
item = p;
7979
}
@@ -314,8 +314,8 @@ Local<Value> ItemClass::set(const Arguments& args) {
314314
if (!itemNew) return Local<Value>(); // Null
315315

316316
auto tag = itemNew->save();
317-
if (std::holds_alternative<std::unique_ptr<ItemStack>>(item)) {
318-
std::get<std::unique_ptr<ItemStack>>(item)->load(*tag);
317+
if (std::holds_alternative<std::shared_ptr<ItemStack>>(item)) {
318+
std::get<std::shared_ptr<ItemStack>>(item)->load(*tag);
319319
} else {
320320
std::get<ItemStack*>(item)->load(*tag);
321321
}

src/legacy/api/ItemAPI.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,25 @@ class ItemStack;
88

99
class ItemClass : public ScriptClass {
1010
private:
11-
std::variant<std::unique_ptr<ItemStack>, ItemStack*> item;
11+
std::variant<std::shared_ptr<ItemStack>, ItemStack*> item;
1212

1313
// Pre data
1414
std::string name, type;
1515
int id, count, aux;
1616

1717
public:
18-
explicit ItemClass(ItemStack* p, bool isNew);
18+
explicit ItemClass(ItemStack* p, bool isNew = false);
1919
void preloadData();
2020

2121
ItemStack* get() {
22-
if (std::holds_alternative<std::unique_ptr<ItemStack>>(item)) {
23-
return std::get<std::unique_ptr<ItemStack>>(item).get();
22+
if (std::holds_alternative<std::shared_ptr<ItemStack>>(item)) {
23+
return std::get<std::shared_ptr<ItemStack>>(item).get();
2424
} else {
2525
return std::get<ItemStack*>(item);
2626
}
2727
}
2828

29-
static Local<Object> newItem(ItemStack* p, bool isNew);
29+
static Local<Object> newItem(ItemStack* p, bool isNew = false);
3030
static ItemStack* extract(Local<Value> v);
3131
Local<Value> asPointer(const Arguments& args);
3232

0 commit comments

Comments
 (0)