private void InitObjectInfo(MCGameObject obj, MapObjFile.MCObj objData, ObjectType objtype, GameObject go) { obj.partId = objData.ObjId; obj.appearanceId = objtype.AppearanceName; obj.block = objData.Block; obj.vertex = objData.Vertex; obj.OffsetPixelX = objData.pixelOffsetX; obj.OffsetPixelY = objData.pixelOffsetY; obj.position = terrain.MapPositionToWorldCoords(obj.block, obj.vertex, obj.OffsetPixelX, obj.OffsetPixelY); go.name = string.Format("Obj-{0} [OBJ={1} SPR={2}]", obj.Name, obj.partId, obj.appearanceId); go.transform.position = obj.position; }
public void AddObject(int objTypeNum) { if (PalTexture == null) { PalTexture = MechCommanderUnity.Instance.ContentReader.ShapesPakFile.Palette.ExportPaletteTexture(); } MapObjFile.MCObj objData = new MapObjFile.MCObj() { Block = 0, damage = 0, ObjId = (short)objTypeNum, pixelOffsetX = 0, pixelOffsetY = 0, Vertex = 0 }; var objtype = objTypeManager.Get(objData.ObjId); var realDmg = objData.damage & 0x0f; MCGameObject obj; switch (objtype.objectClass) { case ObjectClass.TERRAINOBJECT: case ObjectClass.TREE: var terrainGo = new GameObject(); obj = terrainGo.AddComponent <TerrainObject>(); ((TerrainObject)obj).Init(objtype, appearanceTypeManager); //obj = new TerrainObject(objtype, appearanceTypeManager); obj.block = objData.Block; obj.vertex = objData.Vertex; obj.OffsetPixelX = objData.pixelOffsetX; obj.OffsetPixelY = objData.pixelOffsetY; obj.position = terrain.MapPositionToWorldCoords(obj.block, obj.vertex, obj.OffsetPixelX, obj.OffsetPixelY); //if (realDmg>0) //((TerrainObjectPtr)obj)->setDamage(((TerrainObjectTypePtr)objType)->getDamageLevel()); //objList[curCollidableHandle] = obj; //obj->setHandle(curCollidableHandle++); //obj->setExists(true); //appearanceTypeManager.GetAppearanceType(objtype.Appearance); terrainObjects.Add(terrainGo); break; case ObjectClass.TURRET: MechCommanderUnity.LogMessage("Creating Turret!!"); var turretGo = new GameObject(); obj = turretGo.AddComponent <TurretObject>(); ((TurretObject)obj).Init(objtype, appearanceTypeManager); // obj = new TurretObject(objtype, appearanceTypeManager); obj.block = objData.Block; obj.vertex = objData.Vertex; obj.OffsetPixelX = objData.pixelOffsetX; obj.OffsetPixelY = objData.pixelOffsetY; obj.position = terrain.MapPositionToWorldCoords(obj.block, obj.vertex, obj.OffsetPixelX, obj.OffsetPixelY); //obj = getTurret(curTurretIndex++); //if (obj) //{ // ((TurretPtr)obj)->init(true, objType); // if (realDmg) // obj->setDamage(((TurretTypePtr)objType)->getDamageLevel()); // objList[curCollidableHandle] = obj; // obj->setHandle(curCollidableHandle++); // obj->setExists(true); // obj->setParentId(objData->parentId); // obj->setTeamId(objData->teamId, true); //} turrets.Add(turretGo); break; case ObjectClass.BUILDING: case ObjectClass.TREEBUILDING: var buildGo = new GameObject(); obj = buildGo.AddComponent <BuildingObject>(); ((BuildingObject)obj).Init(objtype, appearanceTypeManager); //obj = new BuildingObject(objtype, appearanceTypeManager); obj.block = objData.Block; obj.vertex = objData.Vertex; obj.OffsetPixelX = objData.pixelOffsetX; obj.OffsetPixelY = objData.pixelOffsetY; obj.position = terrain.MapPositionToWorldCoords(obj.block, obj.vertex, obj.OffsetPixelX, obj.OffsetPixelY); //appearanceTypeManager.GetAppearanceType(objtype.Appearance); //if (realDmg>0) // obj->setDamage(((BuildingTypePtr)objType)->getDamageLevel()); //((BuildingPtr)obj)->baseTileId = (objData->damage >> 4); //if (obj->isSpecialBuilding()) //{ // objList[curCollidableHandle] = obj; // obj->setHandle(curCollidableHandle++); //} else //{ // objList[curNonCollidableHandle] = obj; // obj->setHandle(curNonCollidableHandle++); //} //obj->setExists(true); //obj->setParentId(objData->parentId); //obj->setTeamId(objData->teamId, true); buildings.Add(buildGo); break; default: Debug.Log("Loading Unknow TypeOBj: " + objtype.objectClass); break; } }