TopDownMovementRuntimeBehavior::TopDownMovementRuntimeBehavior( const gd::SerializerElement& behaviorContent) : RuntimeBehavior(behaviorContent), allowDiagonals(true), acceleration(400), deceleration(800), maxSpeed(200), angularMaxSpeed(180), rotateObject(true), angleOffset(0), xVelocity(0), yVelocity(0), angularSpeed(0), angle(0), ignoreDefaultControls(false), leftKey(false), rightKey(false), upKey(false), downKey(false) { allowDiagonals = behaviorContent.GetBoolAttribute("allowDiagonals"); acceleration = behaviorContent.GetDoubleAttribute("acceleration"); deceleration = behaviorContent.GetDoubleAttribute("deceleration"); maxSpeed = behaviorContent.GetDoubleAttribute("maxSpeed"); angularMaxSpeed = behaviorContent.GetDoubleAttribute("angularMaxSpeed"); rotateObject = behaviorContent.GetBoolAttribute("rotateObject"); angleOffset = behaviorContent.GetDoubleAttribute("angleOffset"); ignoreDefaultControls = behaviorContent.GetBoolAttribute("ignoreDefaultControls"); }
void CppCodeEvent::UnserializeFrom(gd::Project & project, const gd::SerializerElement & element) { functionToCall = element.GetStringAttribute("functionToCall", "", "FunctionToCall"); functionNameAutogenerated = element.GetBoolAttribute("functionNameAutogenerated", false, "FunctionNameAutogenerated"), inlineCode = element.GetStringAttribute("inlineCode", "", "InlineCode"); associatedGDManagedSourceFile = element.GetStringAttribute("associatedGDManagedSourceFile", "", "AssociatedGDManagedSourceFile"); passSceneAsParameter = element.GetBoolAttribute("passSceneAsParameter", false, "PassSceneAsParameter"); passObjectListAsParameter = element.GetBoolAttribute("passObjectListAsParameter", false, "PassObjectListAsParameter"); objectToPassAsParameter = element.GetStringAttribute("objectToPassAsParameter", "", "ObjectToPassAsParameter"); codeDisplayedInEditor = element.GetBoolAttribute("codeDisplayedInEditor", true, "CodeDisplayedInEditor"); displayedName = element.GetStringAttribute("displayedName", "", "DisplayedName"); lastChangeTimeStamp = element.GetIntAttribute("lastChangeTimeStamp"); includeFiles.clear(); gd::SerializerElement & includesElement = element.GetChild("includes", 0, "Includes"); includesElement.ConsiderAsArrayOf("include", "Include"); for ( std::size_t i = 0;i < includesElement.GetChildrenCount();++i) includeFiles.push_back(includesElement.GetChild(i).GetValue().GetString()); dependencies.clear(); gd::SerializerElement & dependenciesElement = element.GetChild("dependencies", 0, "Dependencies"); dependenciesElement.ConsiderAsArrayOf("dependency", "Dependency"); for ( std::size_t i = 0;i < dependenciesElement.GetChildrenCount();++i) dependencies.push_back(dependenciesElement.GetChild(i).GetStringAttribute("sourceFile")); }
void PhysicsBehavior::UnserializeFrom(const gd::SerializerElement & element) { dynamic = element.GetBoolAttribute("dynamic"); fixedRotation = element.GetBoolAttribute("fixedRotation"); isBullet = element.GetBoolAttribute("isBullet"); massDensity = element.GetDoubleAttribute("massDensity"); averageFriction = element.GetDoubleAttribute("averageFriction"); averageRestitution = element.GetDoubleAttribute("averageRestitution"); linearDamping = element.GetDoubleAttribute("linearDamping"); angularDamping = element.GetDoubleAttribute("angularDamping"); gd::String shape = element.GetStringAttribute("shapeType"); if ( shape == "Circle" ) shapeType = Circle; else if (shape == "CustomPolygon") shapeType = CustomPolygon; else shapeType = Box; if(element.GetStringAttribute("positioning", "OnOrigin") == "OnOrigin") polygonPositioning = OnOrigin; else polygonPositioning = OnCenter; automaticResizing = element.GetBoolAttribute("autoResizing", false); polygonWidth = element.GetDoubleAttribute("polygonWidth"); polygonHeight = element.GetDoubleAttribute("polygonHeight"); gd::String coordsStr = element.GetStringAttribute("coordsList"); SetPolygonCoords(PhysicsBehavior::GetCoordsVectorFromString(coordsStr, '/', ';')); }
void NetworkBehavior::UnserializeFrom(const gd::SerializerElement & element) { sending = element.GetBoolAttribute("sending"); xPosition = element.GetBoolAttribute("xPosition"); yPosition = element.GetBoolAttribute("yPosition"); angle = element.GetBoolAttribute("angle"); width = element.GetBoolAttribute("width"); height = element.GetBoolAttribute("height"); dataPrefix = element.GetStringAttribute("dataPrefix"); }
void ParticleEmitterObject::DoUnserializeFrom( gd::Project& project, const gd::SerializerElement& element) { ParticleEmitterBase::UnserializeParticleEmitterBaseFrom(element); #if defined(GD_IDE_ONLY) particleEditionSimpleMode = element.GetBoolAttribute("particleEditionSimpleMode"); emissionEditionSimpleMode = element.GetBoolAttribute("emissionEditionSimpleMode"); gravityEditionSimpleMode = element.GetBoolAttribute("gravityEditionSimpleMode"); #endif }
void PathBehavior::UnserializeFrom(const gd::SerializerElement & element) { UnserializePathsFrom(element.GetChild("paths", 0, "Paths")); ChangeCurrentPath(element.GetStringAttribute("currentPath")); speed = element.GetDoubleAttribute("speed"); offset.x = element.GetDoubleAttribute("offsetX"); offset.y = element.GetDoubleAttribute("offsetY"); angleOffset = element.GetDoubleAttribute("angleOffset"); reverseAtEnd = element.GetBoolAttribute("reverseAtEnd"); stopAtEnd = element.GetBoolAttribute("stopAtEnd"); followAngle = element.GetBoolAttribute("followAngle"); }
void PlatformerObjectBehavior::UnserializeFrom(const gd::SerializerElement & element) { gravity = element.GetDoubleAttribute("gravity"); maxFallingSpeed = element.GetDoubleAttribute("maxFallingSpeed"); acceleration = element.GetDoubleAttribute("acceleration"); deceleration = element.GetDoubleAttribute("deceleration"); maxSpeed = element.GetDoubleAttribute("maxSpeed"); jumpSpeed = element.GetDoubleAttribute("jumpSpeed"); ignoreDefaultControls = element.GetBoolAttribute("ignoreDefaultControls"); SetSlopeMaxAngle(element.GetDoubleAttribute("slopeMaxAngle")); canGrabPlatforms = element.GetBoolAttribute("canGrabPlatforms", false); yGrabOffset = element.GetDoubleAttribute("yGrabOffset"); xGrabTolerance = element.GetDoubleAttribute("xGrabTolerance", 10); }
void TextObject::DoUnserializeFrom(gd::Project & project, const gd::SerializerElement & element) { SetString(element.GetChild("string", 0,"String").GetValue().GetString()); SetFontFilename(element.GetChild("font", 0,"Font").GetValue().GetString()); SetCharacterSize(element.GetChild("characterSize", 0, "CharacterSize").GetValue().GetInt()); SetColor(element.GetChild("color", 0,"Color").GetIntAttribute("r", 255), element.GetChild("color", 0,"Color").GetIntAttribute("g", 255), element.GetChild("color", 0,"Color").GetIntAttribute("b", 255)); smoothed = element.GetBoolAttribute("smoothed"); bold = element.GetBoolAttribute("bold"); italic = element.GetBoolAttribute("italic"); underlined = element.GetBoolAttribute("underlined"); }
void PathfindingBehavior::UnserializeFrom(const gd::SerializerElement & element) { allowDiagonals = element.GetBoolAttribute("allowDiagonals"); acceleration = element.GetDoubleAttribute("acceleration"); maxSpeed = element.GetDoubleAttribute("maxSpeed"); angularMaxSpeed = element.GetDoubleAttribute("angularMaxSpeed"); rotateObject = element.GetBoolAttribute("rotateObject"); angleOffset = element.GetDoubleAttribute("angleOffset"); extraBorder = element.GetDoubleAttribute("extraBorder"); { int value = element.GetIntAttribute("cellWidth", 0); if (value > 0) cellWidth = value; } { int value = element.GetIntAttribute("cellHeight", 0); if (value > 0) cellHeight = value; } }
void PlatformerObjectAutomatism::UnserializeFrom(const gd::SerializerElement & element) { gravity = element.GetDoubleAttribute("gravity"); maxFallingSpeed = element.GetDoubleAttribute("maxFallingSpeed"); acceleration = element.GetDoubleAttribute("acceleration"); deceleration = element.GetDoubleAttribute("deceleration"); maxSpeed = element.GetDoubleAttribute("maxSpeed"); jumpSpeed = element.GetDoubleAttribute("jumpSpeed"); ignoreDefaultControls = element.GetBoolAttribute("ignoreDefaultControls"); SetSlopeMaxAngle(element.GetDoubleAttribute("slopeMaxAngle")); }
void Direction::UnserializeFrom(const gd::SerializerElement & element) { SetTimeBetweenFrames(element.GetDoubleAttribute("timeBetweenFrames", 1, "tempsEntre")); SetLoop(element.GetBoolAttribute("looping", false, "boucle")); const gd::SerializerElement & spritesElement = element.GetChild("sprites", 0, "Sprites"); spritesElement.ConsiderAsArrayOf("sprite", "Sprite"); for (unsigned int i = 0; i < spritesElement.GetChildrenCount(); ++i) { const gd::SerializerElement & spriteElement = spritesElement.GetChild(i); Sprite sprite; sprite.SetImageName(spriteElement.GetStringAttribute("image")); OpenPointsSprites(sprite.GetAllNonDefaultPoints(), spriteElement.GetChild("points", 0, "Points")); OpenPoint(sprite.GetOrigin(), spriteElement.GetChild("originPoint" , 0, "PointOrigine")); OpenPoint(sprite.GetCenter(), spriteElement.GetChild("centerPoint" , 0, "PointCentre")); sprite.SetDefaultCenterPoint(spriteElement.GetChild("centerPoint" , 0, "PointCentre").GetBoolAttribute("automatic", true)); if (spriteElement.HasChild("CustomCollisionMask")) sprite.SetCollisionMaskAutomatic(!spriteElement.GetChild("CustomCollisionMask").GetBoolAttribute("custom", false)); else sprite.SetCollisionMaskAutomatic(!spriteElement.GetBoolAttribute("hasCustomCollisionMask", false)); std::vector<Polygon2d> mask; const gd::SerializerElement & collisionMaskElement = spriteElement.GetChild("customCollisionMask", 0, "CustomCollisionMask"); collisionMaskElement.ConsiderAsArrayOf("polygon", "Polygon"); for (unsigned int j = 0; j < collisionMaskElement.GetChildrenCount(); ++j) { Polygon2d polygon; const gd::SerializerElement & polygonElement = collisionMaskElement.GetChild(j); polygonElement.ConsiderAsArrayOf("vertice", "Point"); for (unsigned int k = 0; k < polygonElement.GetChildrenCount(); ++k) { const gd::SerializerElement & verticeElement = polygonElement.GetChild(k); polygon.vertices.push_back(sf::Vector2f(verticeElement.GetDoubleAttribute("x"), verticeElement.GetDoubleAttribute("y"))); } mask.push_back(polygon); } sprite.SetCustomCollisionMask(mask); sprites.push_back(sprite); } };
void TileHitbox::UnserializeFrom(const gd::SerializerElement &element, sf::Vector2f defaultTileSize) { collidable = element.GetBoolAttribute("collidable", true); hitbox.vertices.clear(); gd::String defaultPolygonStr = "0;0|" + gd::String::From(defaultTileSize.x) + ";0|" + gd::String::From(defaultTileSize.x) + ";" + gd::String::From(defaultTileSize.y) + "|" + "0;" + gd::String::From(defaultTileSize.y); gd::String polygonStr = element.GetStringAttribute("polygon", defaultPolygonStr); std::vector<gd::String> vertices = polygonStr.Split(U'|'); for(std::vector<gd::String>::iterator vertexIt = vertices.begin(); vertexIt != vertices.end(); vertexIt++) { hitbox.vertices.push_back(sf::Vector2f(vertexIt->Split(U';')[0].To<float>(), vertexIt->Split(U';')[1].To<float>() )); } }
void LightObject::DoUnserializeFrom(gd::Project & project, const gd::SerializerElement & element) { SetIntensity(element.GetIntAttribute("intensity", 255)); SetRadius(element.GetIntAttribute("radius", 180)); SetQuality(element.GetIntAttribute("quality", 16)); { int r = element.GetIntAttribute("colorR", 255); int g = element.GetIntAttribute("colorG", 255); int b = element.GetIntAttribute("colorB", 255); SetColor(sf::Color(r,g,b)); } globalLight = element.GetBoolAttribute("globalLight", false); { int r = element.GetIntAttribute("globalColorR", 255); int g = element.GetIntAttribute("globalColorG", 255); int b = element.GetIntAttribute("globalColorB", 255); int a = element.GetIntAttribute("globalColorA", 255); globalLightColor = sf::Color(r,g,b,a); } }
AnchorRuntimeBehavior::AnchorRuntimeBehavior( const gd::SerializerElement& behaviorContent) : RuntimeBehavior(behaviorContent), m_relativeToOriginalWindowSize(true), m_leftEdgeAnchor(ANCHOR_HORIZONTAL_NONE), m_rightEdgeAnchor(ANCHOR_HORIZONTAL_NONE), m_topEdgeAnchor(ANCHOR_VERTICAL_NONE), m_bottomEdgeAnchor(ANCHOR_VERTICAL_NONE), m_invalidDistances(true), m_leftEdgeDistance(0.f), m_rightEdgeDistance(0.f), m_topEdgeDistance(0.f), m_bottomEdgeDistance(0.f) { m_relativeToOriginalWindowSize = behaviorContent.GetBoolAttribute("relativeToOriginalWindowSize"); m_leftEdgeAnchor = static_cast<HorizontalAnchor>( behaviorContent.GetIntAttribute("leftEdgeAnchor")); m_rightEdgeAnchor = static_cast<HorizontalAnchor>( behaviorContent.GetIntAttribute("rightEdgeAnchor")); m_topEdgeAnchor = static_cast<VerticalAnchor>( behaviorContent.GetIntAttribute("topEdgeAnchor")); m_bottomEdgeAnchor = static_cast<VerticalAnchor>( behaviorContent.GetIntAttribute("bottomEdgeAnchor")); }
void PathfindingObstacleAutomatism::UnserializeFrom(const gd::SerializerElement & element) { impassable = element.GetBoolAttribute("impassable"); cost = element.GetDoubleAttribute("cost"); }
void ParticleEmitterBase::UnserializeParticleEmitterBaseFrom( const gd::SerializerElement& element) { tank = element.GetDoubleAttribute("tank"); flow = element.GetDoubleAttribute("flow"); emitterForceMin = element.GetDoubleAttribute("emitterForceMin"); emitterForceMax = element.GetDoubleAttribute("emitterForceMax"); emitterXDirection = element.GetDoubleAttribute("emitterXDirection"); emitterYDirection = element.GetDoubleAttribute("emitterYDirection"); emitterZDirection = element.GetDoubleAttribute("emitterZDirection"); emitterAngleA = element.GetDoubleAttribute("emitterAngleA"); emitterAngleB = element.GetDoubleAttribute("emitterAngleB"); zoneRadius = element.GetDoubleAttribute("zoneRadius"); particleGravityX = element.GetDoubleAttribute("particleGravityX"); particleGravityY = element.GetDoubleAttribute("particleGravityY"); particleGravityZ = element.GetDoubleAttribute("particleGravityZ"); friction = element.GetDoubleAttribute("friction"); particleLifeTimeMin = element.GetDoubleAttribute("particleLifeTimeMin"); particleLifeTimeMax = element.GetDoubleAttribute("particleLifeTimeMax"); particleRed1 = element.GetDoubleAttribute("particleRed1"); particleRed2 = element.GetDoubleAttribute("particleRed2"); particleGreen1 = element.GetDoubleAttribute("particleGreen1"); particleGreen2 = element.GetDoubleAttribute("particleGreen2"); particleBlue1 = element.GetDoubleAttribute("particleBlue1"); particleBlue2 = element.GetDoubleAttribute("particleBlue2"); particleAlpha1 = element.GetDoubleAttribute("particleAlpha1"); particleAlpha2 = element.GetDoubleAttribute("particleAlpha2"); rendererParam1 = element.GetDoubleAttribute("rendererParam1"); rendererParam2 = element.GetDoubleAttribute("rendererParam2"); particleSize1 = element.GetDoubleAttribute("particleSize1"); particleSize2 = element.GetDoubleAttribute("particleSize2"); particleAngle1 = element.GetDoubleAttribute("particleAngle1"); particleAngle2 = element.GetDoubleAttribute("particleAngle2"); particleAlphaRandomness1 = element.GetDoubleAttribute("particleAlphaRandomness1"); particleAlphaRandomness2 = element.GetDoubleAttribute("particleAlphaRandomness2"); particleSizeRandomness1 = element.GetDoubleAttribute("particleSizeRandomness1"); particleSizeRandomness2 = element.GetDoubleAttribute("particleSizeRandomness2"); particleAngleRandomness1 = element.GetDoubleAttribute("particleAngleRandomness1"); particleAngleRandomness2 = element.GetDoubleAttribute("particleAngleRandomness2"); additive = element.GetBoolAttribute("additive"); destroyWhenNoParticles = element.GetBoolAttribute("destroyWhenNoParticles", false); textureParticleName = element.GetStringAttribute("textureParticleName"); maxParticleNb = element.GetIntAttribute("maxParticleNb", 5000); { gd::String result = element.GetStringAttribute("rendererType"); if (result == "Line") rendererType = Line; else if (result == "Quad") rendererType = Quad; else rendererType = Point; } { gd::String result = element.GetStringAttribute("redParam"); if (result == "Mutable") redParam = Mutable; else if (result == "Random") redParam = Random; else redParam = Enabled; } { gd::String result = element.GetStringAttribute("greenParam"); if (result == "Mutable") greenParam = Mutable; else if (result == "Random") greenParam = Random; else greenParam = Enabled; } { gd::String result = element.GetStringAttribute("blueParam"); if (result == "Mutable") blueParam = Mutable; else if (result == "Random") blueParam = Random; else blueParam = Enabled; } { gd::String result = element.GetStringAttribute("alphaParam"); if (result == "Mutable") alphaParam = Mutable; else if (result == "Random") alphaParam = Random; else alphaParam = Enabled; } { gd::String result = element.GetStringAttribute("sizeParam"); if (result == "Mutable") sizeParam = Mutable; else if (result == "Random") sizeParam = Random; else sizeParam = Nothing; } { gd::String result = element.GetStringAttribute("angleParam"); if (result == "Mutable") angleParam = Mutable; else if (result == "Random") angleParam = Random; else angleParam = Nothing; } }