void Start()
 {
     pv = player.GetComponent<PlayerVolume> ();
     standard = GameObject.Find ("StandardObject");
     sob = standard.GetComponent<StandardObject> ();
     //currentVolume = VolumeCalculator.volumeFromDiameter (destructible.transform.lossyScale.x);
 }
Example #2
0
        protected virtual void WriteStandardObjectToXML(XmlWriter writer, StandardObject obj)
        {
            writer.WriteStartElement("StandardObject");

            writer.WriteAttributeString("area", obj.m_Area.ToString());
            writer.WriteAttributeString("star", obj.m_Layer.ToString());
            writer.WriteComment(ObjectDatabase.m_ObjectInfo[obj.ID].m_InternalName);

            writer.WriteElementString("ObjectID", obj.ID.ToString());

            WriteObjectPositionToXML(writer, obj);

            writer.WriteElementString("YRotation", Helper.ToString(obj.YRotation));

            writer.WriteStartElement("Parameters");
            writer.WriteAttributeString("count", "3");
            for (int j = 0; j < 3; j++)
            {
                writer.WriteStartElement("Parameter");
                writer.WriteAttributeString("id", j.ToString());
                writer.WriteString(obj.Parameters[j].ToString());
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            writer.WriteEndElement();
        }
 void Start()
 {
     standard = GameObject.Find ("StandardObject");
     sob = standard.GetComponent<StandardObject> ();
     //spawnRange = new float[6]{1500, 1600, 0, 75, -1100, 1100};
     startTime = Time.time;
 }
        private static void WriteStandardObjectToXML(XmlWriter writer, StandardObject obj)
        {
            writer.WriteStartElement("StandardObject");

            writer.WriteAttributeString("area", obj.m_Area.ToString());
            writer.WriteAttributeString("star", obj.m_Layer.ToString());
            writer.WriteComment(ObjectDatabase.m_ObjectInfo[obj.ID].m_InternalName);

            writer.WriteElementString("ObjectID", obj.ID.ToString());

            writer.WriteStartElement("Position");
            writer.WriteElementString("X", obj.Position.X.ToString(usa));
            writer.WriteElementString("Y", obj.Position.Y.ToString(usa));
            writer.WriteElementString("Z", obj.Position.Z.ToString(usa));
            writer.WriteEndElement();

            writer.WriteElementString("YRotation", obj.YRotation.ToString(usa));

            writer.WriteStartElement("Parameters");
            writer.WriteAttributeString("count", "3");
            for (int j = 0; j < 3; j++)
            {
                writer.WriteStartElement("Parameter");
                writer.WriteAttributeString("id", j.ToString());
                writer.WriteString(obj.Parameters[j].ToString());
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            writer.WriteEndElement();
        }
Example #5
0
        public StandardObject AddStandardObject(ushort id, int layer, int area)
        {
            StandardObject obj = new StandardObject(
                InitialiseDataForObject(LevelObject.Type.STANDARD, id), (int)GetNextUniqueID(), layer, area);

            m_LevelObjects.Add(obj.m_UniqueID, obj);
            return(obj);
        }
Example #6
0
    void OnTriggerEnter(Collider other)
    {
        // In case positioned objects collide with this script
        StandardObject so = other.GetComponent <StandardObject>();

        if (so != null && other.transform.parent != transform)
        {
            if (so.IsGrabbed() == true)
            {
                // I am in use, do not go past GO!
                return;
            }

            // Set the neccessary settings
            //so.UseGravity(false);
            other.transform.parent = transform;
        }
    }
Example #7
0
        protected virtual void ReadStandardObject(XmlReader reader, Level level)
        {
            int area  = int.Parse(reader.GetAttribute("area"));
            int layer = int.Parse(reader.GetAttribute("star"));

            ushort  id        = 0;
            Vector3 position  = Vector3.Zero;
            float   yRotation = 0.0f;

            ushort[] parameters = new ushort[3];

            while (reader.Read())
            {
                reader.MoveToContent();
                if (reader.NodeType.Equals(XmlNodeType.Element) && reader.LocalName.Equals("ObjectID"))
                {
                    id = ushort.Parse(reader.ReadElementContentAsString());
                }
                else if (reader.NodeType.Equals(XmlNodeType.Element) && reader.LocalName.Equals("Position"))
                {
                    position = ReadPositionVector3(reader);
                }
                else if (reader.NodeType.Equals(XmlNodeType.Element) && reader.LocalName.Equals("YRotation"))
                {
                    yRotation = Helper.ParseFloat(reader.ReadElementContentAsString());
                }
                else if (reader.NodeType.Equals(XmlNodeType.Element) && reader.LocalName.Equals("Parameters"))
                {
                    parameters = ReadParameters(reader, 3);
                }
                else if (reader.NodeType.Equals(XmlNodeType.EndElement) && reader.LocalName.Equals("StandardObject"))
                {
                    break;
                }
            }

            StandardObject obj = level.AddStandardObject(id, layer, area);

            obj.Position   = position;
            obj.YRotation  = yRotation;
            obj.Parameters = parameters;
        }
        private static void WriteStandardObjectToXML(XmlWriter writer, StandardObject obj)
        {
            writer.WriteStartElement("StandardObject");

            writer.WriteAttributeString("area", obj.m_Area.ToString());
            writer.WriteAttributeString("star", obj.m_Layer.ToString());
            writer.WriteComment(ObjectDatabase.m_ObjectInfo[obj.ID].m_InternalName);

            writer.WriteElementString("ObjectID", obj.ID.ToString());

            writer.WriteStartElement("Position");
            writer.WriteElementString("X", obj.Position.X.ToString(usa));
            writer.WriteElementString("Y", obj.Position.Y.ToString(usa));
            writer.WriteElementString("Z", obj.Position.Z.ToString(usa));
            writer.WriteEndElement();

            writer.WriteElementString("YRotation", obj.YRotation.ToString(usa));

            writer.WriteStartElement("Parameters");
            writer.WriteAttributeString("count", "3");
            for (int j = 0; j < 3; j++)
            {
                writer.WriteStartElement("Parameter");
                writer.WriteAttributeString("id", j.ToString());
                writer.WriteString(obj.Parameters[j].ToString());
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            writer.WriteEndElement();
        }
Example #9
0
        private void ReadObjectTable(NitroOverlay ovl, uint offset, int area)
        {
            uint subtbl_num    = ovl.Read32(offset);
            uint subtbl_offset = ovl.ReadPointer(offset + 0x4);

            for (uint st = 0; st < subtbl_num; st++)
            {
                uint curoffset = subtbl_offset + (st * 8);

                byte flags          = ovl.Read8(curoffset);
                byte entries_num    = ovl.Read8(curoffset + 0x1);
                uint entries_offset = ovl.ReadPointer(curoffset + 0x4);

                byte type  = (byte)(flags & 0x1F);
                byte layer = (byte)(flags >> 5);

                if (type == 11)
                {
                    m_MinimapFileIDs = new ushort[entries_num];
                }

                for (byte e = 0; e < entries_num; ++e)
                {
                    LevelObject    obj;
                    INitroROMBlock objData = new INitroROMBlock();
                    objData.m_Data = ovl.ReadBlock((uint)(entries_offset + e * k_LevelObjTypeSizes[type]), (uint)k_LevelObjTypeSizes[type]);
                    switch (type)
                    {
                    case 0:
                        obj = new StandardObject(objData, m_LevelObjects.Count, layer, area);
                        break;

                    case 1:
                        obj = new EntranceObject(objData, m_LevelObjects.Count, layer, m_EntranceID++);
                        break;

                    case 2:     // Path Node
                        obj = new PathPointObject(objData, m_LevelObjects.Count, m_PathNodeID++);
                        break;

                    case 3:     // Path
                        obj = new PathObject(objData, m_LevelObjects.Count, (ushort)m_PathID++);
                        break;

                    case 4:
                        obj = new ViewObject(objData, m_LevelObjects.Count, m_ViewID++);
                        break;

                    case 5:
                        obj = new SimpleObject(objData, m_LevelObjects.Count, layer, area);
                        break;

                    case 6:
                        obj = new TpSrcObject(objData, m_LevelObjects.Count, layer);
                        break;

                    case 7:
                        obj = new TpDstObject(objData, m_LevelObjects.Count, layer);
                        break;

                    case 8:
                        // Fog
                        obj = new FogObject(objData, m_LevelObjects.Count, layer, area);
                        break;

                    case 9:
                        obj = new DoorObject(objData, m_LevelObjects.Count, layer);
                        break;

                    case 10:
                        obj = new ExitObject(objData, m_LevelObjects.Count, layer);
                        break;

                    case 11:
                        obj = new MinimapTileIDObject(objData, m_LevelObjects.Count, layer, m_MinimapTileIDNum++);
                        // This is still used by Minimap Editor
                        m_MinimapFileIDs[e] = ovl.Read16((uint)(entries_offset + (e * 2)));
                        break;

                    case 12:
                        // per-area minimap scale factors
                        obj = new MinimapScaleObject(objData, m_LevelObjects.Count, layer, area);
                        break;

                    case 14:
                        // ??? Unknown
                        obj = new Type14Object(objData, m_LevelObjects.Count, layer, area);
                        break;

                    default:
                        throw new InvalidDataException("Bad object type: " + type);
                    }

                    m_LevelObjects.Add(obj.m_UniqueID, obj);
                }
            }
        }
    void Start()
    {
        standard = GameObject.Find ("StandardObject");
        sob = standard.GetComponent<StandardObject> ();
        relativeScaling = sob.getStandardScaling();
        currentVolume = VolumeCalculator.getScaledVolume (gameObject, type, relativeScaling);

        rend = this.GetComponent<Renderer> ();
        baseMat = rend.material;
        dh = transform.parent.GetComponent<DestructiblesHandler> ();
        startTime = Time.time;
        changeMatbool = false;

        rb = GetComponent<Rigidbody> ();
        setMass ();
        shrinkSpeed *= transform.lossyScale.magnitude;

        dimensions = new float[4]{0,0,0,0};
        setDimensions ();
    }
    void Start()
    {
        standard = GameObject.Find ("StandardObject");
        sob = standard.GetComponent<StandardObject> ();

        relativeScaling = sob.getStandardScaling();
        psfx = gameObject.GetComponent<PlayerSoundFX> ();
        pg = particleGenObj.GetComponent<ParticleGenerator> ();
        peh = primEventObj.GetComponent<PrimaryEventHandler> ();
        GameObject pgdg = GameObject.Find (preservedDataName);
        if (pgdg == null) {
            pgd = null;
        } else {
            pgd = pgdg.GetComponent<PreservedGameData> ();
        }
        if (pgd != null && pgd.getSavedVolume () >= 0) {
            currentVolume = pgd.getSavedVolume ();
        } else {
            currentVolume = VolumeCalculator.newGetVolume(this.gameObject, this.type);
        }
        updateScale(false);
    }