Exemple #1
0
        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;
        }
Exemple #3
0
        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);
        }
Exemple #4
0
		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;
		}
Exemple #5
0
 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();
 }
Exemple #6
0
        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
            });
        }
Exemple #7
0
        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;
            });
        }
Exemple #8
0
 public UiFixedPositionElement(SpriteId id, Rectangle extents)
 {
     On <BackendChangedEvent>(_ => Rebuild());
     On <WindowResizedEvent>(_ => Rebuild());
     _id      = id;
     _extents = extents;
 }
Exemple #9
0
        public int GetCenterY(SpriteId sprId)
        {
            int id      = (int)sprId;
            int scrPosY = (int)spritList[id].PositionY;

            return(scrPosY + (int)(spritList[id].DrawRectHeight / 2));
        }
Exemple #10
0
 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();
 }
Exemple #11
0
        /// 配置物の中心座標を返す
        public int GetCenterX(SpriteId sprId)
        {
            int id      = (int)sprId;
            int scrPosX = (int)spritList[id].PositionX;

            return(scrPosX + (int)(spritList[id].DrawRectWidth / 2));
        }
Exemple #12
0
        /// スプライトのフォーカスを変更する
        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;
		}
Exemple #14
0
        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
            });
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        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;
 }
Exemple #19
0
 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);
 }
Exemple #20
0
 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;
 }
Exemple #22
0
 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);
        }
Exemple #24
0
 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();
 }
Exemple #25
0
		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;
		}
Exemple #26
0
 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);
 }
Exemple #27
0
 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);
        }
Exemple #30
0
        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);
        }
Exemple #31
0
 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;
 }
Exemple #32
0
        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);
        }
Exemple #33
0
        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;
		}
Exemple #36
0
		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;
		}
Exemple #37
0
 /// スプライトのフォーカスを変更する
 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] );
 }
Exemple #38
0
		public Sprite GetSprite(SpriteId spriteid)
		{
			return m_spritefile.GetSprite(spriteid);
		}
Exemple #39
0
		public void Draw(SpriteId id, Vector2 location, Vector2 offset, Vector2 scale, SpriteEffects flip)
		{
			SetupDrawing(id, location, offset, scale, flip).Use();
		}
Exemple #40
0
        /// 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;
        }
Exemple #41
0
 /// スプライトを削除
 public void ClearSprite( SpriteId id )
 {
     spritList[(int)id].Visible = false;
 }
Exemple #42
0
 /// 配置物の中心座標を返す
 public int GetCenterX( SpriteId sprId )
 {
     int id = (int)sprId;
     int scrPosX = (int)spritList[id].PositionX;
     return( scrPosX+(int)(spritList[id].DrawRectWidth/2) );
 }
Exemple #43
0
		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;
		}
Exemple #44
0
 public int GetCenterY( SpriteId sprId )
 {
     int id = (int)sprId;
     int scrPosY = (int)spritList[id].PositionY;
     return( scrPosY+(int)(spritList[id].DrawRectHeight/2) );
 }
Exemple #45
0
 /// スプライトのα値を変更する
 public void SetAlpha( SpriteId sprId, float alpha )
 {
     int id = (int)sprId;
     spritList[id].Alpha = alpha;
 }
Exemple #46
0
 /// private メソッド
 ///---------------------------------------------------------------------------
 /// スプライトの登録
 public void SetSprite( SpriteId id )
 {
     spritList[(int)id].Visible = true;
 }