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 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 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 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 TileSet::UnserializeFrom(const gd::SerializerElement &element) { int serializationVersion = element.GetIntAttribute("version", 1); textureName = element.GetStringAttribute("textureName", ""); tileSize.x = element.GetIntAttribute("tileSizeX", 32); tileSize.y = element.GetIntAttribute("tileSizeY", 32); tileSpacing.x = element.GetIntAttribute("tileSpacingX", 0); tileSpacing.y = element.GetIntAttribute("tileSpacingY", 0); ResetHitboxes(); m_collidable.clear(); if(serializationVersion == 1) { if(element.HasChild("hitboxes")) { gd::SerializerElement &tilesElem = element.GetChild("hitboxes"); tilesElem.ConsiderAsArrayOf("tileHitbox"); for(int i = 0; i < tilesElem.GetChildrenCount("tileHitbox"); i++) { m_collidable.push_back(tilesElem.GetChild(i).GetBoolAttribute("collidable", true)); TileHitbox newHitbox; newHitbox.UnserializeFrom(tilesElem.GetChild(i), tileSize); if(newHitbox != TileHitbox::Rectangle(tileSize)) m_hitboxes[i] = newHitbox; } } } else if(serializationVersion == 2) { gd::SerializerElement &collidableElem = element.GetChild("collidable"); collidableElem.ConsiderAsArrayOf("tile"); for(int i = 0; i < collidableElem.GetChildrenCount("tile"); i++) { m_collidable.push_back(collidableElem.GetChild(i).GetBoolAttribute("collidable", true)); } gd::SerializerElement &hitboxesElem = element.GetChild("hitboxes"); hitboxesElem.ConsiderAsArrayOf("tileHitbox"); for(int i = 0; i < hitboxesElem.GetChildrenCount("tileHitbox"); i++) { m_hitboxes[hitboxesElem.GetChild(i).GetIntAttribute("tileId", -1)].UnserializeFrom(hitboxesElem.GetChild(i), tileSize); } } }
void TileHitbox::UnserializeFrom(const gd::SerializerElement &element, sf::Vector2f defaultTileSize) { 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 TileSet::UnserializeFrom(const gd::SerializerElement &element) { ResetHitboxes(); textureName = element.GetStringAttribute("textureName", ""); tileSize.x = element.GetIntAttribute("tileSizeX", 32); tileSize.y = element.GetIntAttribute("tileSizeY", 32); tileSpacing.x = element.GetIntAttribute("tileSpacingX", 0); tileSpacing.y = element.GetIntAttribute("tileSpacingY", 0); if (element.HasChild("hitboxes")) { gd::SerializerElement &tilesElem = element.GetChild("hitboxes"); tilesElem.ConsiderAsArrayOf("tileHitbox"); for(int i = 0; i < tilesElem.GetChildrenCount("tileHitbox"); i++) { TileHitbox newHitbox; newHitbox.UnserializeFrom(tilesElem.GetChild(i), tileSize); m_hitboxes.push_back(newHitbox); } } m_dirty = true; }
void TiledSpriteObject::DoUnserializeFrom(gd::Project & project, const gd::SerializerElement & element) { textureName = element.GetStringAttribute("texture"); width = element.GetDoubleAttribute("width", 128); height = element.GetDoubleAttribute("height", 128); }
void PlatformBehavior::UnserializeFrom(const gd::SerializerElement & element) { gd::String platformTypeStr = element.GetStringAttribute("platformType"); platformType = platformTypeStr == "Ladder" ? Ladder : (platformTypeStr == "Jumpthru" ? Jumpthru : NormalPlatform); }
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; } }
void OpenPoint(Point & point, const gd::SerializerElement & element) { point.SetName(element.GetStringAttribute("name", "", "nom")); point.SetX(element.GetDoubleAttribute("x", 0, "X")); point.SetY(element.GetDoubleAttribute("y", 0, "Y")); }