Skip to content

Commit

Permalink
feat: Dimension API
Browse files Browse the repository at this point in the history
  • Loading branch information
killcerr committed Jan 17, 2025
1 parent a61821b commit 2ef8de9
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 18 deletions.
19 changes: 19 additions & 0 deletions src/api/DimensionAPI.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#include "DimensionAPI.h"
#include "utils/Convert.h"

namespace jse {
ClassDefine<DimensionAPI> DimensionAPI::builder = defineClass<DimensionAPI>("Dimension")
.constructor(nullptr)
.instanceFunction("toString", &DimensionAPI::toString)
.instanceFunction("getName", &DimensionAPI::getName)
.instanceFunction("getType", &DimensionAPI::getType)
.instanceFunction("getLevel", &DimensionAPI::getLevel)
.instanceFunction("getBlockAt", &DimensionAPI::getBlockAt)
.build();
Local<Value> DimensionAPI::toString(Arguments const& /*value*/) { return ConvertToScriptX("<Dimension>"); }
Local<Value> DimensionAPI::getName(Arguments const& /*value*/) { return ConvertToScriptX(get()->getName()); }
Local<Value> DimensionAPI::getType(Arguments const& /*value*/) { return ConvertToScriptX(get()->getType()); }
Local<Value> DimensionAPI::getLevel(Arguments const& /*value*/) { return Local<Value>(); }
Local<Value> DimensionAPI::getBlockAt(Arguments const& /*value*/) { return Local<Value>(); }

} // namespace jse
29 changes: 29 additions & 0 deletions src/api/DimensionAPI.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once
#include "endstone/level/dimension.h"
#include "utils/Defines.h"
#include "utils/Using.h"


namespace jse {
class DimensionAPI : public ScriptClass {
endstone::Dimension* mDimension;

public:
explicit DimensionAPI(endstone::Dimension* dimension)
: ScriptClass(ScriptClass::ConstructFromCpp<DimensionAPI>{}),
mDimension(dimension) {}

static Local<Object> newDimensionAPI(endstone::Dimension* dimension) {
return (new DimensionAPI(dimension))->getScriptObject();
}
endstone::Dimension* get() { return mDimension; }

public:
METHODS(toString);
METHODS(getName);
METHODS(getType);
METHODS(getLevel);
METHODS(getBlockAt);
static ClassDefine<DimensionAPI> builder;
};
} // namespace jse
36 changes: 18 additions & 18 deletions src/api/permissions/PermissionAPI.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@

namespace jse {

ClassDefine<PermissionAPI> PermissionAPI::builder =
defineClass<PermissionAPI>("Permission")
.constructor(nullptr)
.instanceFunction("toString", &PermissionAPI::toString)
.instanceFunction("getName", &PermissionAPI::getName)
.instanceFunction("getChildren", &PermissionAPI::getChildren)
.instanceFunction("getDefault", &PermissionAPI::getDefault)
.instanceFunction("setDefault", &PermissionAPI::setDefault)
.instanceFunction("getDescription", &PermissionAPI::getDescription)
.instanceFunction("setDescription", &PermissionAPI::setDescription)
.instanceFunction("getPermissibles", &PermissionAPI::getPermissibles)
.instanceFunction("recalculatePermissibles", &PermissionAPI::recalculatePermissibles)
.instanceFunction("addParent", &PermissionAPI::addParent)
.instanceFunction("init", &PermissionAPI::init)
.build();


Local<Value> PermissionAPI::toString(Arguments const& /* args */) { return ConvertToScriptX("Permission"); }
ClassDefine<PermissionAPI> PermissionAPI::builder =
defineClass<PermissionAPI>("Permission")
.constructor(nullptr)
.instanceFunction("toString", &PermissionAPI::toString)
.instanceFunction("getName", &PermissionAPI::getName)
.instanceFunction("getChildren", &PermissionAPI::getChildren)
.instanceFunction("getDefault", &PermissionAPI::getDefault)
.instanceFunction("setDefault", &PermissionAPI::setDefault)
.instanceFunction("getDescription", &PermissionAPI::getDescription)
.instanceFunction("setDescription", &PermissionAPI::setDescription)
.instanceFunction("getPermissibles", &PermissionAPI::getPermissibles)
.instanceFunction("recalculatePermissibles", &PermissionAPI::recalculatePermissibles)
.instanceFunction("addParent", &PermissionAPI::addParent)
.instanceFunction("init", &PermissionAPI::init)
.build();


Local<Value> PermissionAPI::toString(Arguments const& /* args */) { return ConvertToScriptX("<Permission>"); }

Local<Value> PermissionAPI::getName(Arguments const& /* args */) {
try {
Expand Down

0 comments on commit 2ef8de9

Please sign in to comment.