public Item(UInt32 itemID, ItemGenerator generator) : this(itemID) { this._itemName = generator.name; this._itemBitmap = generator.itemBitmap; this._itemFunctions = generator.functions; this._itemType = generator.typeOfItem; }
public Item(UInt32 itemID, String name, SpriteItem myBitmap, Dictionary <Stimulus, float> functions, ItemType itemType) : this(itemID) { this._itemName = name; this._itemBitmap = myBitmap; this._itemType = itemType; this._itemFunctions = functions; }
public Sprite(PPU self_) { self = self_; for (int i = 0; i < list.Length; i++) { list[i] = new SpriteItem(); } }
public void AddToScene(Scene2D scene2D) { AptPalantir.Reset(); _window = _game.LoadAptWindow("Palantir.apt"); _root = _window.Root; _game.Scene2D.AptWindowManager.PushWindow(_window); }
public ItemGenerator(String givenName, SpriteItem givenBitmap, ItemType givenType, Dictionary <ItemProperty, float> givenFunctions) { this.name = givenName; this.typeOfItem = givenType; this.functions = givenFunctions; this.itemBitmap = givenBitmap; //this.itemBitmap.MakeTransparent(itemBitmap.GetPixel(0,0)); // am trying to modify static field? }
public WrappedDisplayItem(Character character, AptContext context, SpriteItem parent) { Visible = true; Item = AddDisposable <DisplayItem>(character switch { Playable _ => new SpriteItem(), Button _ => new ButtonItem(), _ => new RenderItem(), });
public static Sprite GetSprite(string name) { SpriteItem item; if (!Sprites.ContainsKey(name)) { item = new SpriteItem(SpriteBank.Game); item.AssetName = name; Sprites.Add(name, item); } else item = Sprites[name]; return item.Sprite; }
void DrawToggleSpriteItem(UISprite sprite, bool toggle) { SpriteItem spriteItem = new SpriteItem(sprite, toggle); spriteItem.SetChangeAtlas(selectAtlas); spriteItem.SetIsShowName(isNeedChangeName); spriteItem.SetIsShowPos(isNeedChangeTs); spriteItem.DrawItem(); //DrawButton("输出颜色", () => //{ // var RgbColor = sprite.color; // var HSBColor = RGBConvertToHSV(RgbColor); // Debug.LogError(string.Format("RGB:{0},HSV{1}", sprite.color, HSBColor)); //}, 50, 20); }
public bool on_scanline(SpriteItem sprite) { if (sprite.x > 256 && (sprite.x + sprite.width() - 1) < 512) { return false; } int height = (regs.interlace == false ? (int)sprite.height() : (int)(sprite.height() >> 1)); if (t.y >= sprite.y && t.y < (sprite.y + height)) { return true; } if ((sprite.y + height) >= 256 && t.y < ((sprite.y + height) & 255)) { return true; } return false; }
public Sprite(GameObject baseObject, Vector3 position, int spriteIndex, Texture2D texture, IDictionary <int, SpriteItem> spriteDictionary) { var item = new SpriteItem(SpriteType.Car); //Bus //item.Sprite = 10; //item.Model = 11; //item.Remap = 4; //Cop //item.Sprite = 11; //item.Model = 12; //item.Remap = 36; item.SpriteId = 10; //item.Model = 10; //item.Remap = -1; var sourceRectangle = spriteDictionary[item.SpriteId].Rectangle; Width = sourceRectangle.Width / 64f; //1 Unit = 64px Height = sourceRectangle.Height / 64f; _widthHalf = Width / 2; _heightHalf = Height / 2; SetNeutralPosition(position); SpriteIndex = spriteIndex; //Texture double pixelPerWidth = 1f / texture.Width; double pixelPerHeight = 1f / texture.Height; TexturePositionTopLeft = new Vector2((float)((sourceRectangle.X + 1) * pixelPerWidth), (float)((sourceRectangle.Y + 1) * pixelPerHeight)); TexturePositionTopRight = new Vector2((float)((sourceRectangle.X + sourceRectangle.Width - 1) * pixelPerWidth), (float)((sourceRectangle.Y + 1) * pixelPerHeight)); TexturePositionBottomRight = new Vector2((float)((sourceRectangle.X + sourceRectangle.Width - 1) * pixelPerWidth), (float)((sourceRectangle.Y + sourceRectangle.Height - 1) * pixelPerHeight)); TexturePositionBottomLeft = new Vector2((float)((sourceRectangle.X + 1) * pixelPerWidth), (float)((sourceRectangle.Y + sourceRectangle.Height - 1) * pixelPerHeight)); }
public bool loadDat(string filename, UInt32 signature) { FileStream fileStream = new FileStream(filename, FileMode.Open); try { using (BinaryReader reader = new BinaryReader(fileStream)) { UInt32 datSignature = reader.ReadUInt32(); if (signature != 0 && datSignature != signature) { Trace.WriteLine(String.Format("Plugin: Bad signature, dat signature is {0} and signature is {0}", datSignature, signature)); return(false); } //get max id UInt16 itemCount = reader.ReadUInt16(); Trace.WriteLine(String.Format("Plugin: itemCount is {0}", itemCount)); UInt16 creatureCount = reader.ReadUInt16(); UInt16 effectCount = reader.ReadUInt16(); UInt16 distanceCount = reader.ReadUInt16(); UInt16 minclientID = 100; //items starts at 100 UInt16 maxclientID = itemCount; UInt16 id = minclientID; while (id <= maxclientID) { SpriteItem item = new SpriteItem(); item.id = id; items[id] = item; // read the options until we find 0xff byte optbyte; do { optbyte = reader.ReadByte(); //Trace.WriteLine(String.Format("{0:X}", optbyte)); switch (optbyte) { case 0x00: //groundtile { item.groundSpeed = reader.ReadUInt16(); item.type = ItemType.Ground; } break; case 0x01: //all OnTop { item.alwaysOnTop = true; item.alwaysOnTopOrder = 1; } break; case 0x02: //can walk trough (open doors, arces, bug pen fence) { item.alwaysOnTop = true; item.alwaysOnTopOrder = 2; } break; case 0x03: //can walk trough (arces) { item.alwaysOnTop = true; item.alwaysOnTopOrder = 3; } break; case 0x04: //container { item.type = ItemType.Container; } break; case 0x05: //stackable { item.isStackable = true; break; } case 0x06: //unknown { } break; case 0x07: //useable { item.hasUseWith = true; } break; case 0x08: //read/write-able { item.isReadable = true; //item.isWriteable = true; item.maxReadWriteChars = reader.ReadUInt16(); } break; case 0x09: //readable { item.isReadable = true; item.maxReadChars = reader.ReadUInt16(); } break; case 0x0A: //fluid containers { item.type = ItemType.Fluid; } break; case 0x0B: //splashes { item.type = ItemType.Splash; } break; case 0x0C: //blocks solid objects (creatures, walls etc) { item.blockObject = true; } break; case 0x0D: //not moveable { item.isMoveable = false; } break; case 0x0E: //blocks missiles (walls, magic wall etc) { item.blockProjectile = true; } break; case 0x0F: //blocks pathfind algorithms (monsters) { item.blockPathFind = true; } break; case 0x10: // no move animation { // item.noMoveAnimation = true; } break; case 0x11: //blocks monster movement (flowers, parcels etc) { item.isPickupable = true; } break; case 0x12: //hangable objects (wallpaper etc) { item.isHangable = true; } break; case 0x13: //horizontal wall { item.isHorizontal = true; } break; case 0x14: //vertical wall { item.isVertical = true; } break; case 0x15: //rotatable { item.isRotatable = true; } break; case 0x16: //light info { item.lightLevel = reader.ReadUInt16(); item.lightColor = reader.ReadUInt16(); } break; case 0x17: //unknown { } break; case 0x18: //changes floor { } break; case 0x19: //unknown { reader.BaseStream.Seek(4, SeekOrigin.Current); } break; case 0x1A: { item.hasHeight = true; UInt16 height = reader.ReadUInt16(); } break; case 0x1B: //unknown { } break; case 0x1C: //unknown { } break; case 0x1D: //minimap color { item.minimapColor = reader.ReadUInt16(); break; } case 0x1E: //in-game help info { UInt16 opt = reader.ReadUInt16(); if (opt == 1112) { item.isReadable = true; } } break; case 0x1F: //full tile { item.walkStack = true; } break; case 0x20: //look through (borders) { item.lookThrough = true; } break; case 0x21: //unknown { reader.ReadUInt16(); } break; case 0x22: //market { reader.ReadUInt16(); // category item.wareId = reader.ReadUInt16(); // trade as reader.ReadUInt16(); // show as var size = reader.ReadUInt16(); item.name = new string(reader.ReadChars(size)); reader.ReadUInt16(); // profession reader.ReadUInt16(); // level } break; case 0xFF: //end of attributes { } break; default: { Trace.WriteLine(String.Format("Plugin: Error while parsing, unknown optbyte 0x{0:X} at id {1}", optbyte, id)); return(false); } } } while (optbyte != 0xFF); item.width = reader.ReadByte(); item.height = reader.ReadByte(); if ((item.width > 1) || (item.height > 1)) { reader.BaseStream.Position++; } item.frames = reader.ReadByte(); item.xdiv = reader.ReadByte(); item.ydiv = reader.ReadByte(); item.zdiv = reader.ReadByte(); item.animationLength = reader.ReadByte(); item.isAnimation = item.animationLength > 1; item.numSprites = (UInt32)item.width * (UInt32)item.height * (UInt32)item.frames * (UInt32)item.xdiv * (UInt32)item.ydiv * item.zdiv * (UInt32)item.animationLength; // Read the sprite ids for (UInt32 i = 0; i < item.numSprites; ++i) { var spriteId = reader.ReadUInt32(); Sprite sprite; if (!sprites.TryGetValue(spriteId, out sprite)) { sprite = new Sprite(); sprite.id = spriteId; sprites[spriteId] = sprite; } item.spriteList.Add(sprite); } ++id; } } } finally { fileStream.Close(); } return(true); }
public ItemGenerator(String givenName, SpriteItem givenBitmap, ItemType givenType, Dictionary<Stimulus, float> givenFunctions) { this.name = givenName; this.typeOfItem = givenType; this.functions = givenFunctions; this.itemBitmap = givenBitmap; //this.itemBitmap.MakeTransparent(itemBitmap.GetPixel(0,0)); // am trying to modify static field? }
public void AddSprite( string name, SpriteData spriteData ) { SpriteItem item = new SpriteItem( spriteData, CurrentAnimationDirection, CurrentAnimationName, CurrentFrame ); mSpriteList.Add( item ); mSpriteTable.Add( name, item ); }
public SpriteEventArgs(SpriteItem sprite) { Sprite = sprite; }
public void ImportFrames(IEnumerable <string> fileNames, int padding) { var sprites = fileNames.Select(x => { var item = new SpriteItem { Name = Path.GetFileNameWithoutExtension(x), Sprite = new BitmapImage(new Uri(x)) }; item.AreaSize = item.Sprite.PixelWidth * item.Sprite.PixelHeight; return(item); }) .OrderByDescending(x => x.AreaSize) .ThenByDescending(x => x.Sprite.PixelWidth) .ToArray(); int width = 64, height = 64; bool increaser = false; bool failed = true; do { failed = false; var packer = new ArevaloRectanglePacker(width, height); foreach (var item in sprites) { int spriteWidth = item.Sprite.PixelWidth; int spriteHeight = item.Sprite.PixelHeight; Sizei size = new Sizei { Width = spriteWidth + padding, Height = spriteHeight + padding }; if (!packer.TryPack(size.Width, size.Height, out var origin)) { failed = true; break; } item.Rectangle = Recti.FromSize(origin.X, origin.Y, spriteWidth, spriteHeight); } if (failed) { if (increaser) { height *= 2; } else { width *= 2; } increaser = !increaser; } } while (failed); var dicFrames = Frames.ToDictionary(x => x.Name, x => x); var newFramesList = new List <Frame>(Frames.Capacity); foreach (var sprite in sprites) { if (dicFrames.TryGetValue(sprite.Name, out var frame)) { frame.Left = sprite.Rectangle.Left; frame.Top = sprite.Rectangle.Top; frame.Right = sprite.Rectangle.Right; frame.Bottom = sprite.Rectangle.Bottom; } else { frame = new Frame() { Name = sprite.Name, Left = sprite.Rectangle.Left, Top = sprite.Rectangle.Top, Right = sprite.Rectangle.Right, Bottom = sprite.Rectangle.Bottom, CenterX = sprite.Rectangle.Width / 2, CenterY = sprite.Rectangle.Height / 2 }; } newFramesList.Add(frame); } var drawingVisual = new DrawingVisual(); using (var drawingContext = drawingVisual.RenderOpen()) { foreach (var sprite in sprites) { drawingContext.DrawImage(sprite.Sprite, new Rect() { X = sprite.Rectangle.X, Y = sprite.Rectangle.Y, Width = sprite.Rectangle.Width, Height = sprite.Rectangle.Height }); } } var renderTargetBitmap = new RenderTargetBitmap(width, height, 96.0f, 96.0f, PixelFormats.Pbgra32); renderTargetBitmap.Render(drawingVisual); Texture = renderTargetBitmap; Frames.Clear(); Frames.AddRange(newFramesList.OrderBy(x => x.Name)); }
public Item(UInt32 itemID, String name, SpriteItem myBitmap, Dictionary<Stimulus, float> functions, ItemType itemType, Inventory parent) : this(itemID, name, myBitmap, functions, itemType) { this._parent = parent; }
public Item(UInt32 itemID, String name, SpriteItem myBitmap, Dictionary<Stimulus, float> functions, ItemType itemType) : this(itemID) { this._itemName = name; this._itemBitmap = myBitmap; this._itemType = itemType; this._itemFunctions = functions; }
public void Register(SpriteBatchType type, Vector2 position, Vector2i tile, bool flip_u, Vector2 scale) { if(SpriteItemLists[(int)type]==null) { SpriteItemLists[(int)type] = new List<SpriteItem>(); } var list = SpriteItemLists[(int)type]; var item = new SpriteItem(); item.position = position; item.tile = tile; item.flip_u = flip_u; item.scale = scale; list.Add(item); }
public Item(UInt32 itemID, String name, SpriteItem myBitmap, Dictionary <Stimulus, float> functions, ItemType itemType, Inventory parent) : this(itemID, name, myBitmap, functions, itemType) { this._parent = parent; }