private static bool ProcessArchives() { try { entries.Clear(); nameToEntry.Clear(); pathToEntry.Clear(); TextureManager.Clear(); TextureDefinitionManager.Clear(); SpriteManager.Clear(); DecorateManager.Clear(); foreach (IArchive archive in Archives) { Log.Info("Loading ", archive.Uri); // We want every entry to be tracked before processing any // definition files. foreach (IEntry entry in archive) { entries.Add(entry.Name, entry.Namespace, entry); nameToEntry[entry.Name] = entry; pathToEntry[entry.Path.ToString()] = entry; } foreach (IEntry entry in archive) { switch (entry.Name.String) { case "DECORATE": DecorateManager.HandleDefinitionsOrThrow(entry, archive); continue; case "PLAYPAL": TextureManager.TrackPalette(entry); continue; case "PNAMES": case "TEXTURE1": case "TEXTURE2": TextureDefinitionManager.TrackVanillaDefinition(entry); continue; } } TextureDefinitionManager.CompileAnyNewVanillaDefinitions(); } DecorateManager.AttachSpriteRotationsToFrames(); return(true); } catch (Exception e) { Log.Error($"Unexpected error when reading archive: {e.Message}"); return(false); } }
public Entity Spawn(int editorID, Vec3F position, BitAngle angle = default) { ActorDefinition definition = DecorateManager.Find(editorID); return(Spawn(definition, position, angle)); }
public Entity Spawn(UpperString type, Vec3F position, BitAngle angle = default) { ActorDefinition definition = DecorateManager.Find(type); return(Spawn(definition, position, angle)); }
// Use this for initialization public override void Start() { base.Start(); decorateManager = new DecorateManager( Trans ); }
private Optional <ActorDefinition> LookupActor(UpperString name) { Optional <ActorDefinition> parsedActor = nameToDefinition.Find(name); return(parsedActor ? parsedActor : DecorateManager.Find(name)); }