Пример #1
0
        private void UpdateProjectileIndicator(bool updateProjectile = false, bool updateSprite = false)
        {
            double zoomMod = Preferences.Current.ZoomAmount;

            picProjectileIndicator.Left = (int)(((int)nudProjectileLocationX.Value + 8) * zoomMod);
            picProjectileIndicator.Top  = (int)(((int)nudProjectileLocationY.Value) * zoomMod);
            if (updateProjectile)
            {
                picProjectileIndicator.Image = picProjectile.Image?.Target?.Resize(zoomMod);
            }
            if (updateSprite)
            {
                PalettedImage attackEndSprite = (balBattleAnimations.Datas.Find(a => a.Name == "AttackRangeEnd") ?? (balBattleAnimations.Datas.Count > 0 ? balBattleAnimations.Datas[0] : null))?.Image;
                Image         target          = new Bitmap(40, 32);
                if (attackEndSprite != null)
                {
                    Graphics g = Graphics.FromImage(target);
                    g.DrawImage(attackEndSprite.Target, new PointF(8, 0));
                    g.Dispose();
                }
                pnlProjectilePos.BackgroundImage = target.Resize(zoomMod);
            }
            // Fix zoom mode bugs
            pnlProjectilePos.Height          = (int)(32 * zoomMod) + 4;
            picProjectileIndicator.Height    = (int)(8 * zoomMod);
            picProjectileIndicator.BackColor = Color.Transparent;
        }
Пример #2
0
 public void LoadImages(FilesController workingDirectory)
 {
     workingDirectory.CreateDirectory(@"Images\CGs\" + Name);
     BGImage1 = BGImage1 ?? PartialPalettedImage.FromFile(workingDirectory, @"CGs\" + Name + @"\BG1");
     BGImage2 = BGImage2 ?? PartialPalettedImage.FromFile(workingDirectory, @"CGs\" + Name + @"\BG2");
     FGImage1 = FGImage1 ?? PartialPalettedImage.FromFile(workingDirectory, @"CGs\" + Name + @"\FG1");
     FGImage2 = FGImage2 ?? PartialPalettedImage.FromFile(workingDirectory, @"CGs\" + Name + @"\FG2");
 }
Пример #3
0
 public TileData(PalettedImage image, int moveCost, int armorMod, int palette, bool high, string name)
 {
     Image    = image.Clone();
     MoveCost = moveCost;
     ArmorMod = armorMod;
     Palette  = palette;
     High     = high;
     Name     = name;
 }
Пример #4
0
 private void BattleAnimationsFromClassData(ClassData data)
 {
     WorkingDirectory.CreateDirectory(@"Images\ClassBattleAnimations\" + data.Name);
     for (int i = 0; i < data.BattleAnimations.Count; i++)
     {
         if (data.BattleAnimations[i].Image == null)
         {
             data.BattleAnimations[i].Image =
                 PalettedImage.FromFile(WorkingDirectory, @"ClassBattleAnimations\" + data.Name + @"\" + data.BattleAnimations[i].Name);
         }
     }
     balBattleAnimations.Datas = data.BattleAnimations;
 }
Пример #5
0
        // TBA - battle backgrounds

        public void LoadImages(FilesController workingDirectory)
        {
            workingDirectory.CreateDirectory(@"Images\Tilesets\" + Name);
            workingDirectory.CreateDirectory(@"Images\BattleBackgrounds\" + Name);
            for (int i = 0; i < Tiles.Count; i++)
            {
                Tiles[i].Image = Tiles[i].Image ??
                                 PalettedImage.FromFile(workingDirectory, @"Tilesets\" + Name + @"\" + i);
            }
            for (int i = 0; i < BattleBackgrounds.Count; i++)
            {
                BattleBackgrounds[i].Layer1 = BattleBackgrounds[i].Layer1 ??
                                              PartialPalettedImage.FromFile(workingDirectory, @"BattleBackgrounds\" + Name + @"\" + BattleBackgrounds[i].Name + "1");
                BattleBackgrounds[i].Layer2 = BattleBackgrounds[i].Layer2 ??
                                              PartialPalettedImage.FromFile(workingDirectory, @"BattleBackgrounds\" + Name + @"\" + BattleBackgrounds[i].Name + "2");
            }
        }
Пример #6
0
 public PalettedImage LoadProjectile(FilesController files)
 {
     return(ProjectileImage ?? (ProjectileImage = PalettedImage.FromFile(files, @"ClassBattleAnimations\_Projectiles\" + Name)));
 }
Пример #7
0
 public PalettedImage LoadSprite(FilesController files)
 {
     return(MapSprite ?? (MapSprite = PalettedImage.FromFile(files, @"ClassMapSprites\" + Name)));
 }
Пример #8
0
        private List <byte[]> CreateNSBTXes(SaveForm SF)
        {
            List <byte[]> NSBTXes = new List <byte[]>();

            using (Py.GIL())
            {
                dynamic TexturePy = Python.Runtime.Py.Import("ndspy.texture");

                using (PyScope scope = Py.CreateScope())
                {
                    scope.Exec("import ndspy.texture");

                    for (int j = 0; j < 3; j++)
                    {
                        scope.Exec("nsbtx = ndspy.texture.NSBTX()");

                        for (int i = 0 + (255 * j); i < 255 + (255 * j); i++)
                        {
                            SF.SetMessage("Encoding Tile " + (i + 1) + " (Format: " + TextureFormats[i] + ")");

                            Console.WriteLine("Tex " + i);
                            Bitmap   TileBitmap = new Bitmap(16, 16);
                            Graphics g          = Graphics.FromImage(TileBitmap);
                            g.DrawImage(this.MainPNG, new Rectangle(new Point(0, 0), new Size(16, 16)), Helpers.GetRectangleForTileID(i), GraphicsUnit.Pixel);

                            EncodedImage Enc = null;

                            if (TextureFormats[i] == 7)
                            {
                                Enc = Images.EncodeImage_RGB555(TileBitmap);
                            }
                            else if (TextureFormats[i] == 5)
                            {
                                Enc = Images.Encode_Tex4x4(TileBitmap, 16);
                            }
                            else
                            {
                                PalettedImage p = Images.CreatePalettedImage(TileBitmap, this.TextureFormats[i]);
                                Enc = Images.EncodeImage(p, TextureFormats[i]);
                            }

                            string  Name = "Tile " + i.ToString();
                            dynamic Tex  = TexturePy.Texture.fromFlags(0, 0, true, true, false, false, TileBitmap.Width, TileBitmap.Height,
                                                                       this.TextureFormats[i], false, 0, 0x80010040, Enc.Texture, Enc.Texture2);
                            dynamic Pal = TexturePy.Palette.fromColors(0, 0, 0, Enc.Palette);

                            scope.Set("Name", Name.ToPython());
                            scope.Set("Tex", Tex);
                            scope.Set("Pal", Pal);
                            scope.Exec("nsbtx.textures.append((Name,Tex))");
                            scope.Exec("nsbtx.palettes.append((Name,Pal))");
                        }

                        scope.Exec("nsbtxf = nsbtx.save()");
                        NSBTXes.Add(scope.Get <byte[]>("nsbtxf"));
                    }
                }
            }

            return(NSBTXes);
        }
Пример #9
0
 public BattleAnimationData(string name = "", PalettedImage image = null)
 {
     Name  = name;
     Image = image;
 }