Esempio n. 1
0
        public AgentCharacter(Lifetime lifetime, Character character, AgentManager agentManager,
                              IWin32Window owner, ClippySettingsStore settingsStore)
        {
            this.agentManager  = agentManager;
            this.owner         = owner;
            this.settingsStore = settingsStore;
            Character          = character;
            ScaleCharacterForDpi();

            AgentClicked         = new SimpleSignal(lifetime, "AgentCharacter::AgentClicked");
            ButtonClicked        = new Signal <string>(lifetime, "AgentCharacter::ButtonClicked");
            BalloonOptionClicked = new Signal <object>(lifetime, "AgentCharacter::BalloonOptionClicked");

            balloon = new BalloonManager(lifetime);
            balloon.ButtonClicked.FlowInto(lifetime, ButtonClicked);
            balloon.BalloonOptionClicked.FlowInto(lifetime, BalloonOptionClicked);

            requestHandlers = new Dictionary <int, Action>();

            characterWindow = OleWin32Window.FromIOleWindow(character.Interface);
            characterWindow.SetOwner(owner);

            initLocation = SetDefaultLocation;

            random = new Random();
        }
Esempio n. 2
0
        public Agent(Lifetime lifetime, AgentManager agentManager)
        {
            character = JetBrains.Util.Lazy.Lazy.Of(() =>
            {
                agentManager.Initialise();
                var agentCharacter = agentManager.GetAgent("Clippit");

                agentCharacter.AgentClicked.FlowInto(lifetime, AgentClicked);
                agentCharacter.ButtonClicked.FlowInto(lifetime, ButtonClicked);
                agentCharacter.BalloonOptionClicked.FlowInto(lifetime, BalloonOptionClicked);

                lifetime.AddAction(() => agentManager.UnloadAgent(agentCharacter));

                return(agentCharacter);
            });

            AgentClicked         = new SimpleSignal(lifetime, "Agent::AgentClicked");
            ButtonClicked        = new Signal <string>(lifetime, "Agent::ButtonClicked");
            BalloonOptionClicked = new Signal <object>(lifetime, "Agent::BalloonOptionClicked");
        }