static void Main(string[] args) { string turfDm = @"/turf/"; foreach (var filePath in Directory.EnumerateFiles(FolderPath, "*.dmi", SearchOption.TopDirectoryOnly)) { var basePath = Path.GetFileNameWithoutExtension(filePath); using (var newDMI = new DMIFile(filePath)) { turfDm += string.Empty + Environment.NewLine; turfDm += $@" /turf/{basePath.ckey()}/ icon = '{Path.GetFileName(filePath)}'"; foreach (var state in newDMI.States) { var stateName = state.Name.ckey(); if (string.IsNullOrEmpty(state.Name) == false) { turfDm += $@" {stateName}/ icon_state = ""{state.Name}"" density = 0"; } } } } File.WriteAllText(FolderPath + "turf.dm", turfDm); }
public void AnimationOfBarsignsConstructsCorrectly() { using var fs = System.IO.File.OpenWrite(@"Data/Output/thegreytide.gif"); using var file = new DMIFile(@"Data/Input/barsigns.dmi"); var toTest = file.States.First(x => x.Name == "thegreytide"); toTest.SaveAnimatedGIF(fs, StateDirection.South); }
public void AnimationOfSingularityConstructsCorrectly() { using var fs = System.IO.File.OpenWrite(@"Data/Output/singularity_s11.gif"); using var file = new DMIFile(@"Data/Input/352x352.dmi"); var toTest = file.States.First(x => x.Name == "singularity_s11"); toTest.SaveAnimatedGIF(fs, StateDirection.South); }
public void CanWriteAnimations() { using var file = new DMIFile(@"Data/Input/animal.dmi"); var toTest = file.States.First(x => x.Name == "mushroom"); for (StateDirection dir = StateDirection.South; dir != StateDirection.SouthEast; dir++) { using var fs = System.IO.File.OpenWrite($@"Data/Output/mushroom_gif_{dir}.gif"); toTest.SaveAnimatedGIF(fs, dir); } }
public void CanMergeDMIs() { using var newDMI = new DMIFile(32, 32); using (var firstFile = new DMIFile(@"Data/Input/centcom.dmi")) using (var secondFile = new DMIFile(@"Data/Input/misc.dmi")) { newDMI.ImportStates(firstFile); newDMI.ImportStates(secondFile); } newDMI.Save(@"Data/Output/merged.dmi"); }
public void CanReadDirectionDepth() { using var file = new DMIFile(@"Data/Input/animal.dmi"); // Arrange var bat = file.States.First(x => x.Name == "bat"); var carp = file.States.First(x => x.Name == "carp"); var rareFrogDead = file.States.First(x => x.Name == "rare_frog_dead"); // Assert Assert.Equal(DirectionDepth.Four, bat.DirectionDepth); Assert.Equal(DirectionDepth.Four, carp.DirectionDepth); Assert.Equal(DirectionDepth.One, rareFrogDead.DirectionDepth); }
public static void ShouldRemoveStateMetadata() { using var file = new DMIFile(@"Data/Input/turf_analysis.dmi"); // Arrange var mdCount = file.Metadata.States.Count; var stateToRemove = file.States.Last(); // Act var result = file.RemoveState(stateToRemove); // Assert Assert.True(result); Assert.Equal(mdCount - 1, file.Metadata.States.Count); }
public void CanCreateDMIFromImages() { using var newDMI = new DMIFile(32, 32); var sourceData = new List <string>() { "sord", "sordvert", "steve32" }; foreach (var source in sourceData) { var img = Image.Load <Rgba32>($@"Data/Input/SourceImages/{source}.png"); var newState = new DMIState(source, DirectionDepth.One, 1, 32, 32); newState.SetFrame(img, 0); newDMI.AddState(newState); } newDMI.Save(@"Data/Output/minecraft.dmi"); }
static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Invalid arguments. Please supply 1 argument, the path of your repository"); return; } string repoDirectory = args[0]; // Print some stuff Console.WriteLine("DMI-Search by AffectedArc07"); Console.WriteLine("Searches all DMIs in all repo folders (" + repoDirectory + ") for a specific state."); // Ask what they want Console.Write("Enter search term: "); string searchTerm = Console.ReadLine(); // Now search string[] allFiles = Directory.GetFiles(repoDirectory, "*.dmi", SearchOption.AllDirectories); Console.WriteLine(allFiles.Length + " DMI files found. Searching all files for the icon state \"" + searchTerm + "\"."); Int16 matches = 0; foreach (string fileName in allFiles) { try { using (DMIFile dmi = new DMIFile(fileName)) { foreach (DMIState state in dmi.States) { if (state.Name == searchTerm) { matches += 1; Console.WriteLine("MATCH FOUND: State \"" + state.Name + "\" found in file \"" + fileName + "\"."); } } } } catch { continue; } } Console.WriteLine("Total matches found: " + matches); Console.Write("Press enter to close "); Console.ReadLine(); }
public void CanChangeDMIDepths() { using var newDMI = new DMIFile(32, 32); // Create state var img = Image.Load <Rgba32>($@"Data/Input/SourceImages/steve32.png"); var newState = new DMIState("steve32", DirectionDepth.One, 1, 32, 32); newState.SetFrame(img, 0); newDMI.AddState(newState); // Modifying state newDMI.States.First().SetDirectionDepth(DirectionDepth.Four); newDMI.States.First().SetFrameCount(10); // Check new states Assert.Equal(DirectionDepth.Four, newDMI.States.First().DirectionDepth); Assert.Equal(10, newDMI.States.First().Frames); // Cannot save Assert.False(newDMI.CanSave()); }
public void AirMeterDMIStateCount() { using var file = new DMIFile(@"Data/Input/air_meter.dmi"); Assert.Equal(16, file.States.Count); }
public void AnimalDMIStateCount() { using var file = new DMIFile(@"Data/Input/animal.dmi"); Assert.Equal(149, file.States.Count); }
public void GoonTurfAnalysisDMIStateCount() { using var file = new DMIFile(@"Data/Input/turf_analysis_goon.dmi"); Assert.Equal(16, file.States.Count); }
public void SpaceDragonDMIStateCount() { using var file = new DMIFile(@"Data/Input/spacedragon.dmi"); Assert.Equal(2, file.States.Count); }
public void LightingDMIStateCount() { using var file = new DMIFile(@"Data/Input/lighting.dmi"); Assert.Equal(3, file.States.Count); }
public void AtmosTestingDMIStateCount() { using var file = new DMIFile(@"Data/Input/atmos_testing.dmi"); Assert.Equal(5, file.States.Count); }
public void CanWriteDMIFile() { using var file = new DMIFile(@"Data/Input/air_meter.dmi"); file.Save(@"Data/Output/air_meter_temp.dmi"); }
public void CanSortDMIFile() { using var file = new DMIFile(@"Data/Input/animal.dmi"); file.SortStates(); file.Save(@"Data/Output/animal_sorted_alphabetically.dmi"); }