public static void Initialize() { if (inited) { return; } if (!Directory.Exists(fileroot)) { Directory.CreateDirectory(fileroot); } if (!File.Exists(getOutputItemPath(imgdumpin))) { // clear folder Directory.Delete(fileroot); Directory.CreateDirectory(fileroot); // copy files over byte[] imgdump = ((TextAsset)Resources.Load(resourceroot + "/" + imgdumpin)).bytes; byte[] imgheader = ((TextAsset)Resources.Load(resourceroot + "/" + imgheaderin)).bytes; byte[] imgpointer = ((TextAsset)Resources.Load(resourceroot + "/" + imgpointerin)).bytes; File.WriteAllBytes(getOutputItemPath(imgdumpin), imgdump); File.WriteAllBytes(getOutputItemPath(imgheaderin), imgheader); File.WriteAllBytes(getOutputItemPath(imgpointerin), imgpointer); } sp = new SpriteParser(getOutputItemPath(imgdumpin), getOutputItemPath(imgheaderin), getOutputItemPath(imgpointerin)); inited = true; }
public void ShouldReadSpriteSheetFile() { string rawFile = Helpers.Helpers.LoadFile(@"Player04.png.meta"); SpriteSheetData spriteSheetData = SpriteParser.Parse(rawFile); spriteSheetData.FileFormatVersion.Should().Be("2"); spriteSheetData.FileGuid.Should().Be("9a3cf21915996f441b213e88de546e32"); }
public void ShouldMapSpriteNames() { string rawFile = Helpers.Helpers.LoadFile(@"Player04.png.meta"); SpriteSheetData spriteSheetData = SpriteParser.Parse(rawFile); spriteSheetData.NamesMap.Should().HaveCount(66); spriteSheetData.NamesMap["PL04_Left_Walk0"].Should().Be("21300000"); spriteSheetData.NamesMap["PL04_DownRight_Walk0"].Should().Be("21300022"); }
public void InitialiseFor(string internalName, UI_VillagerSelect caller, SpriteParser sp) { this.internalName = internalName; root = caller; SelectButton.onClick.AddListener(delegate { SelectMe(); }); VillagerName.text = GameInfo.Strings.GetVillager(internalName); ImageToPutGuyOn.texture = SpriteBehaviour.PullTextureFromParser(sp, internalName); }
public void ShouldPopulatePivot() { string rawFile = Helpers.Helpers.LoadFile(@"Player04.png.meta"); SpriteSheetData spriteSheetData = SpriteParser.Parse(rawFile); SpriteData sd = spriteSheetData.SpritesMap["PL04_Left_Walk0"]; sd.Pivot.X.Should().Be(0.5f); sd.Pivot.Y.Should().Be(0); }
public void ShouldGetAnimationFramesATTStab() { string rawFile = Helpers.Helpers.LoadFile(@"Player04.png.meta"); SpriteSheetData spriteSheetData = SpriteParser.Parse(rawFile); List <string> frames = spriteSheetData.GetAnimationFrames("PL04_UpLeft_ATTStab").ToList(); frames.Should().HaveCount(2); frames[0].Should().Be("PL04_UpLeft_ATTStab1"); frames[1].Should().Be("PL04_UpLeft_ATTStab2"); }
public static Texture2D PullTextureFromParser(SpriteParser parser, string itemName) { var items = parser.GetTexture(itemName); if (items != null) { return(items); } return(null); }
public void ShouldGetAnimationFramesDownRight() { string rawFile = Helpers.Helpers.LoadFile(@"Player04.png.meta"); SpriteSheetData spriteSheetData = SpriteParser.Parse(rawFile); List <string> frames = spriteSheetData.GetAnimationFrames("PL04_DownRight_Walk").ToList(); frames.Should().HaveCount(3); frames[0].Should().Be("PL04_DownRight_Walk0"); frames[1].Should().Be("PL04_DownRight_Walk1"); frames[2].Should().Be("PL04_DownRight_Walk2"); }
public static Texture2D PullTextureFromParser(SpriteParser parser, string itemName) { byte[] items = parser.GetPng(itemName); if (items != null) { Texture2D toRet = new Texture2D(2, 2); toRet.LoadImage(items); return(toRet); } return(null); }
public void ShouldPopulateRect() { string rawFile = Helpers.Helpers.LoadFile(@"Player04.png.meta"); SpriteSheetData spriteSheetData = SpriteParser.Parse(rawFile); SpriteData sd = spriteSheetData.SpritesMap["PL04_Left_Walk0"]; sd.Rect.X.Should().Be(5); sd.Rect.Y.Should().Be(473); sd.Rect.Width.Should().Be(10); sd.Rect.Height.Should().Be(35); }
public void ShouldCreateSprite() { string rawFile = Helpers.Helpers.LoadFile(@"Player04.png.meta"); SpriteSheetData spriteSheetData = SpriteParser.Parse(rawFile); spriteSheetData.SpritesMap.Should().HaveCount(64); SpriteData sd = spriteSheetData.SpritesMap["PL04_Left_Walk0"]; sd.Name.Should().Be("PL04_Left_Walk0"); sd.SpriteID.Should().Be("2f9a5b012f5af2747902bba879ef1838"); sd.Alignment.Should().Be(7); sd = spriteSheetData.SpritesMap["PL04_DownLeft_ATTSwipe1"]; sd.Name.Should().Be("PL04_DownLeft_ATTSwipe1"); sd.SpriteID.Should().Be("a358f9531f7322f4881de90b59bd397d"); sd.Alignment.Should().Be(9); }
// tools private void checkAndLoadSpriteDump() { string dir = Path.GetDirectoryName(VillagerPath); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } if (!File.Exists(VillagerPath)) { byte[] byteDump = ((TextAsset)Resources.Load("SpriteLoading/" + VillagerFilename)).bytes; byte[] byteHeader = ((TextAsset)Resources.Load("SpriteLoading/" + VillagerFilenameHeader)).bytes; File.WriteAllBytes(VillagerPath, byteDump); File.WriteAllBytes(VillagerHeaderPath, byteHeader); } villagerSprites = new SpriteParser(VillagerPath, VillagerHeaderPath); }
public void Init(Action onAccept, Action onEndCancel, SpriteParser villParser) { endGood = onAccept; endBad = onEndCancel; villagerParser = villParser; ButtonPrefab.gameObject.SetActive(false); SelectedVillagerName.text = "No villager selected"; LastSelectedVillager = string.Empty; gameObject.SetActive(true); VillagerAcceptText.text = "Send villager (none selected)"; VillagerAcceptButton.interactable = false; SearchField.onValueChanged.AddListener(delegate { updateShownButtons(SearchField.text); }); if (initialized) { return; } var villagerNameLang = new Dictionary <string, string>(GameInfo.Strings.VillagerMap).OrderBy(x => x.Value); var villagerPhraseMap = GameInfo.Strings.VillagerPhrase; spawnedButtons = new List <UI_VillagerSelectionButton>(); foreach (var villager in villagerNameLang) { if (!villagerPhraseMap.ContainsKey(villager.Key)) // make sure this is a villager we can get and not a special npc { continue; } UI_VillagerSelectionButton ins = Instantiate(ButtonPrefab.gameObject).GetComponent <UI_VillagerSelectionButton>(); ins.transform.parent = ButtonPrefab.transform.parent; ins.transform.localScale = ButtonPrefab.transform.localScale; ins.InitialiseFor(villager.Key, this, villagerParser); ins.gameObject.SetActive(true); spawnedButtons.Add(ins); } NothingFoundText.SetActive(false); initialized = true; }
public override void LoadContent() { loadEntities(); loadAttacks(); // Load Terrain Texture2D TerrainSpriteSheet = Content.Load <Texture2D>("Terrain/Terrain"); Texture2D[] TerrainTexs = new Texture2D[TerrainSpriteSheet.Width / TileMap.SPRITE_SIZE]; for (int i = 0; i < TerrainTexs.Length; i++) { TerrainTexs[i] = SpriteParser.ParseSpriteSheet(TerrainSpriteSheet, i, TileMap.SPRITE_SIZE); } sprTerrains = new Dictionary <TerrainSpriteId, Texture2D>(); sprTerrains.Add(TerrainSpriteId.None, null); sprTerrains.Add(TerrainSpriteId.Stone_Wall, TerrainTexs[0]); sprTerrains.Add(TerrainSpriteId.Stone2_Wall, TerrainTexs[1]); sprTerrains.Add(TerrainSpriteId.Door, TerrainTexs[2]); sprTerrains.Add(TerrainSpriteId.EmptyMagicWall, TerrainTexs[7]); sprTerrains.Add(TerrainSpriteId.ClosedChest, TerrainTexs[8]); sprTerrains.Add(TerrainSpriteId.OpenChest, TerrainTexs[9]); sprTerrains.Add(TerrainSpriteId.IronDoor, TerrainTexs[10]); sprTerrains.Add(TerrainSpriteId.Stairs, TerrainTexs[11]); sprTerrains.Add(TerrainSpriteId.Stairs_Flip, SpriteParser.Flip(TerrainTexs[11])); Animations = new Dictionary <Animation, Sprite>(); Animations.Add(Animation.RedSpiral, new Sprite(new Texture2D[] { TerrainTexs[3], TerrainTexs[4], TerrainTexs[5], TerrainTexs[6] }, 4, 100)); // Load GUI sprGUI = new Dictionary <GUISpriteId, Texture2D>(); sprGUI.Add(GUISpriteId.Blocking, Content.Load <Texture2D>("GUI/Blocking")); sprGUI.Add(GUISpriteId.Ducking, Content.Load <Texture2D>("GUI/Crouching")); sprGUI.Add(GUISpriteId.Standing, Content.Load <Texture2D>("GUI/Standing")); sprBackground = Content.Load <Texture2D>("Terrain/cave1_background"); // Load Items Texture2D ItemSpriteSheet = Content.Load <Texture2D>("Items/Items"); Texture2D[] ItemTexs = new Texture2D[ItemSpriteSheet.Width / Item.SIZE]; for (int i = 0; i < ItemTexs.Length; i++) { ItemTexs[i] = SpriteParser.ParseSpriteSheet(ItemSpriteSheet, i, Item.SIZE); } Items = new Dictionary <ItemId, Item>(); Items.Add(ItemId.None, null); Items.Add(ItemId.Key, new Item(ItemId.Key, "Door Key", ItemTexs[0], ItemEvents.NewRoom)); Items.Add(ItemId.SmallPotion, new Item(ItemId.SmallPotion, "Small Potion", ItemTexs[1], ItemEvents.UseSmallPotion)); Items.Add(ItemId.Gold, new Item(ItemId.Gold, "Gold", ItemTexs[2], ItemEvents.NoAction, true)); // Load Armour Texture2D ArmourSpriteSheet = Content.Load <Texture2D>("Armour/Armour"); Texture2D[,] ArmourTexs = new Texture2D[ArmourSpriteSheet.Height / TileMap.SPRITE_SIZE, ArmourSpriteSheet.Width / TileMap.SPRITE_SIZE]; for (int h = 0; h < ArmourTexs.GetLength(0); h++) { for (int w = 0; w < ArmourTexs.GetLength(1); w++) { ArmourTexs[h, w] = SpriteParser.ParseSpriteSheet(ArmourSpriteSheet, w, h, TileMap.SPRITE_SIZE); } } Armours = new Dictionary <ItemId, Armour>(); Armours.Add(ItemId.BronzeHead, new Armour(ArmourTexs[0, 0], ArmourTexs[0, 3], "Bronze Helm", ItemId.BronzeHead, ArmourParts.Head, 0.075f, true)); Armours.Add(ItemId.BronzeBody, new Armour(ArmourTexs[0, 1], ArmourTexs[0, 4], "Bronze Body", ItemId.BronzeBody, ArmourParts.Body, 0.075f, true)); Armours.Add(ItemId.BronzeLegs, new Armour(ArmourTexs[0, 2], ArmourTexs[0, 5], "Bronze Legs", ItemId.BronzeLegs, ArmourParts.Legs, 0.075f, true)); Armours.Add(ItemId.IronHead, new Armour(ArmourTexs[1, 0], ArmourTexs[1, 3], "Iron Helm", ItemId.IronHead, ArmourParts.Head, 0.150f, true)); Armours.Add(ItemId.IronBody, new Armour(ArmourTexs[1, 1], ArmourTexs[1, 4], "Iron Body", ItemId.IronBody, ArmourParts.Body, 0.150f, true)); Armours.Add(ItemId.IronLegs, new Armour(ArmourTexs[1, 2], ArmourTexs[1, 5], "Iron Legs", ItemId.IronLegs, ArmourParts.Legs, 0.150f, true)); }
private static void Client_RawMessageRecieved(object s, ChatSharp.Events.RawMessageEventArgs e) { //Plugin.Log(e.Message); try { if (e.Message.StartsWith("@")) { string[] parts = e.Message.Split(new char[] { ' ' }, 2); string message = parts[1]; Dictionary <string, string> messageComponents = parts[0].Substring(1).Split(';').ToList().ToDictionary(x => x.Substring(0, x.IndexOf('=')), y => y.Substring(y.IndexOf('=') + 1)); if (System.Text.RegularExpressions.Regex.IsMatch(message, ":.*!.*@.*.tmi.twitch.tv")) { string msgSender = message.Substring(1, message.IndexOf('!') - 1); string msgPrefix = $":{msgSender}!{msgSender}@{msgSender}.tmi.twitch.tv "; if (message.StartsWith(msgPrefix)) { List <string> msgArray = message.Replace(msgPrefix, "").Split(new char[] { ' ' }, 3).ToList(); switch (msgArray[0]) { case "PRIVMSG": // Grab the info we care about from the current message MessageInfo messageInfo = GetMessageInfo(msgSender, messageComponents); // Remove the : from the beginning of the msg msgArray[2] = msgArray[2].Substring(1); // Parse any emotes in the message, download them, then queue it for rendering SpriteParser.Parse(new ChatMessage(Utilities.StripHTML(msgArray[2]), messageInfo), _chatHandler); break; } } } else { if (message.Contains("ROOMSTATE")) { Plugin.TwitchChannelID = messageComponents["room-id"]; Plugin.Log($"Channel room-id: {Plugin.TwitchChannelID}"); } else if (message.Contains("CLEARCHAT")) { _chatHandler.OnUserTimedOut(messageComponents["target-user-id"]); } else if (message.Contains("USERNOTICE")) { switch (messageComponents["msg-id"]) { case "sub": case "resub": case "subgift": MessageInfo messageInfo = GetMessageInfo(String.Empty, messageComponents); string newMsg = messageComponents["system-msg"].Replace("\\s", " "); SpriteParser.Parse(new ChatMessage($"<b>{newMsg.Substring(newMsg.IndexOf(" ") + 1)}</b>", messageInfo), _chatHandler); break; } } } } } catch (Exception) { //Plugin.Log($"Caught exception \"{ex.Message}\" from {ex.Source}"); //Plugin.Log($"Stack trace: {ex.StackTrace}"); } }
public void Awake() { this.spriteParser = new SpriteParser ("Characters/Sprites/Player-Sprite"); this.animator = gameObject.GetComponent<Animator> (); this.audioSource = GetComponent<AudioSource> (); }
private void InportFromUnity(object sender, EventArgs e) { string filename = @"C:\GitHub\eWolfPixel\Pixel\eWolfUnity3DParser.UnitTests\TestingData\Player04.png"; SpriteSheetData spriteSheetData = SpriteParser.ParseLoad(filename + ".meta"); // spin up a bitmap reader to read the image and create pixelSets for each sprite. PixelSet image = ServiceLocator.Instance.GetService <IPixelLoader>().LoadImage(filename); Dictionary <string, PixelSet> frames = image.CutFrames(spriteSheetData); ProjectHolder projectHolder = ServiceLocator.Instance.GetService <ProjectHolder>(); AnimationDetails ad = new AnimationDetails($"Walk", "\\Root\\Char1"); projectHolder.Items.Add(ad); ad.PostLoadFix(); // PL04_DownLeft_Walk0 List <PixelSet> leftWalk = new List <PixelSet>(); leftWalk.Add(frames["PL04_Left_Walk0"]); leftWalk.Add(frames["PL04_Left_Walk1"]); leftWalk.Add(frames["PL04_Left_Walk0"]); leftWalk.Add(frames["PL04_Left_Walk2"]); AddFrameToAnim(Directions8Way.Left, ad, leftWalk); List <PixelSet> downLeftWalk = new List <PixelSet>(); downLeftWalk.Add(frames["PL04_DownLeft_Walk0"]); downLeftWalk.Add(frames["PL04_DownLeft_Walk1"]); downLeftWalk.Add(frames["PL04_DownLeft_Walk0"]); downLeftWalk.Add(frames["PL04_DownLeft_Walk2"]); AddFrameToAnim(Directions8Way.DownLeft, ad, downLeftWalk); List <PixelSet> downRightWalk = new List <PixelSet>(); downRightWalk.Add(frames["PL04_DownRight_Walk0"]); downRightWalk.Add(frames["PL04_DownRight_Walk1"]); downRightWalk.Add(frames["PL04_DownRight_Walk0"]); downRightWalk.Add(frames["PL04_DownRight_Walk2"]); AddFrameToAnim(Directions8Way.DownRight, ad, downRightWalk); List <PixelSet> rightWalk = new List <PixelSet>(); rightWalk.Add(frames["PL04_Right_Walk0"]); rightWalk.Add(frames["PL04_Right_Walk1"]); rightWalk.Add(frames["PL04_Right_Walk0"]); rightWalk.Add(frames["PL04_Right_Walk2"]); AddFrameToAnim(Directions8Way.Right, ad, rightWalk); List <PixelSet> upLeftWalk = new List <PixelSet>(); upLeftWalk.Add(frames["PL04_UpLeft_Walk0"]); upLeftWalk.Add(frames["PL04_UpLeft_Walk1"]); upLeftWalk.Add(frames["PL04_UpLeft_Walk0"]); upLeftWalk.Add(frames["PL04_UpLeft_Walk2"]); AddFrameToAnim(Directions8Way.UpLeft, ad, upLeftWalk); List <PixelSet> upWalk = new List <PixelSet>(); upWalk.Add(frames["PL04_Up_Walk0"]); upWalk.Add(frames["PL04_Up_Walk1"]); upWalk.Add(frames["PL04_Up_Walk0"]); upWalk.Add(frames["PL04_Up_Walk2"]); AddFrameToAnim(Directions8Way.Up, ad, upWalk); List <PixelSet> downWalk = new List <PixelSet>(); downWalk.Add(frames["PL04_Down_Walk0"]); downWalk.Add(frames["PL04_Down_Walk1"]); downWalk.Add(frames["PL04_Down_Walk0"]); downWalk.Add(frames["PL04_Down_Walk2"]); AddFrameToAnim(Directions8Way.Down, ad, downWalk); List <PixelSet> upRightWalk = new List <PixelSet>(); upRightWalk.Add(frames["PL04_UpRight_Walk0"]); upRightWalk.Add(frames["PL04_UpRight_Walk1"]); upRightWalk.Add(frames["PL04_UpRight_Walk0"]); upRightWalk.Add(frames["PL04_UpRight_Walk2"]); AddFrameToAnim(Directions8Way.UpRight, ad, upRightWalk); ad.Save(projectHolder.ProjectPath); }