Beispiel #1
0
        public Object3()
        {
            Sprite.TextureSource = "texture";
            EditorPath           = "Colliders";
            Mass = 32;

            for (int i = 0; i < 50; i++)
            {
                //springs.Add(new Spring());
            }

            //   Speed = random_range(0.5, 2);
            //  Friction = 0.05;

            int index = irandom(50);

            //springs[index].Splash(10);
            endPos = new Vector2(irandom_range(-100, 100), irandom_range(-100, 100));

            // This creates a new circle collider
            // setting some properties
            cc            = new ColliderCircle();
            cc.Radius     = 64;
            cc.Name       = "main";
            cc.GameObject = this;

            // Add collider to the list of active colliders
            Colliders.Add(cc);

            EditorOptions = new[] { "I can have", "My own options", "Here" };

            // This will trigger script "MyCollision" when our collider main collides with collider "main" of any "Object3"
            // last arg ensures that the check will be triggered on each frame without explicit ask for it
            RegisterCollider(cc, typeof(Object3), "main", typeof(ColliderRectangle), MyCollision, true);
        }
        public void ApplyProperties(Component component, GameObject root)
        {
            var path = PropertyTransformer.TransformToStringPath(component);

            using (var serializer = new SerializedObject(component))
            {
                ApplyArrayToProperty(serializer.FindProperty("m_Colliders"), Colliders.Select(w => ToActualObject(path, w, root)).ToList());
                serializer.FindProperty("m_Damping").floatValue = Damping;
                serializer.FindProperty("m_DampingDistrib").animationCurveValue = DampingDistrib;
                serializer.FindProperty("m_DistanceToObject").floatValue        = DistanceToObject;
                serializer.FindProperty("m_DistantDisable").boolValue           = DistantDisable;
                serializer.FindProperty("m_Elasticity").floatValue = Elasticity;
                serializer.FindProperty("m_ElasticityDistrib").animationCurveValue = ElasticityDistrib;
                serializer.FindProperty("m_EndLength").floatValue   = EndLength;
                serializer.FindProperty("m_EndOffset").vector3Value = EndOffset;
                ApplyArrayToProperty(serializer.FindProperty("m_Exclusions"), Exclusion.Select(w => ToActualObject(path, w, root)).ToList());
                serializer.FindProperty("m_Force").vector3Value                   = Force;
                serializer.FindProperty("m_FreezeAxis").enumValueIndex            = FreezeAxis;
                serializer.FindProperty("m_Gravity").vector3Value                 = Gravity;
                serializer.FindProperty("m_Inert").floatValue                     = Inert;
                serializer.FindProperty("m_InertDistrib").animationCurveValue     = InertDistrib;
                serializer.FindProperty("m_Radius").floatValue                    = Radius;
                serializer.FindProperty("m_RadiusDistrib").animationCurveValue    = RadiusDistrib;
                serializer.FindProperty("m_ReferenceObject").objectReferenceValue = ToActualObject(path, ReferenceObject, root);
                serializer.FindProperty("m_Root").objectReferenceValue            = ToActualObject(path, RootReference, root);
                serializer.FindProperty("m_Stiffness").floatValue                 = Stiffness;
                serializer.FindProperty("m_StiffnessDistrib").animationCurveValue = StiffnessDistrib;
                serializer.FindProperty("m_UpdateMode").enumValueIndex            = UpdateMode;
                serializer.FindProperty("m_UpdateRate").floatValue                = UpdateRate;

                serializer.ApplyModifiedPropertiesWithoutUndo();
            }
        }
Beispiel #3
0
 /// <summary>
 /// Attempts to remove a Collider from the primary collection, if that fails then an attempt will be made to
 /// remove it from the fallback collection.
 /// </summary>
 /// <param name="collider">The Collider to be removed.</param>
 /// <param name="primary">The first collection to attempt to remove the Collider from.</param>
 /// <param name="fallback">Attempt to remove the Collider from this if the primary fails.</param>
 private void RemoveCollider(Collider collider, Colliders primary, Colliders fallback)
 {
     if (!primary.Remove(collider))
     {
         fallback.Remove(collider);
     }
 }
Beispiel #4
0
        /// <summary>
        /// Creates and displays a mesh that represents a connecting pipe between the source and the
        /// target parts.
        /// </summary>
        protected virtual void CreateLinkPipe()
        {
            var nrmTexture = pipeNormalsTexturePath != ""
        ? GetTexture(pipeNormalsTexturePath, asNormalMap: true)
        : null;
            var material = CreateMaterial(GetTexture(pipeTexturePath),
                                          mainTexNrm: nrmTexture,
                                          overrideShaderName: shaderNameOverride,
                                          overrideColor: colorOverride);

            linkPipe = Meshes.CreateCylinder(pipeDiameter, 1f, material, partModelTransform,
                                             colliderType: Colliders.PrimitiveCollider.Shape);
            Colliders.UpdateColliders(linkPipe, isPhysical: pipeColliderIsPhysical);
            if (pipeColliderIsPhysical)
            {
                CollisionManager.IgnoreCollidersOnVessel(
                    vessel, linkPipe.GetComponentsInChildren <Collider>());
                // TODO(ihsoft): Ignore the parts when migrated to the interfaces.
                Colliders.SetCollisionIgnores(sourceTransform.root, targetTransform.root, true);
            }
            linkPipeMR = linkPipe.GetComponent <Renderer>(); // To speedup OnUpdate() handling.
            SetupPipe(linkPipe.transform,
                      sourceJointNode.pipeAttach.position, targetJointNode.pipeAttach.position);
            RescaleTextureToLength(linkPipe, pipeTextureSamplesPerMeter,
                                   renderer: linkPipeMR, scaleRatio: 1 / stretchRatio);
            // Let the part know about the new mesh so that it could be properly highlighted.
            part.RefreshHighlighter();
        }
    void Update()
    {
        correct = playerCollision.correct;


        //when triggered fills an array of bridges and an array of all letter grid pieces
        if (LoadQuestion.trigger)
        {
            Colliders.trig       = true;
            LoadQuestion.trigger = false;
            fillTextArray();
            Bridges = GameObject.FindGameObjectsWithTag("Bridge");
        }

        //when the player asnwers correctly the bridge appears, the board turns blank and the next question is loaded
        if (playerCollision.correct == true /*|| Input.GetKeyDown("space")*/)
        {
            playerCollision.correct = false;
            rend = Bridges[bridgeCount].GetComponent <Renderer>();
            Colliders.RemoveCollider(bridgeCount);
            rend.enabled = true;
            StopColliders();

            bridgeCount++;
            corrAns++;
            questionLevel++;

            Load.GetQuestion(questionLevel);
            answerLocation();
        }
    }
Beispiel #6
0
        public Map(byte[] content)
        {
            using (MemoryStream stream = new MemoryStream(content))
            {
                using (BinaryReader reader = new BinaryReader(stream))
                {
                    Colliders  = ReadTiles(reader);
                    DimensionX = Colliders.GetUpperBound(0) + 1;
                    DimensionY = Colliders.GetUpperBound(1) + 1;
                    Width      = DimensionX - 1;
                    Height     = DimensionY - 1;

                    Tiles1 = ReadTiles(reader);
                    Tiles2 = ReadTiles(reader);
                    Tiles3 = ReadTiles(reader);
                    Tiles4 = ReadTiles(reader);

                    MapWeather = ReadString(reader);
                    reader.ReadInt16();
                    reader.ReadInt16();
                    IsOutside = reader.ReadByte() != 0;
                    reader.ReadByte();
                    Region = ReadString(reader);

                    Links = new bool[DimensionX, DimensionY];
                    int linkCount = reader.ReadInt16();
                    for (int i = 0; i < linkCount; ++i)
                    {
                        int x = reader.ReadInt16();
                        int y = reader.ReadInt16();
                        Links[x, y] = true;
                    }

                    int npcCount = reader.ReadInt16();

                    Npcs         = new List <Npc>();
                    OriginalNpcs = new List <Npc>();
                    for (int i = 0; i < npcCount; ++i)
                    {
                        string npcName = ReadString(reader);
                        int    x       = reader.ReadInt16();
                        int    y       = reader.ReadInt16();

                        int direction = reader.ReadByte();
                        int losLength = reader.ReadByte();
                        int type      = reader.ReadInt16();

                        string path = ReadString(reader);

                        bool isBattler = reader.ReadInt16() != 0;

                        int npcId = reader.ReadInt16();

                        reader.ReadInt16();

                        OriginalNpcs.Add(new Npc(npcId, npcName, isBattler, type, x, y, DirectionExtensions.FromNumber(direction), losLength, path));
                    }
                }
            }
        }
Beispiel #7
0
 public SturdyCrate()
 {
     name = Name;
     sideall = "planks";
     categories = new List<string>()
     {
         CommonCategories.Essential,
         CommonCategories.Storage,
         CommonCategories.Crate,
         "ba",
         nameof(TimePeriod.StoneAge),
         GameSetup.NAMESPACE
     };
     isSolid = true;
     colliders = new Colliders()
     {
         collidePlayer = true,
         collideSelection = true,
         boxes = new List<Colliders.Boxes>()
         {
             new Colliders.Boxes(new List<float>(){ 0.5f, 0.5f, -0.4f }, new List<float>(){ -0.5f, -0.5f, -0.5f }),
             new Colliders.Boxes(new List<float>(){ 0.5f, 0.5f, 0.5f }, new List<float>(){ -0.5f, -0.5f, 0.4f }),
             new Colliders.Boxes(new List<float>(){ -0.4f, 0.5f, 0.5f }, new List<float>(){ -0.5f, -0.5f, -0.5f }),
             new Colliders.Boxes(new List<float>(){ 0.5f, 0.5f, 0.5f }, new List<float>(){ 0.4f, -0.5f, -0.5f }),
             new Colliders.Boxes(new List<float>(){ 0.5f, -0.4f, 0.5f }, new List<float>(){ -0.5f, -0.5f, -0.5f })
         }
     };
     onPlaceAudio = "woodPlace";
     onRemoveAudio = "woodDeleteLight";
     icon = GameSetup.Textures.GetPath(TextureType.icon, nameof(TimePeriod.StoneAge) + "/" + "SturdyCrate.png");
     mesh = GameSetup.MESH_PATH + "SturdyCrate.ply";
 }
Beispiel #8
0
 /// <summary>
 /// Removes dead objects
 /// </summary>
 private void RemoveObjects()
 {
     if (vehiclesToRemove.Count > 0)
     {
         foreach (GameObject go in vehiclesToRemove)
         {
             gameObjectsToRemove.Add(go);
         }
         UpdatePlayerAmount();
     }
     if (gameObjectsToRemove.Count > 0)
     {
         foreach (var go in gameObjectsToRemove)
         {
             if (go.GetComponent("Collider") is Collider collider)
             {
                 lock (colliderKey)
                 {
                     Colliders.Remove(collider);
                 }
             }
             gameObjects.Remove(go);
         }
         gameObjectsToRemove.Clear();
     }
 }
Beispiel #9
0
        public oBallStatic()
        {
            EditorPath = "Collisions";

            ColliderCircle cr = new ColliderCircle(this);

            cr.Position   = Position;
            cr.Radius     = 64;
            cr.Name       = "Main";
            cr.GameObject = this;

            Colliders.Add(cr);

            box1 = new DarkCheckBox()
            {
                Text = "On", AutoSize = true
            };
            box1.CheckStateChanged += box1event;


            box2 = new DarkCheckBox()
            {
                Text = "Off", AutoSize = true
            };
            box2.CheckStateChanged += box2event;

            EditorProperties    = new Control[3];
            EditorProperties[0] = new DarkLabel()
            {
                Text = "Toggle particles", AutoSize = true
            };
            EditorProperties[1] = box1;
            EditorProperties[2] = box2;
        }
Beispiel #10
0
        protected virtual void OnLoadObjectColliders()
        {
            var colliders = GetComponentsInChildren <Collider>();

            Hitbox = GetComponentInChildren <Hitbox>();
            if (Hitbox == null)
            {
                foreach (var c in colliders)
                {
                    var hitbox = c.GetComponent <Hitbox>();
                    if (hitbox == null)
                    {
                        continue;
                    }
                    if (Hitbox != null)
                    {
                        Debug.LogWarning(
                            $"There is more than one Hitbox in this model ({name}) with may cause problems with collision detection.",
                            this);
                        continue;
                    }

                    Hitbox = hitbox;
                }
            }

            Colliders.AddRange(colliders);
        }
Beispiel #11
0
    void OnTriggerEnter2D(Collider2D col)
    {
        int temp = Colliders.getCurrentMap();

        Colliders.SetCurrentMap(8);
        Colliders.SetLastMap(temp);
    }
Beispiel #12
0
    void OnTriggerEnter2D(Collider2D col)
    {
        print("1111");
        int temp = Colliders.getCurrentMap();

        Colliders.SetCurrentMap(3);
        Colliders.SetLastMap(temp);
    }
Beispiel #13
0
 /// <summary>
 /// Add a collider to the entity.
 /// </summary>
 /// <param name="c"></param>
 public T AddCollider <T>(T c) where T : Collider
 {
     Colliders.Add(c);
     c.Entity = this;
     c.Added();
     Scene?.AddColliderInternal(c);
     return(c);
 }
 public void Dispose()
 {
     Springs.Dispose();
     Joints.Dispose();
     BlittableTransforms.Dispose();
     Colliders.Dispose();
     Logics.Dispose();
 }
 void Reset()
 {
     // default shape
     Colliders.Add(new VRM10SpringBoneCollider
     {
         ColliderType = VRM10SpringBoneColliderTypes.Capsule,
         Radius       = 0.1f
     });
 }
Beispiel #16
0
 /// <inheritdoc/>
 protected override void SetCollisionIgnores(Part otherPart, bool ignore)
 {
     if (pipeTransform != null)
     {
         Colliders.SetCollisionIgnores(pipeTransform, otherPart.transform, ignore);
     }
     Colliders.SetCollisionIgnores(sourceJointNode.rootModel, otherPart.transform, ignore);
     Colliders.SetCollisionIgnores(targetJointNode.rootModel, otherPart.transform, ignore);
 }
 private void TryInteract()
 {
     if (InputManager.Interact && interactables.Count > 0)
     {
         var closest = interactables.OrderBy(x => x.Collider.Distance(Colliders.First()).distance).First();
         closest.Interact();
         animator.SetTrigger("Poke");
     }
 }
Beispiel #18
0
 private void Start()
 {
     _rbBall              = ball.GetComponent <Rigidbody>();
     _trBall              = ball.GetComponent <Transform>();
     _trPole              = pole.GetComponent <Transform>();
     _ballColliders       = ball.GetComponent <Colliders>();
     _poleDefaultPosition = _trPole.position;
     _poleDefaultRotation = _trPole.rotation;
     _ballDefaultPosition = _trBall.localPosition;
 }
        /// <summary>
        /// Adds a collider to the world if it doesn't already exist.
        /// </summary>
        /// <param name="_collider"></param>
        public void AddCollider(ABCollider _collider)
        {
            if (Colliders.Contains(_collider))
            {
                Debug.LogWarning("Can't add duplicate collider!");
                return;
            }

            Colliders.Add(_collider);
        }
Beispiel #20
0
 /// <inheritdoc/>
 protected override void UpdateColliderOverrides()
 {
     if (pipeTransform != null)
     {
         Colliders.UpdateColliders(pipeTransform.gameObject, isEnabled: isPhysicalCollider);
     }
     Colliders.UpdateColliders(
         sourceJointNode.rootModel.gameObject, isEnabled: isPhysicalCollider);
     Colliders.UpdateColliders(
         targetJointNode.rootModel.gameObject, isEnabled: isPhysicalCollider);
 }
Beispiel #21
0
 public oPlayer()
 {
     Sprite.TextureSource = "elves2";
     EditorPath           = "Actors";
     ImageSpeed           = 0.01f;
     bodyCollider         = new ColliderRectangle(this)
     {
         Collision = new RectangleF(16, 48, 32, 16), AttachToRoot = true, Name = "bodyCollider"
     };
     Colliders.Add(bodyCollider);
 }
Beispiel #22
0
 /// <summary>
 /// Add a collider to the entity.
 /// </summary>
 /// <param name="c"></param>
 public T AddCollider <T>(T c) where T : Collider
 {
     Colliders.Add(c);
     c.Entity = this;
     c.Added();
     if (Scene != null)
     {
         Scene.AddColliderInternal(c);
     }
     return(c);
 }
Beispiel #23
0
 private void Start()
 {
     rb_ball            = ball.GetComponent <Rigidbody>();
     tr_ball            = ball.GetComponent <Transform>();
     tr_pole            = pole.GetComponent <Transform>();
     _ballColliders     = ball.GetComponent <Colliders>();
     pole_position      = tr_pole.position;
     pole_rotation      = tr_pole.rotation;
     shootPositionRange = shootPositionRange / 2;
     KickInTheBall();
 }
Beispiel #24
0
        public oPlayer()
        {
            Sprite.TextureSource = "elves2";
            EditorPath           = "Colliders";
            ImageSpeed           = 0.01;

            Colliders.Add(new ColliderRectangle()
            {
                Collision = new RectangleF(16, 48, 32, 16)
            });
        }
Beispiel #25
0
    /// <summary>
    /// For meshes...
    /// </summary>
    /// <param name="assetLoaderContext"></param>
    public void OnModelLoaded(object sender, ImportedMeshEventArgs args)
    {
        if (args.Name != this.GetId())
        {
            return;
        }

        bool outlineWasHighlighted = outlineOnClick.Highlighted;

        if (Model != null)
        {
            outlineOnClick.UnHighlight();
            outlineOnClick.ClearRenderers();

            Model.SetActive(false);
            Destroy(Model);
        }

        Model = args.RootGameObject;

        Model.gameObject.transform.parent        = Visual.transform;
        Model.gameObject.transform.localPosition = Vector3.zero;
        Model.gameObject.transform.localRotation = Quaternion.identity;

        gameObject.GetComponent <BindParentToChild>().ChildToBind = Model;

        foreach (Renderer child in Model.GetComponentsInChildren <Renderer>(true))
        {
            child.gameObject.AddComponent <OnClickCollider>().Target = gameObject;
            child.gameObject.AddComponent <MeshCollider>();
        }

        aoRenderers.Clear();
        Colliders.Clear();
        aoRenderers.AddRange(Model.GetComponentsInChildren <Renderer>(true));
        Colliders.AddRange(Model.GetComponentsInChildren <MeshCollider>(true));
        outlineOnClick.InitRenderers(aoRenderers);
        outlineOnClick.InitMaterials();

        //transparent = false; //needs to be set before 1st call of SetVisibility after model loading
        SetVisibility(visibility, forceShaderChange: true);

        if (outlineWasHighlighted)
        {
            outlineOnClick.Highlight();
            if (SelectorMenu.Instance.ManuallySelected)
            {
                DisplayOffscreenIndicator(true);
            }
        }

        MeshImporter.Instance.OnMeshImported -= OnModelLoaded;
    }
Beispiel #26
0
        public oBrick()
        {
            EditorPath = "Actors";

            ColliderRectangle cr = new ColliderRectangle(this);

            cr.Name       = "MainCollider";
            cr.GameObject = this;
            cr.Collision  = new RectangleF(0, 0, 64, 32);

            Colliders.Add(cr);
        }
Beispiel #27
0
        /// <summary>
        /// Remove the collider from the entity.
        /// </summary>
        /// <param name="c"></param>
        public T RemoveCollider <T>(T c) where T : Collider
        {
            if (Colliders.Contains(c))
            {
                Colliders.Remove(c);
                c.Removed();
                c.Entity = null;

                Scene?.RemoveColliderInternal(c);
            }
            return(c);
        }
Beispiel #28
0
        public oGeorgeNew()
        {
            EditorPath           = "Actors";
            Sprite.TextureSource = "george";


            bodyCollider            = new ColliderRectangle(this);
            bodyCollider.Collision  = new RectangleF(0, 0, 48, 48);
            bodyCollider.GameObject = this;
            bodyCollider.Name       = "main";

            Colliders.Add(bodyCollider);
        }
Beispiel #29
0
        public oSolidMask()
        {
            EditorPath           = "Solid";
            Sprite.TextureSource = "texture";
            Sprite.Texture       = sprite_get("texture");

            cr.Collision  = new RectangleF(0, 0, 32, 32);
            cr.Name       = "main";
            cr.GameObject = this;

            cr = new ColliderRectangle(this);
            Colliders.Add(cr);
        }
Beispiel #30
0
 public void Dispose()
 {
     if (IsDisposed)
     {
         return;
     }
     IsDisposed = true;
     Springs.Dispose();
     Joints.Dispose();
     BlittableTransforms.Dispose();
     Colliders.Dispose();
     Logics.Dispose();
 }
Beispiel #31
0
 public Bullet(int shape = 0, int collider = 0, 
     float uniformScale = 0.5f, float xScale = 1f, float yScale = 1f, float zScale = 1f,
     bool isRigid = true, float mass = 1f, float drag = 0f, float angularDrag = 0.05f,
     bool useGravity = true)
 {
     this.shape = (Shapes)shape;
     this.collider = (Colliders)collider;
     this.uniformScale = uniformScale;
     this.xScale = uniformScale*xScale;
     this.yScale = uniformScale*yScale;
     this.zScale = uniformScale*zScale;
     this.isRigid = isRigid;
     this.mass = mass;
     this.drag = drag;
     this.angularDrag = angularDrag;
     this.useGravity = useGravity;
 }
 void collider_onCollidionEnded(Colliders.CollisionInfo info)
 {
     collisions.Remove(info);
     OnCollisionsChanged();
 }
 void collider_onCollisionStarted(Colliders.CollisionInfo info)
 {
     collisions.Add(info);
     OnCollisionsChanged();
 }
Beispiel #34
0
 void collider_onCollisionStarted(Colliders.CollisionInfo info)
 {
     if (info.Collider1 == collider && info.Collider2.Group.Name == "Blocker")
     {
         Move(-curTickMovement);
     }
     if (info.Collider2 == collider && info.Collider1.Group.Name == "Blocker")
     {
         Move(-curTickMovement);
     }
 }