コード例 #1
0
ファイル: DeathMPTut.cs プロジェクト: K07H/The-Forest
        private IEnumerator Start()
        {
            LocalPlayer.Tuts.ShowDeathMP();
            GameObject lbtGO = new GameObject("LastBuiltLocation");

            lbtGO.transform.localScale    = new Vector3(0f, 0f, 1f);
            lbtGO.transform.parent        = base.transform;
            lbtGO.transform.localPosition = Vector3.one;
            GUITexture gt = lbtGO.AddComponent <GUITexture>();

            gt.texture    = Resources.Load <Texture>("PlayerIcon");
            gt.pixelInset = new Rect(-64f, -29f, 58f, 58f);
            Color c = gt.color;

            c.a      = 0.2f;
            gt.color = c;
            LastBuiltLocation lbc = lbtGO.AddComponent <LastBuiltLocation>();

            lbc.target = base.transform;
            yield return(null);

            lbc.IsOverLayIcon = false;
            yield return(null);

            lbc.IsOverLayIcon = false;
            yield break;
        }
コード例 #2
0
        private void Start()
        {
            LocalPlayer.Tuts.ShowDeathMP();
            GameObject gameObject = new GameObject("LastBuiltLocation");

            gameObject.transform.localScale    = new Vector3(0f, 0f, 1f);
            gameObject.transform.parent        = base.transform;
            gameObject.transform.localPosition = Vector3.one;
            GUITexture gUITexture = gameObject.AddComponent <GUITexture>();

            gUITexture.texture    = Resources.Load <Texture>("PlayerIcon");
            gUITexture.pixelInset = new Rect(-64f, -29f, 58f, 58f);
            Color color = gUITexture.color;

            color.a          = 0.2f;
            gUITexture.color = color;
            LastBuiltLocation lastBuiltLocation = gameObject.AddComponent <LastBuiltLocation>();

            lastBuiltLocation.target = base.transform;
        }
コード例 #3
0
		private bool TryAddTarget(PrefabIdentifier pi, Collider c)
		{
			if (pi)
			{
				IHoleStructure holeStructure = (IHoleStructure)pi.GetComponent(typeof(IHoleStructure));
				if (holeStructure != null)
				{
					if (!this._targets.Contains(holeStructure) && holeStructure.HoleCount < 20)
					{
						Hole item;
						if (holeStructure is FloorArchitect)
						{
							if (!this._previewFloor || !(holeStructure as FloorArchitect).WasBuilt)
							{
								return false;
							}
							FloorArchitect floorArchitect = holeStructure as FloorArchitect;
							FloorArchitect floorArchitect2 = UnityEngine.Object.Instantiate<FloorArchitect>(this._previewFloor, floorArchitect.transform.position, floorArchitect.transform.rotation);
							floorArchitect.OnBuilt(floorArchitect2.gameObject);
							floorArchitect2._wasBuilt = false;
							this._previews.Add(floorArchitect2);
							item = floorArchitect2.AddSquareHole(base.transform.position, base.transform.rotation.y, this._holeSize);
						}
						else if (holeStructure is RoofArchitect)
						{
							if (!this._previewRoof || !(holeStructure as RoofArchitect).WasBuilt)
							{
								return false;
							}
							RoofArchitect roofArchitect = holeStructure as RoofArchitect;
							RoofArchitect roofArchitect2 = UnityEngine.Object.Instantiate<RoofArchitect>(this._previewRoof, roofArchitect.transform.position, roofArchitect.transform.rotation);
							roofArchitect.OnBuilt(roofArchitect2.gameObject);
							roofArchitect2._wasBuilt = false;
							this._previews.Add(roofArchitect2);
							item = roofArchitect2.AddSquareHole(base.transform.position, base.transform.rotation.y, this._holeSize);
						}
						else
						{
							if (holeStructure is CraneArchitect)
							{
								return false;
							}
							if (!(holeStructure is RaftArchitect) || !(holeStructure as RaftArchitect).WasBuilt)
							{
								UnityEngine.Debug.LogError("Trying to cut IHS '" + pi.name + "' which isn't roof, floor or raft. Please report this to guillaume.");
								return false;
							}
							if (!this._previewRaft || !(base.transform.root != pi.transform.root))
							{
								return false;
							}
							RaftArchitect raftArchitect = holeStructure as RaftArchitect;
							RaftArchitect raftArchitect2 = UnityEngine.Object.Instantiate<RaftArchitect>(this._previewRaft, raftArchitect.transform.position, raftArchitect.transform.rotation);
							raftArchitect.OnBuilt(raftArchitect2.gameObject);
							this._previews.Add(raftArchitect2);
							item = raftArchitect2.AddSquareHole(base.transform.position, base.transform.rotation.y, this._holeSize);
						}
						this._targets.Add(holeStructure);
						this._holes.Add(item);
						this.CheckCanPlace();
						return true;
					}
				}
				else
				{
					BuildingBlueprint blueprintByPrefabId = Prefabs.Instance.Constructions.GetBlueprintByPrefabId(pi.ClassId);
					if (blueprintByPrefabId != null && !blueprintByPrefabId._preventHoleCutting)
					{
						FloorHoleArchitect.DestroyTarget destroyTarget;
						if (!this._destroyTargets.TryGetValue(pi.gameObject, out destroyTarget))
						{
							destroyTarget = new FloorHoleArchitect.DestroyTarget();
							destroyTarget._go = pi.gameObject;
							destroyTarget._bh = pi.GetComponent<BuildingHealth>();
							ICoopStructure component = pi.GetComponent<ICoopStructure>();
							if (component != null)
							{
								IProceduralStructure component2 = pi.GetComponent<IProceduralStructure>();
								if (component2 == null)
								{
									return false;
								}
								destroyTarget._ghost = component2.SpawnStructure().gameObject;
							}
							else
							{
								destroyTarget._ghost = UnityEngine.Object.Instantiate<GameObject>(blueprintByPrefabId._ghostPrefab, pi.transform.position, pi.transform.rotation);
							}
							destroyTarget._ghost.transform.parent = pi.transform;
							int layer = LayerMask.NameToLayer("TransparentFX");
							Renderer component3 = destroyTarget._ghost.GetComponent<Renderer>();
							if (component3)
							{
								destroyTarget._ghost.layer = layer;
								component3.sharedMaterial = this._overlayMaterial;
							}
							else
							{
								Craft_Structure componentInChildren = destroyTarget._ghost.GetComponentInChildren<Craft_Structure>();
								if (componentInChildren && componentInChildren._requiredIngredients.Count > 0)
								{
									for (int i = 0; i < componentInChildren._requiredIngredients.Count; i++)
									{
										Craft_Structure.BuildIngredients buildIngredients = componentInChildren._requiredIngredients[i];
										buildIngredients.SetGhostMaterial(this._overlayMaterial);
									}
								}
								else
								{
									Renderer[] componentsInChildren = destroyTarget._ghost.GetComponentsInChildren<Renderer>();
									foreach (Renderer renderer in componentsInChildren)
									{
										renderer.gameObject.layer = layer;
										renderer.sharedMaterial = this._overlayMaterial;
									}
								}
							}
							Transform transform = destroyTarget._ghost.transform.Find("Trigger");
							if (transform)
							{
								UnityEngine.Object.Destroy(transform.gameObject);
							}
							LastBuiltLocation component4 = destroyTarget._ghost.GetComponent<LastBuiltLocation>();
							if (component4)
							{
								UnityEngine.Object.Destroy(component4.gameObject);
							}
							LastBuiltLocation component5 = destroyTarget._ghost.GetComponent<LastBuiltLocation>();
							if (component5)
							{
								UnityEngine.Object.Destroy(component5.gameObject);
							}
							UnityEngine.Object.Destroy(destroyTarget._ghost.GetComponent<PrefabIdentifier>());
							UnityEngine.Object.Destroy(destroyTarget._ghost.GetComponent<SingleAnchorStructure>());
							this._destroyTargets.Add(pi.gameObject, destroyTarget);
						}
						if (c && !destroyTarget._colliders.Contains(c))
						{
							destroyTarget._colliders.Add(c);
						}
						this.CheckCanPlace();
						return true;
					}
				}
			}
			return false;
		}