void OnMouseDown() { GameObject g = (GameObject)Instantiate(mRecordingPropPrefab, Vector3.zero, Quaternion.identity); g.transform.parent = mScreen.transform; Vector2 mousePosition = uImage.GetManager().ScreenToGui(new Vector2(Input.mousePosition.x, Input.mousePosition.y)); dfTextureSprite sprite = (dfTextureSprite)g.GetComponent(typeof(dfTextureSprite)); // TODO: these numbers are hardcoded - copied from the unity gui - figure out how to get this programatically Vector2 top_left = new Vector2(mousePosition.x - 183, (0 - mousePosition.y) + 123); sprite.Position = new Vector2(top_left.x - (sprite.Size.x / 2), top_left.y + (sprite.Size.y / 2)); sprite.Texture = (Texture2D)Resources.Load("Props/" + uPurchasedProp.uProp.uID); sprite.Size = new Vector2(sprite.Texture.width, sprite.Texture.height); RecordingProp r = (RecordingProp)g.GetComponent(typeof(RecordingProp)); r.uPurchasedProp = uPurchasedProp; MovingArea p = g.GetComponentInChildren <MovingArea>(); p.OnMouseDown(); mProps.Remove(uPurchasedProp); }
void Awake() { mScreenPanel = (dfPanel)GameObject.FindGameObjectWithTag("Screen").GetComponent(typeof(dfPanel)); mSprite = GetComponent<dfTextureSprite>(); if (mSprite == null) { mSprite = GetComponent<dfSlicedSprite>(); } mProps = (dfScrollPanel)FindObjectOfType(typeof(dfScrollPanel)); mRecordingProp = (RecordingProp)GetComponent (typeof(RecordingProp)); }
bool hasDroppedFirst = false; // This tracks if this is our first drag - if so we can do something special on first drop void Awake() { mScreenPanel = (dfPanel)GameObject.FindGameObjectWithTag("Screen").GetComponent(typeof(dfPanel)); mSprite = GetComponent <dfTextureSprite>(); if (mSprite == null) { mSprite = GetComponent <dfSlicedSprite>(); } mProps = (dfScrollPanel)FindObjectOfType(typeof(dfScrollPanel)); mRecordingProp = (RecordingProp)GetComponent(typeof(RecordingProp)); }
[RPC] void StartPreparing() { if (Network.isServer) { // Set everyone to "not ready" so we can wait again after the recording stage foreach (Player player in mNetworkManager.players) { player.networkView.RPC("SetReady", RPCMode.All, false); } } mDialogueManager.EndDialogue(); // First, instatiate all of the backdrops foreach (PurchasedBackdrop purchasedBackdrop in uPurchasedBackdrops) { GameObject g = (GameObject)Instantiate(mBackdropPrefab, Vector3.zero, Quaternion.identity); g.transform.parent = mScreen.transform; dfTextureSprite sprite = (dfTextureSprite)g.GetComponent(typeof(dfTextureSprite)); sprite.Position = new Vector2(0, 550); sprite.Texture = (Texture2D)Resources.Load("Props/" + purchasedBackdrop.uProp.uID); RecordingProp r = (RecordingProp)g.GetComponent(typeof(RecordingProp)); r.uPurchasedProp = purchasedBackdrop; mBackdropMap.Add(purchasedBackdrop, g.GetComponent <AfternoonBackdrop>()); } uRecording = false; Action finishedPreparing = () => { StartRecording(); }; mCountdown.StartCountdown(Game.PREPARING_COUNTDOWN, finishedPreparing); }
void RecordProps() { // First loop through all of the recordable objects in screen to check if any have been added/removed RecordingProp[] currentRecordingProps = FindObjectsOfType <RecordingProp>().Where(rp => rp.GetType() != typeof(RecordingDialogue)).ToArray(); // Get the IDs from all current props string[] currentIDs = (from prop in currentRecordingProps select prop.uPurchasedProp.uID).ToArray(); // Check if any have been added foreach (string ID in currentIDs) { if (!mKnownPropIDs.Contains(ID)) { // This is a new prop // Get the full prop information RecordingProp p = currentRecordingProps.Where(prop => prop.uPurchasedProp.uID == ID).First(); dfTextureSprite sprite = (dfTextureSprite)p.gameObject.GetComponent(typeof(dfTextureSprite)); float x_pos = sprite.Position.x; // - (sprite.Width / 2); float y_pos = sprite.Position.y; // + (sprite.Height / 2); mRecordingPlayer.networkView.RPC("RecordAction", RPCMode.All, new object[] { "InstantiationChange", RPCEncoder.Encode(new string[] { mTime.ToString(), p.uPurchasedProp.uProp.uID, p.uPurchasedProp.uID, x_pos.ToString(), y_pos.ToString(), sprite.Size.x.ToString(), sprite.Size.y.ToString(), sprite.ZOrder.ToString() }) }); mKnownPositions[ID] = sprite.Position; mKnownZOrders[ID] = sprite.ZOrder; mKnownSizes[ID] = sprite.Size; } } // Check if any have been removed foreach (string ID in mKnownPropIDs) { if (!currentIDs.Contains(ID)) { // This prop has been removed mRecordingPlayer.networkView.RPC("RecordAction", RPCMode.All, new object[] { "DestroyChange", RPCEncoder.Encode(new string[] { mTime.ToString(), ID }) }); } } mKnownPropIDs = currentIDs; // Then check if any have moved position foreach (RecordingProp p in currentRecordingProps) { dfTextureSprite sprite = (dfTextureSprite)p.gameObject.GetComponent(typeof(dfTextureSprite)); if (sprite.Position != mKnownPositions[p.uPurchasedProp.uID]) { // The prop has moved mRecordingPlayer.networkView.RPC("RecordAction", RPCMode.All, new object[] { "PositionChange", RPCEncoder.Encode(new string[] { mTime.ToString(), p.uPurchasedProp.uID, sprite.Position.x.ToString(), sprite.Position.y.ToString() }) }); mKnownPositions[p.uPurchasedProp.uID] = sprite.Position; } if (sprite.ZOrder != mKnownZOrders[p.uPurchasedProp.uID]) { // The prop has moved ZOrder mRecordingPlayer.networkView.RPC("RecordAction", RPCMode.All, new object[] { "ZOrderChange", RPCEncoder.Encode(new string[] { mTime.ToString(), p.uPurchasedProp.uID, sprite.ZOrder.ToString() }) }); mKnownZOrders[p.uPurchasedProp.uID] = sprite.ZOrder; } if (sprite.Size != mKnownSizes[p.uPurchasedProp.uID]) { // The prop has changed size mRecordingPlayer.networkView.RPC("RecordAction", RPCMode.All, new object[] { "SizeChange", RPCEncoder.Encode(new string[] { mTime.ToString(), p.uPurchasedProp.uID, sprite.Size.x.ToString(), sprite.Size.y.ToString() }) }); mKnownSizes[p.uPurchasedProp.uID] = sprite.Size; } } }
void Awake() { mMovableProp = transform.parent.GetComponent <MovableProp>(); mRecordingProp = transform.parent.GetComponent <RecordingProp>(); }