Add class StructureTerminal.

This commit is contained in:
Kirill Kirilenko 2022-04-19 20:20:03 +03:00
parent b249748d28
commit d47489b38e
3 changed files with 61 additions and 0 deletions

View file

@ -0,0 +1,28 @@
#ifndef SCREEPS_STRUCTURE_TERMINAL_HPP
#define SCREEPS_STRUCTURE_TERMINAL_HPP
#include "OwnedStructure.hpp"
#include "Store.hpp"
#include <optional>
namespace Screeps {
class StructureTerminal : public OwnedStructure
{
public:
explicit StructureTerminal(JS::Value value);
int cooldown() const;
Store store() const;
int send(const std::string& resourceType,
int amount,
const std::string& destination,
std::optional<std::string> description = std::nullopt);
};
} // namespace Screeps
#endif // SCREEPS_STRUCTURE_TERMINAL_HPP

View file

@ -19,6 +19,7 @@
#include "StructureRoad.hpp" #include "StructureRoad.hpp"
#include "StructureSpawn.hpp" #include "StructureSpawn.hpp"
#include "StructureStorage.hpp" #include "StructureStorage.hpp"
#include "StructureTerminal.hpp"
#include "StructureTower.hpp" #include "StructureTower.hpp"
#include "StructureWall.hpp" #include "StructureWall.hpp"
@ -88,6 +89,8 @@ std::unique_ptr<RoomObject> createRoomObject(JS::Value object)
return std::make_unique<StructureStorage>(std::move(object)); return std::make_unique<StructureStorage>(std::move(object));
else if (type == Screeps::STRUCTURE_EXTRACTOR) else if (type == Screeps::STRUCTURE_EXTRACTOR)
return std::make_unique<StructureExtractor>(std::move(object)); return std::make_unique<StructureExtractor>(std::move(object));
else if (type == Screeps::STRUCTURE_TERMINAL)
return std::make_unique<StructureTerminal>(std::move(object));
else else
return nullptr; return nullptr;
} }

30
src/StructureTerminal.cpp Normal file
View file

@ -0,0 +1,30 @@
#include "StructureTerminal.hpp"
namespace Screeps {
StructureTerminal::StructureTerminal(JS::Value value) : OwnedStructure(std::move(value))
{
}
int StructureTerminal::cooldown() const
{
return value()["cooldown"].as<int>();
}
Store StructureTerminal::store() const
{
return Store(value()["store"]);
}
int StructureTerminal::send(const std::string& resourceType,
int amount,
const std::string& destination,
std::optional<std::string> description)
{
if (description)
return value().call<int>("send", resourceType, amount, destination, description);
else
return value().call<int>("send", resourceType, amount, destination);
}
} // namespace Screeps