コード例 #1
0
 private void ApplyDataToHarvestable(HarvestableData data)
 {
     if (data.isHarvested)
     {
         harvestable.isHarvested = true;
     }
 }
コード例 #2
0
 public BuildingData(HarvestableData _data)
 {
     initialQuantity    = _data.initialQuantity;
     spriteId           = _data.spriteId;
     respawnTime        = _data.respawnTime;
     requiredLevel      = _data.requiredLevel;
     initialProcessTime = _data.initialProcessTime;
 }
コード例 #3
0
    private HarvestableData PackageHarvestableData()
    {
        //Debug.Log("packaging harvestable");
        HarvestableData data = new HarvestableData();

        data.isHarvested = harvestable.isHarvested;
        return(data);
    }
コード例 #4
0
    //called from DataManager to save this object
    public override string SaveData()
    {
        base.SaveData();
        //Debug.Log("saving harvestable");
        HarvestableData data = PackageHarvestableData();

        SaveDataToFile(data, tempDirectory + GetFileName());
        return(GetFileName());
    }
コード例 #5
0
 void OnLoadBuildingData(BuildingData _dataLoaded)
 {
     dataToSave = new BuildingData(_dataLoaded);
     if (dataToSave.spriteId != null)
     {
         pickedIcon = AssetsBundlesManager.GetAssetBundle(BundleName.CommonIcons).LoadAsset <Sprite>(dataToSave.spriteId);
     }
     Repaint();
 }
コード例 #6
0
 void OnLoadTreeData(TreeData _dataLoaded)
 {
     dataToSave = new TreeData(_dataLoaded);
     if (dataToSave.spriteId != null)
     {
         pickedIcon = AssetsBundlesManager.GetAssetBundle(BundleName.WoodIcons).LoadAsset <Sprite>(dataToSave.spriteId);
     }
     Repaint();
 }
コード例 #7
0
 public HarvestableData(HarvestableData _data) : base(_data)
 {
     initialQuantity    = _data.initialQuantity;
     spriteId           = _data.spriteId;
     respawnTime        = _data.respawnTime;
     requiredLevel      = _data.requiredLevel;
     initialProcessTime = _data.initialProcessTime;
     name        = _data.name;
     description = _data.description;
     sellPrice   = _data.sellPrice;
 }
コード例 #8
0
    private void OnGUI()
    {
        GUILayout.Label("Data creator", windowTitleStyle);
        currentType = GUILayout.Toolbar(currentType, toolbarNames);
        if (currentType != oldType)
        {
            switch (currentType)
            {
            case 0:
                dataToSave = new FishData(dataToSave);
                break;

            case 1:
                dataToSave = new TreeData(dataToSave);
                break;

            case 2:
                dataToSave = new BuildingData(dataToSave);
                break;

            default:
                break;
            }
        }

        oldType = currentType;

        GUILayout.Space(10.0f);
        dataToSave.id          = EditorGUILayout.TextField("Id", dataToSave.id);
        dataToSave.name        = EditorGUILayout.TextField("Name", dataToSave.name);
        dataToSave.description = EditorGUILayout.TextField("description", dataToSave.description);

        dataToSave.initialQuantity = EditorGUILayout.IntSlider("Initial quantity on collect", dataToSave.initialQuantity, 0, 2000);
        GUILayout.BeginHorizontal();
        {
            pickedIcon          = (Sprite)EditorGUILayout.ObjectField("Icon", pickedIcon, typeof(Sprite), false);
            dataToSave.spriteId = (pickedIcon != null) ? pickedIcon.name : "";
            GUILayout.FlexibleSpace();
        }
        GUILayout.EndHorizontal();
        dataToSave.respawnTime        = EditorGUILayout.Slider("Respawn time", dataToSave.respawnTime, 0, 2000);
        dataToSave.requiredLevel      = EditorGUILayout.IntSlider("Required level to collect", dataToSave.requiredLevel, 0, GlobalDesigner.jobsMaxLevel);
        dataToSave.initialProcessTime = EditorGUILayout.Slider("Time to collect", dataToSave.initialProcessTime, 0, 2000);

        dataToSave.sellPrice = EditorGUILayout.IntField("Sell price", dataToSave.sellPrice);
        GUILayout.FlexibleSpace();
        DatabaseHandlerEditor("data", ResetData, SaveDataToDatabase, LoadData, RemoveDataFromDatabase, dataToSave, harvestableDataNames);
    }
コード例 #9
0
    static void Init()
    {
        DatabaseManager.Init();
        LoadDatabase();

        DataCreatorWindow window = (DataCreatorWindow)EditorWindow.GetWindow(typeof(DataCreatorWindow));

        window.minSize = new Vector2(400, 400);

        windowTitleStyle.alignment = TextAnchor.UpperCenter;
        windowTitleStyle.fontStyle = FontStyle.Bold;
        windowTitleStyle.fontSize  = 15;
        textStyle.alignment        = TextAnchor.MiddleCenter;
        textStyle.fontStyle        = FontStyle.Bold;

        errorTextStyle.normal.textColor = Color.red;
        dataToSave = new FishData() as HarvestableData;
        window.Show();
    }
コード例 #10
0
    void ResetData()
    {
        switch (currentType)
        {
        case 0:
            dataToSave = new FishData();
            break;

        case 1:
            dataToSave = new TreeData();
            break;

        case 2:
            dataToSave = new BuildingData();
            break;

        default:
            break;
        }
        pickedIcon = null;
    }
コード例 #11
0
    // Start is called before the first frame update
    void Start()
    {
        EntityManager   entityManager        = World.Active.EntityManager;
        EntityArchetype harvestableComponent = entityManager.CreateArchetype(
            typeof(HarvestableComponent),
            typeof(Translation),
            typeof(RenderMesh),
            typeof(LocalToWorld)
            );

        Tilemap tilemap = GetComponent <Tilemap>();

        foreach (var pos in tilemap.cellBounds.allPositionsWithin)
        {
            Vector3Int localPlace = new Vector3Int(pos.x, pos.y, pos.z);
            Vector3    place      = tilemap.CellToWorld(localPlace);
            if (tilemap.HasTile(localPlace))
            {
                TileBase tile = tilemap.GetTile(localPlace);

                Material tileMat    = new Material(Shader.Find("Unlit/Transparent"));
                Sprite   tileSprite = Resources.Load <Sprite>("Sprites/TileSprites/" + tile.name);
                tileMat.mainTexture = tileSprite.texture;

                int  width    = 1;
                int  height   = 1;
                Mesh tileMesh = new Mesh();
                // Setup vertices
                Vector3[] newVertices = new Vector3[4];
                float     halfHeight  = height * 0.5f;
                float     halfWidth   = width * 0.5f;
                newVertices [0] = new Vector3(-halfWidth, -halfHeight, 0);
                newVertices [1] = new Vector3(-halfWidth, halfHeight, 0);
                newVertices [2] = new Vector3(halfWidth, -halfHeight, 0);
                newVertices [3] = new Vector3(halfWidth, halfHeight, 0);

                // Setup UVs
                Vector2[] newUVs = new Vector2[newVertices.Length];
                newUVs [0] = new Vector2(0, 0);
                newUVs [1] = new Vector2(0, 1);
                newUVs [2] = new Vector2(1, 0);
                newUVs [3] = new Vector2(1, 1);

                // Setup triangles
                int[] newTriangles = new int[] { 0, 1, 2, 3, 2, 1 };

                // Setup normals
                Vector3[] newNormals = new Vector3[newVertices.Length];
                for (int i = 0; i < newNormals.Length; i++)
                {
                    newNormals [i] = Vector3.forward;
                }

                // Create quad
                tileMesh.vertices  = newVertices;
                tileMesh.uv        = newUVs;
                tileMesh.triangles = newTriangles;
                tileMesh.normals   = newNormals;

                Entity entity = entityManager.CreateEntity(harvestableComponent);
                entityManager.SetSharedComponentData(entity, new RenderMesh {
                    material = tileMat,
                    mesh     = tileMesh
                });

                // pivot of the sprite is center so we have to add 0.5 to x and y
                entityManager.SetComponentData(entity, new Translation {
                    Value = new float3(place.x + 0.5f, place.y + 0.5f, -1)
                });

                int             tileNo = int.Parse(tile.name.Substring(tile.name.LastIndexOf('_') + 1));
                HarvestableType type   = HarvestableData.getHarvestableType(tileNo);
                entityManager.SetComponentData(entity, new HarvestableComponent {
                    type            = type,
                    ressourceAmount = type.Equals(HarvestableType.WOOD) ? 50 : 20000
                });
            }
        }
        // delete all tiles because we replaced them with entities
        tilemap.ClearAllTiles();
    }
コード例 #12
0
 public InventoryItem(HarvestableData _itemData, int _quantity)
 {
     itemData = _itemData;
     quantity = _quantity;
 }
コード例 #13
0
 public InventoryItem(InventoryItem _data)
 {
     itemData = _data.itemData;
     quantity = _data.quantity;
 }