private Component(ComponentSerializable serializable, Database.Loader loader) { Id = new ItemId <Component>(serializable.Id); loader.AddComponent(serializable.Id, this); Name = serializable.Name; Description = serializable.Description; DisplayCategory = serializable.DisplayCategory; Availability = serializable.Availability; Stats = loader.GetComponentStats(new ItemId <ComponentStats>(serializable.ComponentStatsId)); if (Stats == null) { throw new DatabaseException(this.GetType().Name + ".Stats cannot be null - " + serializable.ComponentStatsId); } Faction = loader.GetFaction(new ItemId <Faction>(serializable.Faction)); Level = UnityEngine.Mathf.Clamp(serializable.Level, 0, 1000); Icon = new SpriteId(serializable.Icon, SpriteId.Type.Component); Color = new ColorData(serializable.Color); Layout = new Layout(serializable.Layout); _cellType = serializable.CellType; Device = loader.GetDevice(new ItemId <Device>(serializable.DeviceId)); Weapon = loader.GetWeapon(new ItemId <Weapon>(serializable.WeaponId)); Ammunition = loader.GetAmmunition(new ItemId <Ammunition>(serializable.AmmunitionId)); AmmunitionObsolete = loader.GetAmmunitionObsolete(new ItemId <AmmunitionObsolete>(serializable.AmmunitionId)); _weaponSlotType = serializable.WeaponSlotType; DroneBay = loader.GetDroneBay(new ItemId <DroneBay>(serializable.DroneBayId)); Drone = loader.GetShipBuild(new ItemId <ShipBuild>(serializable.DroneId)); Restrictions = ComponentRestrictions.Create(serializable.Restrictions, loader); PossibleModifications = new ImmutableCollection <ComponentMod>(serializable.PossibleModifications?.Select(item => loader.GetComponentMod(new ItemId <ComponentMod>(item), true))); OnDataDeserialized(serializable, loader); }
/// <summary> /// Initializes a new instance of this class. /// </summary> /// <param name="id">The index of this element in the Animation.</param> /// <param name="clsns">The collection of collision boxes in this elements.</param> /// <param name="ticks">The time, in gameticks, that this element is drawn.</param> /// <param name="spriteid">The Sprite that is drawn for this element. SpriteId.Invalid for nothing to be drawn.</param> /// <param name="offset">The offset, in pixels, used to draw this element.</param> /// <param name="flip">The drawing orientation of this element.</param> /// <param name="blending">Alpha blending to be used while drawing this element.</param> public AnimationElement(Int32 id, List <Clsn> clsns, Int32 ticks, Int32 starttick, SpriteId spriteid, Point offset, SpriteEffects flip, Blending blending) { if (id < 0) { throw new ArgumentOutOfRangeException("id"); } if (clsns == null) { throw new ArgumentNullException("clsns"); } if (ticks < -1) { throw new ArgumentOutOfRangeException("ticks"); } if (starttick < 0) { throw new ArgumentOutOfRangeException("starttick"); } if (blending == null) { throw new ArgumentNullException("blending"); } m_id = id; m_clsns = clsns; m_gameticks = ticks; m_spriteid = spriteid; m_offset = (Vector2)offset; m_flip = flip; m_blending = blending; m_starttick = starttick; }
public static Wall Serdes(int _, Wall w, AssetMapping mapping, ISerializer s) { if (s == null) { throw new ArgumentNullException(nameof(s)); } w ??= new Wall(); w.Properties = s.EnumU8(nameof(w.Properties), w.Properties); // Either a 24 bit int or a 3 byte array, annoying to serialize either way. w.Collision = (w.Collision & 0xffff00) | s.UInt8(nameof(w.Collision), (byte)(w.Collision & 0xff)); w.Collision = (w.Collision & 0xff00ff) | (uint)s.UInt8(nameof(w.Collision), (byte)((w.Collision >> 8) & 0xff)) << 8; w.Collision = (w.Collision & 0x00ffff) | (uint)s.UInt8(nameof(w.Collision), (byte)((w.Collision >> 16) & 0xff)) << 16; w.SpriteId = SpriteId.SerdesU16(nameof(w.SpriteId), w.SpriteId, AssetType.Wall, mapping, s); w.AnimationFrames = s.UInt8(nameof(w.AnimationFrames), w.AnimationFrames); w.AutoGfxType = s.UInt8(nameof(w.AutoGfxType), w.AutoGfxType); w.TransparentColour = s.UInt8(nameof(w.TransparentColour), w.TransparentColour); w.Unk9 = s.UInt8(nameof(w.Unk9), w.Unk9); w.Width = s.UInt16(nameof(w.Width), w.Width); w.Height = s.UInt16(nameof(w.Height), w.Height); ushort overlayCount = s.UInt16("overlayCount", (ushort)w.Overlays.Count); s.List(nameof(w.Overlays), w.Overlays, mapping, overlayCount, Overlay.Serdes); return(w); }
public Video.DrawState SetupDrawing(SpriteId id, Vector2 location, Vector2 offset, Vector2 scale, SpriteEffects flip) { Sprite sprite = GetSprite(id); if ((flip & SpriteEffects.FlipHorizontally) == SpriteEffects.FlipHorizontally) offset.X = -offset.X; if ((flip & SpriteEffects.FlipVertically) == SpriteEffects.FlipVertically) offset.Y = -offset.Y; m_drawstate.Reset(); m_drawstate.Set(sprite); m_drawstate.Offset = offset; m_drawstate.AddData(location, null); m_drawstate.Flip = flip; m_drawstate.Scale = scale; if (UseOverride == true && sprite != null && sprite.PaletteOverride == true) { if (OverridePalette != null) { m_drawstate.Palette = OverridePalette; } else { Texture2D newpalette = SpriteFile.GetFirstPalette(); if (newpalette != null) m_drawstate.Palette = newpalette; } } return m_drawstate; }
private ComponentData(ComponentSerializable serializable, Database database) { ItemId = new ItemId <ComponentData>(serializable.Id, serializable.FileName); Name = serializable.Name; Description = serializable.Description; DisplayCategory = serializable.DisplayCategory; Availability = serializable.Availability; ComponentStatsId = database.GetComponentStatsId(serializable.ComponentStatsId); Faction = database.GetFactionId(serializable.Faction); Level = new NumericValue <int>(serializable.Level, 0, 500); Icon = new SpriteId(serializable.Icon); Color = Utils.ColorUtils.ColorFromString(serializable.Color); Layout = new Layout(serializable.Layout); CellType = serializable.CellType; DeviceId = database.GetDeviceId(serializable.DeviceId); WeaponId = database.GetWeaponId(serializable.WeaponId); AmmunitionId = database.GetAmmunitionId(serializable.AmmunitionId); AmmunitionObsoleteId = database.GetAmmunitionObsoleteId(serializable.AmmunitionObsoleteId); WeaponSlotType = serializable.WeaponSlotType; DroneBayId = database.GetDroneBayId(serializable.DroneBayId); DroneId = database.GetShipBuildId(serializable.DroneId); PossibleModifications = serializable.PossibleModifications?.Select(item => new Wrapper <ComponentModData> { Item = database.GetComponentModId(item) }).ToArray(); }
public TextDialog(IText text, SpriteId portraitId = default, int depth = 0) : base(DialogPositioning.Top, depth) { On <DismissMessageEvent>(_ => Close()); On <UiLeftClickEvent>(e => { Close(); e.Propagating = false; }); On <UiRightClickEvent>(e => { Close(); e.Propagating = false; }); On <CloseWindowEvent>(e => Close()); var textSection = new UiText(text); var padding = new Padding(textSection, 3, 7); UiElement content; if (!portraitId.IsNone) { var portrait = new FixedSize(36, 38, new ButtonFrame(new UiSpriteElement(portraitId)) { State = ButtonState.Pressed, Padding = 0 }); content = new HorizontalStack(new CentreContent(portrait), padding); } else { content = padding; } var stack = new FixedWidth(320, content); AttachChild(new DialogFrame(stack) { Background = DialogFrameBackgroundStyle.DarkTint }); }
public MapObject(SpriteId id, Vector3 initialPosition, Vector2 size, bool onFloor) { _sprite = AttachChild(new MapSprite( id, DrawLayer.Underlay, SpriteKeyFlags.UseCylindrical, SpriteFlags.FlipVertical | (onFloor ? SpriteFlags.Floor | SpriteFlags.MidAligned : SpriteFlags.Billboard)) { Size = size, Position = initialPosition }); _sprite.Selected += (sender, args) => args.RegisterHit(this); On <SlowClockEvent>(e => { if (_sprite.FrameCount == 1) { Exchange.Unsubscribe <SlowClockEvent>(this); } _sprite.Frame += e.Delta; }); }
public UiFixedPositionElement(SpriteId id, Rectangle extents) { On <BackendChangedEvent>(_ => Rebuild()); On <WindowResizedEvent>(_ => Rebuild()); _id = id; _extents = extents; }
public int GetCenterY(SpriteId sprId) { int id = (int)sprId; int scrPosY = (int)spritList[id].PositionY; return(scrPosY + (int)(spritList[id].DrawRectHeight / 2)); }
private ShipData(ShipSerializable serializable, Database database) { ItemId = new ItemId <ShipData>(serializable.Id, serializable.FileName); ShipCategory = serializable.ShipCategory; Name = serializable.Name; Faction = database.GetFactionId(serializable.Faction); SizeClass = serializable.SizeClass; IconImage = new SpriteId(serializable.IconImage); IconScale = new NumericValue <float>(serializable.IconScale, 0.1f, 100f); ModelImage = new SpriteId(serializable.ModelImage); ModelScale = new NumericValue <float>(serializable.ModelScale, 0.1f, 100f); EnginePosition = serializable.EnginePosition; EngineColor = Utils.ColorUtils.ColorFromString(serializable.EngineColor); EngineSize = new NumericValue <float>(serializable.EngineSize, 0f, 1f); EnergyResistance = new NumericValue <float>(serializable.EnergyResistance, 0f, 100f); KineticResistance = new NumericValue <float>(serializable.KineticResistance, 0f, 100f); HeatResistance = new NumericValue <float>(serializable.HeatResistance, 0f, 100f); Regeneration = serializable.Regeneration; BaseWeightModifier = new NumericValue <float>(serializable.BaseWeightModifier, -0.9f, 100f); BuiltinDevices = serializable.BuiltinDevices?.Select(item => new Wrapper <DeviceData> { Item = database.GetDeviceId(item) }).ToArray(); Layout = new Layout(serializable.Layout); Barrels = serializable.Barrels?.Select(item => BarrelData.Deserialize(item, database)).ToArray(); }
/// 配置物の中心座標を返す public int GetCenterX(SpriteId sprId) { int id = (int)sprId; int scrPosX = (int)spritList[id].PositionX; return(scrPosX + (int)(spritList[id].DrawRectWidth / 2)); }
/// スプライトのフォーカスを変更する public void SetFocus(SpriteId sprId, int idx) { int id = (int)sprId; spritList[id].SetDrawRect(lytRectData[id * 4 + 0] + lytRectData[id * 4 + 2] * idx, lytRectData[id * 4 + 1], lytRectData[id * 4 + 2], lytRectData[id * 4 + 3]); }
public Int32 GetIndex(SpriteId id) { Int32 index; if (m_indexcache.TryGetValue(id, out index) == false) return Int32.MinValue; return index; }
private Ship(ShipSerializable serializable, Database.Loader loader) { Id = new ItemId <Ship>(serializable.Id); loader.AddShip(serializable.Id, this); ShipCategory = serializable.ShipCategory; Name = serializable.Name; Faction = loader.GetFaction(new ItemId <Faction>(serializable.Faction)); SizeClass = serializable.SizeClass; IconImage = new SpriteId(serializable.IconImage, SpriteId.Type.ShipIcon); IconScale = UnityEngine.Mathf.Clamp(serializable.IconScale, 0.1f, 100f); ModelImage = new SpriteId(serializable.ModelImage, SpriteId.Type.Ship); ModelScale = UnityEngine.Mathf.Clamp(serializable.ModelScale, 0.1f, 100f); _enginePosition = serializable.EnginePosition; EngineColor = new ColorData(serializable.EngineColor); _engineSize = UnityEngine.Mathf.Clamp(serializable.EngineSize, 0f, 1f); Engines = new ImmutableCollection <Engine>(serializable.Engines?.Select(item => Engine.Create(item, loader))); EnergyResistance = UnityEngine.Mathf.Clamp(serializable.EnergyResistance, -100f, 100f); KineticResistance = UnityEngine.Mathf.Clamp(serializable.KineticResistance, -100f, 100f); HeatResistance = UnityEngine.Mathf.Clamp(serializable.HeatResistance, -100f, 100f); Regeneration = serializable.Regeneration; BaseWeightModifier = UnityEngine.Mathf.Clamp(serializable.BaseWeightModifier, -0.9f, 1000f); BuiltinDevices = new ImmutableCollection <Device>(serializable.BuiltinDevices?.Select(item => loader.GetDevice(new ItemId <Device>(item), true))); Layout = new Layout(serializable.Layout); Barrels = new ImmutableCollection <Barrel>(serializable.Barrels?.Select(item => Barrel.Create(item, loader))); OnDataDeserialized(serializable, loader); }
/*---------------------------------------------\ |/--------\2/---------------------------------\|^5 || | | Take how many items? || ||ITEM PIC| | || ||1:1 size| | 151x30(inner) || |\--------/ | || |^6 \---------------------------------/| | ^5 7^| | [<] [=======[ 3 ]==============] [>] | | [ OK ] ^4 | \---------------------------------------------*///^5 public ItemQuantityDialog(int depth, StringId stringId, SpriteId id, int subId, int max, bool useTenths, Action <int> continuation) : base(DialogPositioning.Center, depth) { _continuation = continuation; IUiElement itemPic = new UiSpriteElement(id) { SubId = subId }; var topStack = new HorizontalStack( new NonGreedy(new GroupingFrame(itemPic)), new Spacing(2, 0), new GroupingFrame(new FixedSize(151, 30, new UiTextBuilder(stringId))) ); Func <int, string> formatFunc = useTenths ? (Func <int, string>)FormatTenths : FormatUnits; var stack = new VerticalStack( topStack, new Spacing(0, 5), new FixedSize(106, 14, new Slider(() => _quantity, x => _quantity = x, 0, max, formatFunc)), new Spacing(0, 4), new FixedSize(52, 13, new Button(Base.SystemText.MsgBox_OK) { DoubleFrame = true }.OnClick(Close)) ); AttachChild(new DialogFrame(new Padding(stack, 6)) { Background = DialogFrameBackgroundStyle.MainMenuPattern }); }
Boolean TryGetSpriteData(SpriteId id, out SpriteFileData data, out Int32 dataindex) { data = null; dataindex = Int32.MinValue; if (id == SpriteId.Invalid) { return(false); } Int32 index = m_collection.GetIndex(id); if (index == Int32.MinValue) { return(false); } SpriteFileData sfd = m_collection.GetData(index); if (sfd == null) { return(false); } data = sfd; dataindex = index; return(true); }
private bool TryGetSpriteData(SpriteId id, out SpriteFileData data, out int dataindex) { data = null; dataindex = int.MinValue; if (id == SpriteId.Invalid) { return(false); } var index = m_collection.GetIndex(id); if (index == int.MinValue) { return(false); } var sfd = m_collection.GetData(index); if (sfd == null) { return(false); } data = sfd; dataindex = index; return(true); }
public ItemQuantityPromptEvent(StringId text, SpriteId icon, int iconSubId, int max, bool useTenths) { Text = text; Icon = icon; IconSubId = iconSubId; Max = max; UseTenths = useTenths; }
private QuestItemData(QuestItemSerializable serializable, Database database) { ItemId = new ItemId <QuestItemData>(serializable.Id, serializable.FileName); Name = serializable.Name; Description = serializable.Description; Icon = new SpriteId(serializable.Icon); Color = Utils.ColorUtils.ColorFromString(serializable.Color); Price = new NumericValue <int>(serializable.Price, 0, 100000000); }
private VisualEffectElementData(VisualEffectElementSerializable serializable, Database database) { Type = serializable.Type; Image = new SpriteId(serializable.Image); ColorMode = serializable.ColorMode; Color = Utils.ColorUtils.ColorFromString(serializable.Color); Size = new NumericValue <float>(serializable.Size, 0.001f, 100f); StartTime = new NumericValue <float>(serializable.StartTime, 0f, 100f); Lifetime = new NumericValue <float>(serializable.Lifetime, 0f, 100f); }
public SpriteFileData(int fileoffset, int pcxsize, Point axis, SpriteId id, int sharedindex, bool copylastpalette) { m_fileoffset = fileoffset; m_pcxsize = pcxsize; m_axis = axis; m_id = id; m_sharedindex = sharedindex; m_copylastpalette = copylastpalette; m_isvalid = null; }
public SpriteFileData(Int32 fileoffset, Int32 pcxsize, Point axis, SpriteId id, Int32 sharedindex, Boolean copylastpalette) { m_fileoffset = fileoffset; m_pcxsize = pcxsize; m_axis = axis; m_id = id; m_sharedindex = sharedindex; m_copylastpalette = copylastpalette; m_isvalid = null; }
public Sprite Sprite(SpriteId pSpriteName) { if (pSprites.TryGetValue(pSpriteName, out Sprite sprite)) { return(sprite); } logger.Error("Failed to load sprite named '" + pSpriteName + "'"); return(null); }
private SatelliteData(SatelliteSerializable serializable, Database database) { ItemId = new ItemId <SatelliteData>(serializable.Id, serializable.FileName); Name = serializable.Name; ModelImage = new SpriteId(serializable.ModelImage); ModelScale = new NumericValue <float>(serializable.ModelScale, 0.1f, 100f); SizeClass = serializable.SizeClass; Layout = new Layout(serializable.Layout); Barrels = serializable.Barrels?.Select(item => BarrelData.Deserialize(item, database)).ToArray(); }
private BarrelData(BarrelSerializable serializable, Database database) { Type = serializable.Type; Position = serializable.Position; Rotation = new NumericValue <float>(serializable.Rotation, -360f, 360f); Offset = new NumericValue <float>(serializable.Offset, 0f, 1f); PlatformType = serializable.PlatformType; WeaponClass = serializable.WeaponClass; Image = new SpriteId(serializable.Image); Size = new NumericValue <float>(serializable.Size, 0f, 10f); }
private CharacterData(CharacterSerializable serializable, Database database) { ItemId = new ItemId <CharacterData>(serializable.Id, serializable.FileName); Name = serializable.Name; AvatarIcon = new SpriteId(serializable.AvatarIcon); Faction = database.GetFactionId(serializable.Faction); Inventory = database.GetLootId(serializable.Inventory); Fleet = database.GetFleetId(serializable.Fleet); Relations = new NumericValue <int>(serializable.Relations, 0, 100); IsUnique = serializable.IsUnique; }
public Int32 GetIndex(SpriteId id) { Int32 index; if (m_indexcache.TryGetValue(id, out index) == false) { return(Int32.MinValue); } return(index); }
public int GetIndex(SpriteId id) { int index; if (m_indexcache.TryGetValue(id, out index) == false) { return(int.MinValue); } return(index); }
private VisualEffectElement(VisualEffectElementSerializable serializable, Database.Loader loader) { Type = serializable.Type; Image = new SpriteId(serializable.Image, SpriteId.Type.Effect); ColorMode = serializable.ColorMode; Color = new ColorData(serializable.Color); Size = UnityEngine.Mathf.Clamp(serializable.Size, 0.001f, 100f); StartTime = UnityEngine.Mathf.Clamp(serializable.StartTime, 0f, 1000f); Lifetime = UnityEngine.Mathf.Clamp(serializable.Lifetime, 0f, 1000f); OnDataDeserialized(serializable, loader); }
private BulletPrefabData(BulletPrefabSerializable serializable, Database database) { ItemId = new ItemId <BulletPrefabData>(serializable.Id, serializable.FileName); Shape = serializable.Shape; Image = new SpriteId(serializable.Image); Size = new NumericValue <float>(serializable.Size, 0.01f, 100f); Margins = new NumericValue <float>(serializable.Margins, 0f, 1f); MainColor = Utils.ColorUtils.ColorFromString(serializable.MainColor); MainColorMode = serializable.MainColorMode; SecondColor = Utils.ColorUtils.ColorFromString(serializable.SecondColor); SecondColorMode = serializable.SecondColorMode; }
private QuestItem(QuestItemSerializable serializable, Database.Loader loader) { Id = new ItemId <QuestItem>(serializable.Id); loader.AddQuestItem(serializable.Id, this); Name = serializable.Name; Description = serializable.Description; Icon = new SpriteId(serializable.Icon, SpriteId.Type.ArtifactIcon); Color = new ColorData(serializable.Color); Price = UnityEngine.Mathf.Clamp(serializable.Price, 0, 999999999); OnDataDeserialized(serializable, loader); }
private Barrel(BarrelSerializable serializable, Database.Loader loader) { Position = serializable.Position; Rotation = UnityEngine.Mathf.Clamp(serializable.Rotation, -360f, 360f); Offset = UnityEngine.Mathf.Clamp(serializable.Offset, 0f, 1f); PlatformType = serializable.PlatformType; AutoAimingArc = UnityEngine.Mathf.Clamp(serializable.AutoAimingArc, 0f, 360f); RotationSpeed = UnityEngine.Mathf.Clamp(serializable.RotationSpeed, 0f, 1000f); WeaponClass = serializable.WeaponClass; Image = new SpriteId(serializable.Image, SpriteId.Type.Satellite); Size = UnityEngine.Mathf.Clamp(serializable.Size, 0f, 100f); OnDataDeserialized(serializable, loader); }
public SpriteFileSubHeader(File file) { if (file == null) throw new ArgumentNullException("file"); Byte[] data = file.ReadBytes(19); if (data.Length != 19) throw new ArgumentException("File is not long enough", "file"); m_nextoffset = BitConverter.ToInt32(data, 0); m_imagesize = BitConverter.ToInt32(data, 4); m_axis = new Point(BitConverter.ToInt16(data, 8), BitConverter.ToInt16(data, 10)); m_id = new SpriteId(BitConverter.ToInt16(data, 12), BitConverter.ToInt16(data, 14)); m_sharedindex = BitConverter.ToInt16(data, 16); m_copylastpalette = data[18] > 0; }
/// <summary> /// Initializes a new instance of this class. /// </summary> /// <param name="id">The index of this element in the Animation.</param> /// <param name="clsns">The collection of collision boxes in this elements.</param> /// <param name="ticks">The time, in gameticks, that this element is drawn.</param> /// <param name="spriteid">The Sprite that is drawn for this element. SpriteId.Invalid for nothing to be drawn.</param> /// <param name="offset">The offset, in pixels, used to draw this element.</param> /// <param name="flip">The drawing orientation of this element.</param> /// <param name="blending">Alpha blending to be used while drawing this element.</param> public AnimationElement(Int32 id, List<Clsn> clsns, Int32 ticks, Int32 starttick, SpriteId spriteid, Point offset, SpriteEffects flip, Blending blending) { if (id < 0) throw new ArgumentOutOfRangeException("id"); if (clsns == null) throw new ArgumentNullException("clsns"); if (ticks < -1) throw new ArgumentOutOfRangeException("ticks"); if (starttick < 0) throw new ArgumentOutOfRangeException("starttick"); if (blending == null) throw new ArgumentNullException("blending"); m_id = id; m_clsns = clsns; m_gameticks = ticks; m_spriteid = spriteid; m_offset = (Vector2)offset; m_flip = flip; m_blending = blending; m_starttick = starttick; }
Boolean TryGetSpriteData(SpriteId id, out SpriteFileData data, out Int32 dataindex) { data = null; dataindex = Int32.MinValue; if (id == SpriteId.Invalid) return false; Int32 index = m_collection.GetIndex(id); if (index == Int32.MinValue) return false; SpriteFileData sfd = m_collection.GetData(index); if (sfd == null) return false; data = sfd; dataindex = index; return true; }
/// スプライトのフォーカスを変更する public void SetFocus( SpriteId sprId, int idx ) { int id = (int)sprId; spritList[id].SetDrawRect( lytRectData[id*4+0] + lytRectData[id*4+2] * idx, lytRectData[id*4+1], lytRectData[id*4+2], lytRectData[id*4+3] ); }
public Sprite GetSprite(SpriteId spriteid) { return m_spritefile.GetSprite(spriteid); }
public void Draw(SpriteId id, Vector2 location, Vector2 offset, Vector2 scale, SpriteEffects flip) { SetupDrawing(id, location, offset, scale, flip).Use(); }
/// Rectの範囲に入っているかのチェック public bool CheckRect( SpriteId sprId, int pointX, int pointY ) { if(spritList==null){ return false; } int id = (int)sprId; int scrPosX = (int)spritList[id].PositionX; int scrPosY = (int)spritList[id].PositionY; if( ( scrPosX <= pointX && pointX <= (scrPosX + spritList[id].DrawRectWidth) ) && ( scrPosY <= pointY && pointY <= (scrPosY + spritList[id].DrawRectHeight) ) ){ return true; } return false; }
/// スプライトを削除 public void ClearSprite( SpriteId id ) { spritList[(int)id].Visible = false; }
/// 配置物の中心座標を返す public int GetCenterX( SpriteId sprId ) { int id = (int)sprId; int scrPosX = (int)spritList[id].PositionX; return( scrPosX+(int)(spritList[id].DrawRectWidth/2) ); }
public Sprite GetSprite(SpriteId id) { if (id == SpriteId.Invalid) return null; if (m_cachedsprites.ContainsKey(id) == true) return m_cachedsprites[id]; SpriteFileData data; Int32 dataindex; if (TryGetSpriteData(id, out data, out dataindex) == false) return null; Point size; Texture2D pixels; Texture2D palette; Boolean paletteoverride = false; Boolean ownpixels = true; Boolean ownpalette = true; if (data.PcxSize > 0) { m_file.SeekFromBeginning(data.FileOffset); if (m_spritesystem.LoadImage(m_file, data.PcxSize, out size, out pixels, out palette) == false) { Log.Write(LogLevel.Warning, LogSystem.SpriteSystem, "Cannot load PCX image data from '{0}' for sprite #{1}", Filepath, id); data.IsValid = false; return null; } } else { SpriteFileData shareddata = m_collection.GetData(data.SharedIndex); if (shareddata == null || shareddata.Id == id) return null; Sprite shared_sprite = GetSprite(shareddata.Id); if (shared_sprite == null) return null; size = shared_sprite.Size; paletteoverride = shared_sprite.PaletteOverride; pixels = shared_sprite.Pixels; palette = shared_sprite.Palette; ownpixels = false; ownpalette = false; } if (data.CopyLastPalette == true && dataindex != 0) { SpriteFileData previousdata = m_collection.GetData(dataindex - 1); if (previousdata != null && previousdata.Id != id) { Sprite previoussprite = GetSprite(previousdata.Id); if (previoussprite != null) { paletteoverride = previoussprite.PaletteOverride; ownpalette = false; palette = previoussprite.Palette; } } } if (id == new SpriteId(0, 0) || id == SpriteId.SmallPortrait) paletteoverride = true; Sprite sprite = new Sprite(size, data.Axis, ownpixels, pixels, ownpalette, palette, paletteoverride); m_cachedsprites.Add(id, sprite); return sprite; }
public int GetCenterY( SpriteId sprId ) { int id = (int)sprId; int scrPosY = (int)spritList[id].PositionY; return( scrPosY+(int)(spritList[id].DrawRectHeight/2) ); }
/// スプライトのα値を変更する public void SetAlpha( SpriteId sprId, float alpha ) { int id = (int)sprId; spritList[id].Alpha = alpha; }
/// private メソッド ///--------------------------------------------------------------------------- /// スプライトの登録 public void SetSprite( SpriteId id ) { spritList[(int)id].Visible = true; }