1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #include "BlockTypeGeneratorRule.h"
- #include "Game.h"
- BlockTypeGeneratorRule::BlockTypeGeneratorRule(
- Framework::JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
- : GeneratorRule(zConfig, zMemory)
- {
- blockType = BlockType::getTypeId(
- zConfig->asObject()->zValue("blockType")->asString()->getString());
- }
- Framework::Either<Block*, int> BlockTypeGeneratorRule::createBlock(
- int x, int y, int z, int dimensionId)
- {
- return blockType;
- }
- BlockTypeGeneratorRuleFactory::BlockTypeGeneratorRuleFactory()
- : ReferenceCounter()
- {}
- GeneratorRule* BlockTypeGeneratorRuleFactory::createRule(
- Framework::JSON::JSONValue* zConfig, JExpressionMemory* zMemory)
- {
- return new BlockTypeGeneratorRule(zConfig, zMemory);
- }
- Framework::JSON::Validator::JSONValidator*
- BlockTypeGeneratorRuleFactory::getValidator()
- {
- 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 GeneratorRule::addToValidator(
- Framework::JSON::Validator::JSONValidator::buildForObject()
- ->withRequiredString("type")
- ->withExactMatch("blockType")
- ->finishString()
- ->withRequiredString("blockType")
- ->whichIsOneOf(blockTypeNames)
- ->finishString())
- ->finishObject();
- }
|