コード例 #1
0
ファイル: Items.cs プロジェクト: Sickelmo83/SkyOfSteel
    public static void SetupItems()
    {
        IdInfos = new Dictionary <ID, IdInfo>()
        {
            {
                ID.ERROR,

                new IdInfo {
                }
            },

            {
                ID.PLATFORM,

                new IdInfo {
                    PositionDelegate     = BuildingLogic.PlatformBuildPosition,
                    RotationDelegate     = BuildingLogic.PlatformBuildRotation,
                    UseDelegate          = null,
                    FullAuto             = false,
                    CanAds               = false,
                    DisallowedCollisions = new ID[] { ID.PLATFORM }
                }
            },

            {
                ID.WALL,

                new IdInfo {
                    PositionDelegate     = BuildingLogic.WallBuildPosition,
                    RotationDelegate     = BuildingLogic.WallBuildRotation,
                    UseDelegate          = null,
                    FullAuto             = false,
                    CanAds               = false,
                    DisallowedCollisions = new ID[] { ID.WALL, ID.TRIANGLE_WALL }
                }
            },

            {
                ID.SLOPE,

                new IdInfo {
                    PositionDelegate     = BuildingLogic.SlopeBuildPosition,
                    RotationDelegate     = BuildingLogic.SlopeBuildRotation,
                    UseDelegate          = null,
                    FullAuto             = false,
                    CanAds               = false,
                    DisallowedCollisions = new ID[] { ID.SLOPE, ID.PIPE, ID.PIPE_JOINT }
                }
            },

            {
                ID.TRIANGLE_WALL,

                new IdInfo {
                    PositionDelegate     = BuildingLogic.TriangleWallBuildPosition,
                    RotationDelegate     = BuildingLogic.TriangleWallBuildRotation,
                    UseDelegate          = null,
                    FullAuto             = false,
                    CanAds               = false,
                    DisallowedCollisions = new ID[] { ID.TRIANGLE_WALL, ID.WALL }
                }
            },

            {
                ID.PIPE,

                new IdInfo {
                    PositionDelegate     = BuildingLogic.PipeBuildPosition,
                    RotationDelegate     = BuildingLogic.PipeBuildRotation,
                    DisallowedCollisions = new ID[] { ID.SLOPE, ID.PIPE, ID.PIPE_JOINT }
                }
            },

            {
                ID.PIPE_JOINT,

                new IdInfo {
                    PositionDelegate     = BuildingLogic.PipeJointBuildPosition,
                    RotationDelegate     = BuildingLogic.PipeJointBuildRotation,
                    DisallowedCollisions = new ID[] { ID.SLOPE, ID.PIPE, ID.PIPE_JOINT }
                }
            },

            {
                ID.LOCKER,

                new IdInfo {
                    PositionDelegate     = BuildingLogic.LockerBuildPosition,
                    RotationDelegate     = BuildingLogic.LockerBuildRotation,
                    DisallowedCollisions = new ID[] { ID.LOCKER }
                }
            },

            {
                ID.ROCKET_JUMPER,

                new IdInfo {
                    UseDelegate = RocketJumper.Fire,
                    FullAuto    = false,
                    CanAds      = false
                }
            },

            {
                ID.THUNDERBOLT,

                new IdInfo {
                    UseDelegate = Thunderbolt.Fire,
                    FullAuto    = false,
                    CanAds      = true
                }
            },

            {
                ID.SCATTERSHOCK,

                new IdInfo {
                    UseDelegate = Scattershock.Fire,
                    FullAuto    = false,
                    CanAds      = true
                }
            },

            {
                ID.SWIFTSPARK,

                new IdInfo {
                    UseDelegate = SwiftSpark.Fire,
                    FullAuto    = true,
                    CanAds      = true
                }
            },

            {
                ID.SLIME_SPAWNER,

                new IdInfo {
                    UseDelegate = (Items.Instance Item, Player UsingPlayer) => {
                        Mobs.SpawnMob(Mobs.ID.Slime, UsingPlayer.Translation);
                    },
                    FullAuto = false,
                    CanAds   = false
                }
            }
        };

        //Lets make sure that every ID has an entry
        //This won't help mods but will help us greatly
        foreach (ID Type in System.Enum.GetValues(typeof(ID)))
        {
            if (Type == ID.NONE)
            {
                continue;
            }

            Assert.ActualAssert(IdInfos.ContainsKey(Type));
        }
    }