private static void InitStaticTools(LDtkDataProject project) { LDtkProviderTile.Init(); LDtkProviderTilesetSprite.Init(); LDtkProviderEnum.Init(); LDtkProviderUid.CacheUidData(project); LDtkProviderErrorIdentifiers.Init(); }
public void JsonDeserializeProject() { TextAsset jsonProject = TestJsonLoader.LoadJson(BASIC_PROJECT); Assert.NotNull(jsonProject, "Unsuccessful acquirement of json text asset"); //attempt deserializing entire project LDtkDataProject project = LDtkToolProjectLoader.LoadProject(jsonProject.text); }
public void GetLevelBounds() { const string lvlName = "Level"; TextAsset jsonProject = TestJsonLoader.LoadGenericProject(); LDtkDataProject project = LDtkToolProjectLoader.LoadProject(jsonProject.text); LDtkDataLevel level = project.levels.FirstOrDefault(p => p.identifier == lvlName); LDtkDataLayer layer = level.layerInstances.FirstOrDefault(p => p.IsIntGridLayer); Bounds bounds = layer.LayerUnitBounds; Debug.Log(bounds); }
public static void CacheUidData(LDtkDataProject project) { Database = new Dictionary <int, ILDtkUid>(); CacheLayerDefs(project.defs.layers); CacheEntityDefs(project.defs.entities); CacheUidData(project.defs.tilesets); CacheUidData(project.defs.enums); CacheUidData(project.defs.externalEnums); CacheUidData(project.levels); }
public static LDtkDataProject LoadProject(string json) { try { JsonSerializerSettings s = new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore, }; LDtkDataProject project = JsonConvert.DeserializeObject <LDtkDataProject>(json, s); return(project); } catch (Exception e) { Debug.LogError(e); throw; } }
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); }
private static void BuildProcess(LDtkDataProject project, LDtkDataLevel level, LDtkProjectAssets assets) { InitStaticTools(project); BuildLayerInstances(level, assets); DisposeStaticTools(); }
private void Start() { LDtkDataProject project = LDtkToolProjectLoader.LoadProject(_assetLDtkProject.text); LDtkLevelBuilder.BuildLevel(project, _levelToBuild, _projectAssets); }