Esempio n. 1
0
        private static void BuildLayerInstances(LDtkDataLevel level, LDtkProjectAssets assets)
        {
            _layerSortingOrder = 0;

            foreach (LDtkDataLayer layer in level.layerInstances)
            {
                BuildLayerInstance(layer, assets);
            }
        }
Esempio n. 2
0
 private static void BuildLayerInstance(LDtkDataLayer layer, LDtkProjectAssets assets)
 {
     if (layer.IsIntGridLayer)
     {
         BuildIntGridLayer(layer, assets.CollisionValues, assets.TilemapPrefab);
     }
     if (layer.IsAutoTilesLayer)
     {
         BuildTilesetLayer(layer, layer.autoLayerTiles, assets.Tilesets, assets.TilemapPrefab);
     }
     if (layer.IsGridTilesLayer)
     {
         BuildTilesetLayer(layer, layer.gridTiles, assets.Tilesets, assets.TilemapPrefab);
     }
     if (layer.IsEntityInstancesLayer)
     {
         BuildEntityInstanceLayer(layer, assets.EntityInstances);
     }
 }
Esempio n. 3
0
 private static void BuildProcess(LDtkDataProject project, LDtkDataLevel level, LDtkProjectAssets assets)
 {
     InitStaticTools(project);
     BuildLayerInstances(level, assets);
     DisposeStaticTools();
 }
Esempio n. 4
0
        public static void BuildLevel(LDtkDataProject project, LDtkLevelIdentifier levelToBuild, LDtkProjectAssets assets)
        {
            if (assets == null)
            {
                Debug.LogError("LDtk: ProjectAssets object is null; not building level.");
                return;
            }
            if (levelToBuild == null)
            {
                Debug.LogError("LDtk: LDtkLevelIdentifier object is null; not building level.");
                return;
            }

            if (!LDtkUnityTilesetBuilder.ValidateTilemapPrefabRequirements(assets.TilemapPrefab))
            {
                return;
            }


            bool success = GetProjectLevelByID(project.levels, levelToBuild, out LDtkDataLevel level);

            if (!success)
            {
                return;
            }

            string debugLvlName = $"\"{level.identifier}\"";
            //Debug.Log($"LDtk: Building level: {debugLvlName}");
            Stopwatch levelBuildTimer = Stopwatch.StartNew();

            BuildProcess(project, level, assets);

            levelBuildTimer.Stop();
            double ms = levelBuildTimer.ElapsedMilliseconds;

            Debug.Log($"LDtk: Built level {debugLvlName} in {ms}ms ({ms/1000}s)");

            OnLevelBuilt?.Invoke(level);
        }