1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #include "BlockTypeGeneratorRule.h"
- #include "Game.h"
- BlockTypeGeneratorRule::BlockTypeGeneratorRule()
- : GeneratorRule(),
- blockType(0)
- {}
- Framework::Either<Block*, int> BlockTypeGeneratorRule::createBlock(
- int x, int y, int z, int dimensionId)
- {
- return blockType;
- }
- void BlockTypeGeneratorRule::setBlockTypeId(int blockType)
- {
- this->blockType = blockType;
- }
- int BlockTypeGeneratorRule::getBlockTypeId() const
- {
- return blockType;
- }
- BlockTypeGeneratorRuleFactory::BlockTypeGeneratorRuleFactory()
- : GeneratorRuleFactory()
- {}
- BlockTypeGeneratorRule* BlockTypeGeneratorRuleFactory::createValue(
- Framework::JSON::JSONObject* zJson) const
- {
- return new BlockTypeGeneratorRule();
- }
- void BlockTypeGeneratorRuleFactory::fromJson(
- BlockTypeGeneratorRule* zResult, Framework::JSON::JSONObject* zJson) const
- {
- zResult->setBlockTypeId(Game::INSTANCE->getBlockTypeId(
- zJson->zValue("blockType")->asString()->getString()));
- GeneratorRuleFactory::fromJson(zResult, zJson);
- }
- void BlockTypeGeneratorRuleFactory::toJson(
- BlockTypeGeneratorRule* zObject, Framework::JSON::JSONObject* zResult) const
- {
- zResult->addValue("blockType",
- new Framework::JSON::JSONString(
- Game::INSTANCE->zBlockType(zObject->getBlockTypeId())->getName()));
- GeneratorRuleFactory::toJson(zObject, zResult);
- }
- JSONObjectValidationBuilder* BlockTypeGeneratorRuleFactory::addToValidator(
- JSONObjectValidationBuilder* builder) const
- {
- Framework::RCArray<Framework::Text> blockTypeNames;
- for (int i = 0; i < Game::INSTANCE->getBlockTypeCount(); i++)
- {
- if (Game::INSTANCE->zBlockType(i))
- {
- blockTypeNames.add(
- new Framework::Text(Game::INSTANCE->zBlockType(i)->getName()));
- }
- }
- return GeneratorRuleFactory::addToValidator(
- builder->withRequiredString("blockType")
- ->whichIsOneOf(blockTypeNames)
- ->finishString());
- }
- Framework::Text BlockTypeGeneratorRuleFactory::getTypeToken() const
- {
- return "blockType";
- }
|