Esempio n. 1
0
    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");
        }
Esempio n. 4
0
    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");
        }
Esempio n. 7
0
    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);
        }
Esempio n. 12
0
    // 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);
    }
Esempio n. 13
0
    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;
    }
Esempio n. 14
0
        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));
        }
Esempio n. 15
0
        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);
        }