using System;
using System.Collections.Generic;
using UnityEngine;

public class Plan
{
    public string Name { get; set; }
    public List<Node> Nodes { get; set; }
}

public class Node
{
    public string Id { get; set; }
    public string Name { get; set; }
}

public class NodeFile
{
    public Vector3 PivotPos { get; set; }
    public CameraData MainCamera { get; set; }
    public List<FloorNode> Floors { get; set; }
    public List<PowerNode> Powers { get; set; }
    public string ImageUrl { get; set; }
    public string ImageButtonName { get; set; }
}
public class CameraData
{
    public Vector3 Position { get; set; }
    public Vector3 Rotation { get; set; }
    public float Distance { get; set; }
    public Vector2 XY { get; set; }
}
[Serializable]
public class FloorNode
{
    public string Id { get; set; }
    public bool IsOn { get; set; }
}
[Serializable]
public class PowerNode
{
    //Active
    public bool isActive { get; set; }
    //Name
    public string Name { get; set; }
    //Id
    public string Id { get; set; }
    //Parent
    public string Parent { get; set; }
    //Position
    public Vector3 Position { get; set; }
    //Rotation
    public Vector3 Rotation { get; set; }
    public Vector3 Scale { get; set; }
    public AttributeNode Attribute { get; set; }
    public HoseNode Hose { get; set; }
    public ZhaoMingCheNode ZhaoMingChe { get; set; }
    public TruckNode Truck { get; set; }
    public VerticesNode Vertices { get; set; }
    public LadderNode Ladder { get; set; }
}
public class AttributeNode
{
    public string Name { get; set; }
    public string Task { get; set; }
    public string Remarks { get; set; }
}
public class HoseNode
{
    public float HoseValue;
    public Vector3 HoseRotation;
}
public class ZhaoMingCheNode
{
    public Vector3 ArmRotation { get; set; }
    public Vector3 LightRotation { get; set; }
}
public class VerticesNode
{
    public List<Vector3> MeshVertices { get; set; }
}
public class LadderNode
{
    public Vector3 Position1 { get; set; }
    public Vector3 Position2 { get; set; }
}

public class TruckNode 
{
    public float HoseValue { get; set; }
    public Vector3 Part1Pos { get; set; }
    public Vector3 Part2Pos { get; set; }
    public Vector3 Part3Pos { get; set; }
    public Vector3 Part4Pos { get; set; }
    public Vector3 Part5Pos { get; set; }
    public Vector3 Part6Pos { get; set; }
    public Vector3 Part7Pos { get; set; }
    public Vector3 Part8Pos { get; set; }
    public Vector3 Part9Pos { get; set; }

    public Vector3 Part1Rot { get; set; }
    public Vector3 Part2Rot { get; set; }
    public Vector3 Part3Rot { get; set; }
    public Vector3 Part4Rot { get; set; }
    public Vector3 Part5Rot { get; set; }
    public Vector3 Part6Rot { get; set; }
    public Vector3 Part7Rot { get; set; }
    public Vector3 Part8Rot { get; set; }
    public Vector3 Part9Rot { get; set; }
}