コード例 #1
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        this.generator = generator;

        generator.OnActorGOChanged += delegate(ActorData data, Actor newActor, RuleGenerator ruleGenerator)
        {
            if (WatchedObject == null || WatchedObject.Id == data.id)
                WatchedObject = newActor;
        };

        string[] actors = generator.Gui.ActorNames;
        actorDropDown = new ActorDropDown(
            System.Array.FindIndex(actors, item => item == Actor.Label), actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);

        if (WatchedObject == null)
        {
            WatchedObject = generator.GetActor(0); // dont get global actor bec it could be anywhere
        }

        watchedActorDropDown = new ActorDropDown(
            System.Array.FindIndex(actors, item => item == WatchedObject.Label), actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);

        comparisonDropDown = new DropDown(
            (int)TriggerWhenDistance,
            System.Enum.GetNames(typeof(Comparison)));
    }
コード例 #2
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        this.generator = generator;

        string[] actors = generator.Gui.ActorNames;
        actorDropDown = new ActorDropDown(
            System.Array.FindIndex(actors, item => item == Reactor.Label),
            actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);
    }
コード例 #3
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        this.generator = generator;

        if (FixedToObject)
        {
            Reactor.transform.parent = FixedToObject.transform;
            Reactor.transform.localPosition = Offset;
        }

        // gui stuff
        string[] actors = generator.Gui.ActorNames;
        actorDropDown = new ActorDropDown(
            System.Array.FindIndex(actors, item => item == Reactor.Label),
            actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);
    }
コード例 #4
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        generator.OnActorGOChanged += delegate(ActorData data, Actor newActor, RuleGenerator ruleGenerator)
        {
            if (TargetObject == null || TargetObject.Id != data.id)
            {
                TargetObject = newActor;
            }
        };

        string selectedName = "";
        if (TargetObject != null)
            selectedName = TargetObject.Label;
        actorDropdown = new ActorDropDown(
            System.Array.FindIndex(generator.Gui.ActorNames, item => item == selectedName),
            generator.Gui.ActorNames,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);
    }
コード例 #5
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        generator.OnActorGOChanged += delegate(ActorData data, Actor newActor, RuleGenerator ruleGenerator)
        {
            if (WinningActor != null && WinningActor.Id == data.id)
            {
                WinningActor = newActor;
            }

            if (LosingActor != null && LosingActor.Id == data.id)
            {
                LosingActor = newActor;
            }
        };

        int selected = 0;

        string[] endingNames = System.Enum.GetNames(typeof(GameEnd));
        endingDropDown = new DropDown(0, endingNames);

        if (WinningActor != null)
            selected = System.Array.FindIndex(generator.Gui.ActorNames, item => item == WinningActor.Label);

        winningDropDown = new ActorDropDown(selected,
            generator.Gui.ActorNames,
            ref generator.Gui.OnAddedActor,
            ref generator.Gui.OnRenamedActor,
            ref generator.Gui.OnDeletedActor);

        selected = 0;
        if (LosingActor != null)
            selected = System.Array.FindIndex(generator.Gui.ActorNames, item => item == LosingActor.Label);

        losingDropDown = new ActorDropDown(selected,
            generator.Gui.ActorNames,
            ref generator.Gui.OnAddedActor,
            ref generator.Gui.OnRenamedActor,
            ref generator.Gui.OnDeletedActor);
    }
コード例 #6
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        this.generator = generator;

        generator.OnActorGOChanged += delegate(ActorData data, Actor newActor, RuleGenerator ruleGenerator)
        {
            if (CollideWithActor != null && CollideWithActor.Id == data.id)
                CollideWithActor = newActor;
        };

        // setting up gui elements - actors
        string[] actors = generator.Gui.ActorNames;
        actorDropDown = new ActorDropDown(
            System.Array.FindIndex(actors, item => item == Actor.Label),
            actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);

        // gui - tags
        tagDropDown = new DropDown(PossibleCollisionTags.FindIndex(item => item == CollideWithTag), PossibleCollisionTags.ToArray());

        // gui - collision with other actor
        int index = 0;
        if (CollideWithActor != null)
            index = System.Array.FindIndex(actors, item => item == CollideWithActor.Label);
        collisionActorDropDown = new ActorDropDown(index, actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);

        // gui - triggering
        triggerDropDown = new DropDown((int)TriggerOn, System.Enum.GetNames(typeof(CollisionPhase)));

        // gui - choosing which kinds of objects to trigger
        int init = 0;
        if (CollideWithActor != null)
            init = 1;
        chooseObjectKindDropDown = new DropDown(init, new string[] { "any object which is a", "the actor" });

        SubscribeRelay();
    }
コード例 #7
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        this.generator = generator;

        generator.OnActorGOChanged += delegate(ActorData data, Actor newActor, RuleGenerator ruleGenerator)
        {
            if (ObjectToDeactivate != null && ObjectToDeactivate.Id == data.id)
            {
                ObjectToDeactivate = newActor;
            }
        };

        if (ObjectToDeactivate == null)
        {
            ObjectToDeactivate = Reactor;
        }

        actorDropDown = new ActorDropDown(
            System.Array.FindIndex(generator.Gui.ActorNames, item => item == Reactor.Label),
            generator.Gui.ActorNames,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);

        targetObjectDropDown = new DropDown(
            (int)TargetObj,
            System.Enum.GetNames(typeof(TargetObject)));
    }
コード例 #8
0
    public override void Initialize(RuleGenerator generator)
    {
        base.Initialize(generator);

        this.generator = generator;

        generator.OnActorGOChanged += delegate(ActorData data, Actor newActor, RuleGenerator ruleGenerator)
        {
            if (ActorDirectionIsRelativeTo != null && ActorDirectionIsRelativeTo.Id == data.id)
            {
                ActorDirectionIsRelativeTo = newActor;
            }
        };

        if (Reactor.rigidbody == null)
            Reactor.gameObject.AddComponent<Rigidbody>();

        Reactor.rigidbody.freezeRotation = true;
        Reactor.rigidbody.useGravity = false;

        string[] actors = generator.Gui.ActorNames;
        actorDropDown = new ActorDropDown(
            System.Array.FindIndex(actors, item => item == Reactor.Label),
            actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);

        moveDirectionDropdown = new DropDown((int)MoveDirection, System.Enum.GetNames(typeof(Direction)));
        relativeToDropdown = new DropDown((int)DirectionRelativeTo, System.Enum.GetNames(typeof(RelativeTo)));

        relativeActorDropDown = new ActorDropDown(
            ActorDirectionIsRelativeTo != null ?
                System.Array.FindIndex(actors, item => item == ActorDirectionIsRelativeTo.Label) :
                0,
            actors,
            ref generator.Gui.OnAddedActor, ref generator.Gui.OnRenamedActor, ref generator.Gui.OnDeletedActor);
    }