public override void AssignBlueprint(BlueprintPart blueprintPart) { this.blueprintPart = blueprintPart; // Convert the blueprint into a physical thing this.rollerPart = new RollerPart(this); this.rollerPart.SetParent(transform); if (requireNodes) { // Create the relevant nodes for this object switch (blueprintPart.GetTerrainBlueprintType()) { case TerrainBlueprintType.StraightLine: nodes = new ObjectNode[2]; nodes[0] = CreateNode(blueprintPart.GetNodePosition(0), 0); nodes[1] = CreateNode(blueprintPart.GetNodePosition(1), 0); break; case TerrainBlueprintType.CurveBezierCubic: nodes = new ObjectNode[2]; nodes[0] = CreateNode(blueprintPart.GetNodePosition(0), 1); nodes[0].MoveControl(0, blueprintPart.GetNodePosition(1)); nodes[1] = CreateNode(blueprintPart.GetNodePosition(3), 1); nodes[1].MoveControl(0, blueprintPart.GetNodePosition(2)); break; case TerrainBlueprintType.CurveCircularArc: nodes = new ObjectNode[2]; nodes[0] = CreateNode(blueprintPart.GetNodePosition(0), 1); nodes[0].MoveControl(0, blueprintPart.GetNodePosition(1)); nodes[1] = CreateNode(blueprintPart.GetNodePosition(2), 0); break; } } // Create the terrain with the correct segment lengths this.Regenerate(); }
private void CreatePart() { // Create the blank blueprint switch (this.terrainInfo.terrainBlueprintType) { case TerrainBlueprintType.StraightLine: part = new StraightLine(); break; case TerrainBlueprintType.CurveBezierCubic: part = new CurveBezierCubic(); break; case TerrainBlueprintType.CurveCircularArc: part = new CurveCircularArc(); break; default: Debug.LogError("Unknown part [" + part + "]. Defaulting to StraightLine."); goto case TerrainBlueprintType.StraightLine; } nodes = new Vector3[part.GetNodeAmount()]; }
public abstract void AssignBlueprint(BlueprintPart blueprintPart);
public TerrainPart(BlueprintPart blueprintPart) { this.blueprintPart = blueprintPart; }