コード例 #1
0
        private void CreateAi(MobType mobType)
        {
            Func <CreatureState>   getter = () => AttachedObject.GetValue(CreatureStateProperty);
            Action <CreatureState> setter = v => AttachedObject.SetLocalValue(CreatureStateProperty, v);
            CreatureAi             ai;

            switch (mobType)
            {
            case Entities.MobType.Chicken:
                ai = new AiChicken(getter, setter);
                break;

            case Entities.MobType.Cow:
                ai = new AiCow(getter, setter);
                break;

            case Entities.MobType.Creeper:
                ai = new AiCreeper(getter, setter);
                break;

            case Entities.MobType.Pig:
                ai = new AiPig(getter, setter);
                break;

            case Entities.MobType.Sheep:
                ai = new AiSheep(getter, setter);
                break;

            case Entities.MobType.Skeleton:
                ai = new AiSkeleton(getter, setter);
                break;

            case Entities.MobType.Spider:
                ai = new AiSpider(getter, setter);
                break;

            case Entities.MobType.Squid:
                // TODO new ai for squid
                ai = new AiChicken(getter, setter);
                break;

            case Entities.MobType.Zombie:
                ai = new AiZombie(getter, setter);
                break;

            default:
                // TODO add more ai
                Logger.LogWarning("AI of this mob has not been implemented: {0}.", mobType);
                ai = null;
                break;
            }

            _ai = ai;
        }
コード例 #2
0
ファイル: Creature.cs プロジェクト: Emmsii/KeyKeeper
 public void SetAi(CreatureAi ai)
 {
     Ai = ai;
 }