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; }
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"); }
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; }
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; }
// 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"); } }
public PalettedImage LoadProjectile(FilesController files) { return(ProjectileImage ?? (ProjectileImage = PalettedImage.FromFile(files, @"ClassBattleAnimations\_Projectiles\" + Name))); }
public PalettedImage LoadSprite(FilesController files) { return(MapSprite ?? (MapSprite = PalettedImage.FromFile(files, @"ClassMapSprites\" + Name))); }
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); }
public BattleAnimationData(string name = "", PalettedImage image = null) { Name = name; Image = image; }