Esempio n. 1
0
        /*public Dictionary<GameObject, worldProp> worldProps {
         *      get { return _worldProps; }
         * }*/

        #endregion

        #region PublicMethods

        public void init()
        {
            _levelPropDefs = new List <propDef> ();

            PropsList propList = Resources.Load <PropsList> ("Data/" + Globals.propListName);
            int       i, len = propList.props.Count;

            for (i = 0; i < len; ++i)
            {
                PropDefinition propDef = propList.props [i];
                if (propDef.prefab != null)
                {
                    propDef p = new propDef();
                    p.id          = propDef.id;
                    p.name        = propDef.propName;
                    p.prefab      = propDef.prefab;
                    p.useCollider = propDef.isUsingCollider;
                    p.useGravity  = propDef.isUsingGravity;

                    _levelPropDefs.Add(p);
                }
            }

            _iSelectedItem = 0;

            //_worldProps = new Dictionary<GameObject, worldProp> ();
        }
Esempio n. 2
0
        private void setAfkProp(PropDefinition propDefinition)
        {
            if (propDefinition == null)
            {
            }
            DHeldObject dHeldObject = new DHeldObject();

            switch (propDefinition.PropType)
            {
            case PropDefinition.PropTypes.Consumable:
                dHeldObject.ObjectType = HeldObjectType.CONSUMABLE;
                break;

            case PropDefinition.PropTypes.Durable:
                dHeldObject.ObjectType = HeldObjectType.DURABLE;
                break;

            case PropDefinition.PropTypes.InteractiveObject:
                dHeldObject.ObjectType = HeldObjectType.DISPENSABLE;
                break;

            case PropDefinition.PropTypes.PartyGame:
                dHeldObject.ObjectType = HeldObjectType.PARTYGAME;
                break;
            }
            dHeldObject.ObjectId = propDefinition.NameOnServer;
            if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var handle))
            {
                dataEntityCollection.GetComponent <HeldObjectsData>(handle).HeldObject = dHeldObject;
                isUsingAFKProp = true;
            }
        }
 private void onInventoryChanged(ConsumableInventory inventory)
 {
     foreach (KeyValuePair <string, InventoryItemStock> item in inventory.inventoryMap)
     {
         if (inventoryItems.ContainsKey(item.Key))
         {
             if (item.Value.GetItemCount() > 0)
             {
                 if (inventoryItems.ContainsKey(item.Key))
                 {
                     inventoryItems[item.Key].SetCount(item.Value.GetItemCount());
                 }
             }
             else
             {
                 Object.Destroy(inventoryItems[item.Key]);
                 inventoryItems.Remove(item.Key);
             }
         }
         else if (item.Value.GetItemCount() > 0)
         {
             PropDefinition propDefinition = Service.Get <PropService>().Props[item.Key];
             GameObject     gameObject     = Object.Instantiate(inventoryItemPrefab);
             gameObject.transform.SetParent(ContentPanel.transform, worldPositionStays: false);
             gameObject.GetComponent <MarketplaceInventoryItem>().Init(itemSprites[propDefinition.GetIconContentKey().Key.ToLower()], propDefinition, item.Value.GetItemCount());
             inventoryItems[item.Key] = gameObject.GetComponent <MarketplaceInventoryItem>();
         }
     }
 }
Esempio n. 4
0
        private void AddMyProperties()
        {
            string propDefinitionKey             = DefinitionsHelper.GetPropertiesDefinitionKey <Artech.Architecture.Common.Objects.KBModel>();
            PropertiesDefinition myTrnProperties = new PropertiesDefinition(propDefinitionKey);
            PropDefinition       myBool          = new PropDefinition("Code Review Tool", typeof(Tool), null, "Tool for code review");

            myTrnProperties.Add(myBool);
            base.AddPropertiesDefinition(propDefinitionKey, myTrnProperties);
        }
Esempio n. 5
0
        private void Awake()
        {
            animator = GetComponent <Animator>();
            Dictionary <int, PropDefinition> dictionary = Service.Get <IGameData>().Get <Dictionary <int, PropDefinition> >();

            cellPhoneAFKProp     = dictionary[CellPhoneAFKProp.Id];
            dressingBoothAFKProp = dictionary[DressingBoothAFKProp.Id];
            iglooPlansAFKProp    = dictionary[IglooPlansAFKProp.Id];
            mapAFKProp           = dictionary[MapAFKProp.Id];
        }
Esempio n. 6
0
        public void RenderReward(DReward reward, RewardIconRenderComplete callback)
        {
            this.callback = callback;
            PropDefinition propDefinition = Service.Get <PropService>().GetPropDefinition(reward.UnlockID.ToString());

            if (propDefinition != null)
            {
                CoroutineRunner.Start(renderPropIcon(propDefinition, (int)reward.Data), this, "LoadPropIcon");
            }
        }
Esempio n. 7
0
    public void RenderReward(DReward reward, RewardIconRenderComplete callback)
    {
        this.callback = callback;
        PropDefinition propByName = getPropByName((int)reward.UnlockID);

        if (propByName != null)
        {
            CoroutineRunner.Start(renderPartySupply(propByName), this, "LoadPropIcon");
        }
    }
Esempio n. 8
0
 public void Init(Sprite sprite, PropDefinition propDef, int count)
 {
     CountText.text    = count.ToString();
     ItemNameText.text = Service.Get <Localizer>().GetTokenTranslation(propDef.Name);
     if (propDef.Shareable)
     {
         ShareIcon.SetActive(value: true);
     }
     ItemIcon.sprite = sprite;
     itemDefinition  = propDef;
 }
 public virtual void SetItem(PropDefinition propDefinition, Texture icon, MarketplaceScreenController marketplaceController, RectTransform itemTransform, RectTransform scrollRectTransform)
 {
     this.marketplaceController = marketplaceController;
     confirmationPlacement.PositionConfirmation(itemTransform, scrollRectTransform);
     IconImage.texture = icon;
     prop                 = propDefinition;
     TitleText.text       = Service.Get <Localizer>().GetTokenTranslation(propDefinition.Name);
     DescriptionText.text = Service.Get <Localizer>().GetTokenTranslation(propDefinition.Description);
     singleItemCost       = getItemCost(propDefinition);
     setState(ConfirmationState.Pending);
     setPurchaseCount(1);
 }
        private bool isItemInSale(CellPhoneSaleActivityDefinition sale, PropDefinition item)
        {
            bool result = false;

            for (int i = 0; i < sale.Consumables.Length; i++)
            {
                if (sale.Consumables[i].Id == item.Id)
                {
                    result = true;
                    break;
                }
            }
            return(result);
        }
        private int getItemCost(PropDefinition definition)
        {
            int itemCost = MarketPlaceUtils.GetItemCost(definition, definition.Cost, isItemInSale);

            if (itemCost != definition.Cost)
            {
                SalePanel.SetActive(value: true);
                SaleText.text = string.Format(Service.Get <Localizer>().GetTokenTranslation("GoGuide.ShopSale.Discount"), MarketPlaceUtils.GetItemDiscountPercentage(definition, isItemInSale));
            }
            else
            {
                SalePanel.SetActive(value: false);
            }
            return(itemCost);
        }
Esempio n. 12
0
 public void Init(PropDefinition def)
 {
     consumableType = def.GetNameOnServer();
     consumableCost = def.Cost;
     Title.text     = Service.Get <Localizer>().GetTokenTranslation(def.Name);
     if (def.Shareable)
     {
         ShareableIcon.SetActive(value: true);
     }
     Content.LoadAsync(onIconLoaded, def.GetIconContentKey());
     SelectButton.onClick.AddListener(onSelected);
     setInventoryCount(Service.Get <CPDataEntityCollection>().GetComponent <ConsumableInventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).ConsumableInventory);
     Service.Get <CPDataEntityCollection>().GetComponent <ConsumableInventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).OnConsumableInventoryChanged += setInventoryCount;
     breadcrumb.SetBreadcrumbId($"Consumable_{def.GetNameOnServer()}");
 }
Esempio n. 13
0
        private bool isUsePropOnActionValid(object payload)
        {
            bool        result      = true;
            PropService propService = Service.Get <PropService>();

            if (propService.LocalPlayerPropUser != null && propService.LocalPlayerPropUser.Prop != null)
            {
                PropDefinition propDef = Service.Get <PropService>().LocalPlayerPropUser.Prop.PropDef;
                if (propDef.PropType == PropDefinition.PropTypes.Consumable && propDef.ExperienceType == PropDefinition.ConsumableExperience.PartyGameLobby)
                {
                    result = false;
                }
            }
            return(result);
        }
Esempio n. 14
0
 private void InitDisplays()
 {
     rectTrans = GetComponentInChildren <RectTransform>();
     textUI    = GetComponentInChildren <Text>();
     imageUI   = GetComponentInChildren <Image>();
     if (displayString != "" || attachedDefinition != null)
     {
         hasString = true;
     }
     if (displaySprite != null)
     {
         hasSprite = true;
     }
     if (textUI != null && hasString)
     {
         if (!string.IsNullOrEmpty(displayString))
         {
             textUI.text = Service.Get <Localizer>().GetTokenTranslation(displayString);
         }
         else
         {
             bool           flag           = false;
             ZoneDefinition zoneDefinition = attachedDefinition as ZoneDefinition;
             if (zoneDefinition != null)
             {
                 textUI.text = Service.Get <Localizer>().GetTokenTranslation(zoneDefinition.ZoneToken);
                 flag        = true;
             }
             if (!flag)
             {
                 PropDefinition propDefinition = attachedDefinition as PropDefinition;
                 if (propDefinition != null)
                 {
                     textUI.text = Service.Get <Localizer>().GetTokenTranslation(propDefinition.Name);
                     flag        = true;
                 }
             }
             if (flag)
             {
             }
         }
     }
     if (imageUI != null && hasSprite)
     {
         imageUI.sprite = displaySprite;
     }
     EnableDisplays(status: false);
 }
Esempio n. 15
0
    private IEnumerator renderPartySupply(PropDefinition propDefinition)
    {
        SpriteContentKey      iconContentKey = propDefinition.IconContentKey;
        AssetRequest <Sprite> iconRequest    = Content.LoadAsync(iconContentKey);

        yield return(iconRequest);

        AssetRequest <GameObject> prefabRequest = Content.LoadAsync(prefabContentKey);

        yield return(prefabRequest);

        GameObject prefab     = prefabRequest.Asset;
        GameObject itemPrefab = Object.Instantiate(prefab);

        itemPrefab.GetComponent <RewardPopupLabelComponent>().Init(iconRequest.Asset, propDefinition.Cost.ToString());
        callback(null, itemPrefab.GetComponent <RectTransform>(), propDefinition.Name);
    }
        public void Init(PropDefinition def)
        {
            definition = def;
            Title.text = Service.Get <Localizer>().GetTokenTranslation(def.Name);
            Content.LoadAsync(onIconLoaded, def.GetIconContentKey());
            SelectButton.onClick.AddListener(onSelected);
            if (def.ExperienceType == PropDefinition.ConsumableExperience.PartyGameLobby)
            {
                breadcrumb.SetBreadcrumbId(PartyGameBreadcrumbType, definition.Id.ToString());
                TutorialBreadcrumb.SetBreadcrumbId($"PartyGame_{definition.Id}");
            }
            else if (def.PropType == PropDefinition.PropTypes.Consumable)
            {
                breadcrumb.SetBreadcrumbId(ConsumableBreadcrumbType, definition.Id.ToString());
                TutorialBreadcrumb.SetBreadcrumbId($"Consumable_{definition.Id}");
            }
            else
            {
                breadcrumb.SetBreadcrumbId(GearBreadcrumbType, definition.Id.ToString());
                TutorialBreadcrumb.SetBreadcrumbId($"Gear_{definition.Id}");
            }
            ConsumableInventory consumableInventory = Service.Get <CPDataEntityCollection>().GetComponent <ConsumableInventoryData>(Service.Get <CPDataEntityCollection>().LocalPlayerHandle).ConsumableInventory;

            if (consumableInventory.inventoryMap.ContainsKey(definition.GetNameOnServer()))
            {
                int itemCount = consumableInventory.inventoryMap[definition.GetNameOnServer()].GetItemCount();
                if (itemCount == 0)
                {
                    ItemCountIcon.SetActive(value: false);
                }
                else
                {
                    ItemCountIcon.SetActive(value: true);
                    ItemCountIcon.GetComponentInChildren <Text>().text = itemCount.ToString();
                }
            }
            else
            {
                ItemCountIcon.SetActive(value: false);
            }
            if (def.PropType == PropDefinition.PropTypes.Durable)
            {
                showSelectedState();
            }
        }
        private bool checkPropDefnForSpecialItem(PropDefinition propDefnToCheck)
        {
            bool result = false;

            if (propDefnToCheck.HasSpecialMarket && definition.SpecialItems != null)
            {
                int num = definition.SpecialItems.Length;
                for (int i = 0; i < num; i++)
                {
                    if (definition.SpecialItems[i].Id == propDefnToCheck.Id)
                    {
                        result = true;
                        break;
                    }
                }
            }
            return(result);
        }
Esempio n. 18
0
    /// <summary>
    /// Finds the prop of the given name and will spawn it.
    /// </summary>
    /// <param name="name"></param>
    protected void SpawnProp(string name)
    {
        PropDefinition pDef = PropManifest.GetPropDefinition(name);

        if (pDef == null)
        {
            return; // If the propDefintion is null, we just return here. We will have already logged an error in PropManifest's function which will have our stack trace.
        }
        Prop p = Instantiate(pDef.Actor, inputPosition,
                             Quaternion.identity, transform);

        Props.Add(p);

        p.Definition = pDef;

        pickedActor = p;
        pickedActor.transform.position = inputPosition;
    }
Esempio n. 19
0
 public void Init(Sprite sprite, PropDefinition propDef, bool isOutOfStock, bool isSpecialItem, int unlockLevel, Sprite offSprite, Sprite onSprite, Color textColor)
 {
     itemDefinition    = propDef;
     ItemNameText.text = Service.Get <Localizer>().GetTokenTranslation(propDef.Name);
     setItemCost(itemDefinition);
     FeatureLabel.TypeId = propDef.GetNameOnServer();
     FeatureLabel.SetBreadcrumbVisibility();
     ItemIcon.texture        = sprite.texture;
     lockStates.IsOutOfStock = isOutOfStock;
     SpecialItemEffect.SetActive(isSpecialItem);
     RequiredLevel = unlockLevel;
     IsSpecialItem = isSpecialItem;
     theOnSprite   = onSprite;
     theOffSprite  = offSprite;
     checkLockedState();
     setSprites(offSprite, onSprite);
     UpdateVisualStates();
     ItemNameText.color = textColor;
     itemAnimator       = GetComponent <Animator>();
 }
Esempio n. 20
0
    private void onExperienceStarted(string instanceId, long ownerId, bool isOwnerLocalPlayer, PropDefinition propDef)
    {
        pinataInstanceId   = instanceId;
        numCoinsToReward   = 0;
        currentDamageIndex = 0;
        playersToReward    = new List <long>();
        long num = long.Parse(pinataInstanceId);

        setupNetworkServiceListeners(num);
        Service.Get <PropService>().propExperienceDictionary[num] = base.gameObject;
    }
Esempio n. 21
0
 public ItemPurchased(PropDefinition itemDefinition, int quantity)
 {
     ItemDefinition = itemDefinition;
     Quantity       = quantity;
 }
 public MarketplaceListItemData(PropDefinition propDefn, int unlockLevel = -1, bool isSpecialItem = false)
 {
     PropDefn      = propDefn;
     UnlockLevel   = unlockLevel;
     IsSpecialItem = isSpecialItem;
 }
Esempio n. 23
0
 public override void SetItem(PropDefinition propDefinition, Texture icon, MarketplaceScreenController marketplaceController, RectTransform itemTransform, RectTransform scrollRectTransform)
 {
     base.SetItem(propDefinition, icon, marketplaceController, itemTransform, scrollRectTransform);
     Content.LoadAsync(onLaunchersManifestLoaded, launchersManifestContentKey);
 }
        public void initialize(StandaloneController standaloneController)
        {
            GUIManager guiManager = standaloneController.GUIManager;

            //UI Helpers
            gridProperties = new GridPropertiesDialog(standaloneController.MeasurementGrid);
            guiManager.addManagedDialog(gridProperties);

            developerRenderer = new DeveloperRenderPropertiesDialog(standaloneController.SceneViewController, standaloneController.ImageRenderer, guiManager, standaloneController.NotificationManager);
            guiManager.addManagedDialog(developerRenderer);

            discControl = new DiscControl();
            guiManager.addManagedDialog(discControl);

            advancedMandibleMovement = new AdvancedMandibleMovementDialog(standaloneController.MovementSequenceController, standaloneController.MusclePositionController);
            guiManager.addManagedDialog(advancedMandibleMovement);

            performanceGui = new PerformanceGui(standaloneController);
            guiManager.addManagedDialog(performanceGui);

            measurementGUI = new MeasurementGUI(standaloneController);
            guiManager.addManagedDialog(measurementGUI);

            debugVisualizer = new DebugVisualizer(standaloneController);
            guiManager.addManagedDialog(debugVisualizer);

            advancedCameraGui = new AdvancedCameraGui(standaloneController.SceneViewController);
            guiManager.addManagedDialog(advancedCameraGui);

            libRocketDebugger = new ShowLibRocketDebugger(guiManager, "ShowLibRocketDebugger", "Show LibRocket Debugger", "Developer.libRocketDebugger", "Developer");

            resolutionGui = new ResolutionGui(standaloneController.MainWindow);
            guiManager.addManagedDialog(resolutionGui);

            RocketInterface.Instance.FileInterface.addExtension(new RocketAssemblyResourceLoader(this.GetType().Assembly));

            changeRenderingMode = new ChangeRenderingMode(standaloneController.SceneViewController);
            disablePhysics      = new DisablePhysicsTask(int.MaxValue);

            //Task Controller
            TaskController taskController = standaloneController.TaskController;

            taskController.addTask(new MDIDialogOpenTask(developerRenderer, "Developer.DeveloperRender", "Render", "AnomalousMedical/RenderIcon", TaskMenuCategories.Create));

            if (MedicalConfig.ShowDeveloperTools)
            {
                taskController.addTask(new MDIDialogOpenTask(discControl, "Medical.DiscEditor", "Disc Editor", "Developer.DiscEditorIcon", TaskMenuCategories.Developer));
                taskController.addTask(new MDIDialogOpenTask(advancedMandibleMovement, "Medical.AdvancedMandibleMovement", "Advanced Mandible Movement", "Developer.MovementIcon", TaskMenuCategories.Developer));
                taskController.addTask(new MDIDialogOpenTask(gridProperties, "Medical.GridProperties", "Grid", "Developer.GridIcon", TaskMenuCategories.Developer));
                taskController.addTask(new MDIDialogOpenTask(performanceGui, "Medical.Performance", "Performance", "Developer.StatisticsIcon", TaskMenuCategories.Developer));
                taskController.addTask(new MDIDialogOpenTask(measurementGUI, "Developer.Measurement", "Measurements", "Developer.Measurements", TaskMenuCategories.Developer));
                taskController.addTask(new MDIDialogOpenTask(debugVisualizer, "Developer.DebugVisualizer", "Debug Visualizer", "Developer.DebugVisualizer", TaskMenuCategories.Developer));
                taskController.addTask(new MDIDialogOpenTask(advancedCameraGui, "Developer.AdvancedCameraGui", "Advanced Camera Settings", CommonResources.NoIcon, TaskMenuCategories.Developer));
                taskController.addTask(new MDIDialogOpenTask(resolutionGui, "Developer.SetResolution", "Set Resolution", CommonResources.NoIcon, TaskMenuCategories.Developer));
                taskController.addTask(libRocketDebugger);
                taskController.addTask(new SaveMicrocodeCacheTask());
                taskController.addTask(new CallbackTask("Developer.SaveToMax", "Save to 3ds Max", "Developer.MaxDumpIcon", TaskMenuCategories.Developer, (item) =>
                {
                    if (!item.Active)
                    {
                        item.setActive(true);
                        MaxExport maxExport = new MaxExport(standaloneController);
                        guiManager.addManagedDialog(maxExport);
                        maxExport.Visible = true;
                        maxExport.Closed += (evt, args) =>
                        {
                            maxExport.Dispose();
                            item.setActive(false);
                            item.closeTask();
                        };
                    }
                }));

                taskController.addTask(new CallbackTask("Developer.TogglePhysicalTextures", "Toggle Physical Textures", CommonResources.NoIcon, TaskMenuCategories.Developer, (item) =>
                {
                    if (standaloneController.VirtualTextureManager.Active)
                    {
                        standaloneController.VirtualTextureManager.suspend();
                    }
                    else
                    {
                        standaloneController.VirtualTextureManager.resume();
                    }
                }));

                taskController.addTask(new CallbackTask("Developer.ToggleCompactMode", "Toggle Compact Mode", CommonResources.NoIcon, TaskMenuCategories.Developer, item =>
                {
                    standaloneController.GUIManager.CompactMode = !standaloneController.GUIManager.CompactMode;
                    standaloneController.GUIManager.layout();
                }));

                taskController.addTask(new CallbackTask("Developer.SpawnTestSplint", "Spawn Test Splint", CommonResources.NoIcon, TaskMenuCategories.Developer, item =>
                {
                    GenericSimObjectDefinition def = new GenericSimObjectDefinition("TestSplint" + Guid.NewGuid());
                    def.addElement(new SceneNodeDefinition("Node"));
                    var rigidBody = new ReshapeableRigidBodyDefinition("RigidBody");
                    def.addElement(rigidBody);
                    MultiProp multiProp = new MultiProp();
                    def.addElement(new BehaviorDefinition("MultiProp", multiProp));
                    DynamicSplint splint = new DynamicSplint()
                    {
                        MultiPropName = "MultiProp",
                    };
                    def.addElement(new BehaviorDefinition("Behavior", splint));

                    PositionCollection positions;
                    using (var stream = VirtualFileSystem.Instance.openStream("Plugins/SplintProps/PartModels/SplintSpace.positions", Engine.Resources.FileMode.Open))
                    {
                        positions = new PositionCollection(stream);
                    }

                    Position position;
                    if (false)
                    {
                        position                       = positions.getPosition("MaxillaryGroup");
                        splint.StartIndex              = 1;
                        splint.EndIndex                = 17;
                        rigidBody.Mass                 = 0;
                        rigidBody.CollisionFilterMask  = -3;
                        rigidBody.CollisionFilterGroup = 1;
                    }
                    else
                    {
                        position                       = positions.getPosition("MandibularGroup");
                        splint.StartIndex              = 17;
                        splint.EndIndex                = 33;
                        rigidBody.Mass                 = 1;
                        rigidBody.CollisionFilterMask  = -5;
                        rigidBody.CollisionFilterGroup = 1;

                        var joint = new Generic6DofConstraintDefinition(Splint.JointName)
                        {
                            RigidBodyASimObject = "Mandible",
                            RigidBodyAElement   = "Actor",
                            RigidBodyBSimObject = "this",
                            RigidBodyBElement   = "RigidBody",
                        };

                        joint.TranslationMotor.LowerLimit = Vector3.Zero;
                        joint.TranslationMotor.UpperLimit = Vector3.Zero;
                        joint.XRotMotor.LoLimit           = 0;
                        joint.XRotMotor.HiLimit           = 0;
                        joint.YRotMotor.LoLimit           = 0;
                        joint.YRotMotor.HiLimit           = 0;
                        joint.ZRotMotor.LoLimit           = 0;
                        joint.ZRotMotor.HiLimit           = 0;

                        def.addElement(joint);

                        def.addElement(new BehaviorDefinition("JointHandler", new MultiPropJointHandler(joint.Name, multiProp.Name)));

                        //def.addElement(new BehaviorDefinition(Splint.SplintBehaviorName, new Splint()
                        //{

                        //}));
                    }

                    def.Translation = position.Translation;
                    def.Rotation    = position.Rotation;

                    PropDefinition propDef = new PropDefinition(def);
                    standaloneController.PropFactory.addDefinition(propDef);

                    Vector3 translationOffset = Quaternion.quatRotate(MandibleController.StartRotation.inverse(), position.Translation - MandibleController.StartTranslation);
                    SimObject mandibleObject  = MandibleController.Mandible.Owner;
                    Vector3 trans             = mandibleObject.Translation + Quaternion.quatRotate(mandibleObject.Rotation, translationOffset);
                    Quaternion rotation       = mandibleObject.Rotation;

                    standaloneController.PropFactory.createProp(def.Name, trans, rotation);

                    //SimObjectBase instance = def.register(standaloneController.MedicalController.CurrentScene.getDefaultSubScene());
                    //standaloneController.MedicalController.addSimObject(instance);
                    //standaloneController.MedicalController.CurrentScene.buildScene();

                    //if (SimObjectErrorManager.HasErrors)
                    //{
                    //    standaloneController.NotificationManager.showCallbackNotification("Errors loading the prop.\nClick for details.", MessageBoxIcons.Error, () =>
                    //    {
                    //        SceneErrorWindow errorGui = new SceneErrorWindow(guiManager);
                    //        errorGui.Visible = true;
                    //    });
                    //}
                }));

                taskController.addTask(disablePhysics);
                taskController.addTask(changeRenderingMode);

#if ALLOW_CRASH_PROGRAM
                taskController.addTask(new CallbackTask("Developer.Crash", "Crash The Program", CommonResources.NoIcon, TaskMenuCategories.Developer, (item) =>
                {
                    throw new Exception("Manually crashed program");
                }));
#endif
            }

            standaloneController.ViewHostFactory.addFactory(new WizardComponentViews());

            if (PlatformConfig.AllowFullscreenToggle && MedicalConfig.ShowDeveloperTools)
            {
                CallbackTask toggleBorderless = new CallbackTask("Developer.ToggleBorderless", "Toggle Borderless", "AnomalousMedical/ToggleFullscreen", TaskMenuCategories.Developer, int.MaxValue, false, (item) =>
                {
                    MainWindow.Instance.toggleBorderless();
                });
                taskController.addTask(toggleBorderless);
            }

            if (standaloneController.VirtualTextureManager != null && MedicalConfig.ShowDeveloperTools)
            {
                virtualTextureDebugger = new VirtualTextureDebugger(standaloneController.VirtualTextureManager);
                guiManager.addManagedDialog(virtualTextureDebugger);

                taskController.addTask(new MDIDialogOpenTask(virtualTextureDebugger, "Developer.VirtualTextureDebugger", "Virtual Texture Debugger", CommonResources.NoIcon, TaskMenuCategories.Developer));
            }

            var screenshotButtonEvent = new ButtonEvent(EventLayers.Gui, frameUp: (evtMgr) =>
            {
                try
                {
                    String screenshotFolder = Path.Combine(MedicalConfig.UserDocRoot, "Screenshots");
                    if (!Directory.Exists(screenshotFolder))
                    {
                        Directory.CreateDirectory(screenshotFolder);
                    }

                    OgreInterface.Instance.OgrePrimaryWindow.OgreRenderTarget.writeContentsToTimestampedFile(Path.Combine(screenshotFolder, "Screenshot"), ".png");
                }
                catch (Exception ex)
                {
                    MessageBox.show(String.Format("{0} saving screenshot. Message {1}", ex.GetType().Name, ex.Message), "Error saving screenshot", MessageBoxStyle.IconError | MessageBoxStyle.Ok);
                }
            });
            screenshotButtonEvent.addButton(KeyboardButtonCode.KC_F8);
            screenshotButtonEvent.addButton(KeyboardButtonCode.KC_LSHIFT);
            standaloneController.MedicalController.EventManager.addEvent(screenshotButtonEvent);
        }
 private void onExperienceStarted(string instanceId, long ownerId, bool isOwnerLocalPlayer, PropDefinition propDef)
 {
     try
     {
         invitationExperienceInstanceId = instanceId;
         invitingPlayerId        = ownerId;
         isInvitationLocalPlayer = isOwnerLocalPlayer;
         invitingPlayerObject    = getInvitingPlayerObject();
         if (invitingPlayerObject != null)
         {
             invitingPlayerAvatarView = invitingPlayerObject.GetComponent <AvatarView>();
         }
         CPMMOItemId identifier = new CPMMOItemId(long.Parse(invitationExperienceInstanceId), CPMMOItemId.CPMMOItemParent.PLAYER);
         serverObjectHandle = dataEntityCollection.FindEntity <ServerObjectItemData, CPMMOItemId>(identifier);
         if (serverObjectHandle.IsNull)
         {
             onItemRemoved();
             return;
         }
         serverObjectData      = dataEntityCollection.GetComponent <ServerObjectItemData>(serverObjectHandle);
         AvailableItemQuantity = propDef.TotalItemQuantity;
         totalItemQuantity     = propDef.TotalItemQuantity;
         setupNetworkServiceListeners();
         if (isOwnerLocalPlayer)
         {
             GameObject target = dataEntityCollection.GetComponent <GameObjectReferenceData>(dataEntityCollection.LocalPlayerHandle).GameObject;
             InputButtonGroupContentKey inputButtonGroupContentKey = (LocomotionHelper.IsCurrentControllerOfType <SwimController>(target) ? ((!(LocomotionHelper.GetCurrentController(target) as SwimController).IsInShallowWater) ? DivingControlLayout : SwimControlLayout) : ((!LocomotionHelper.IsCurrentControllerOfType <SitController>(target)) ? ControlLayout : ((!(LocomotionHelper.GetCurrentController(target) as SitController).IsUnderwater) ? SitControlLayout : SitSwimControlLayout)));
             if (inputButtonGroupContentKey != null && !string.IsNullOrEmpty(inputButtonGroupContentKey.Key))
             {
                 Service.Get <EventDispatcher>().DispatchEvent(new ControlsScreenEvents.SetRightOption(inputButtonGroupContentKey));
             }
             else
             {
                 Log.LogError(this, "Did not find a valid controls content key for this state");
             }
             ParticipationData component = dataEntityCollection.GetComponent <ParticipationData>(dataEntityCollection.LocalPlayerHandle);
             if (component != null)
             {
                 component.CurrentParticipationState = ParticipationState.Participating;
                 component.IsInteractButtonAvailable = false;
             }
         }
         Service.Get <EventDispatcher>().AddListener <PenguinInteraction.InteractionStartedEvent>(onInteractionStarted);
         if (invitingPlayerAvatarView != null)
         {
             if (invitingPlayerAvatarView.IsReady)
             {
                 onAvatarReady();
             }
             invitingPlayerAvatarView.OnReady += onAvatarViewReady;
         }
         switchToCamera();
     }
     catch (FormatException ex)
     {
         Log.LogException(this, ex);
     }
 }
Esempio n. 26
0
 private void setItemCost(PropDefinition definition)
 {
     PriceTag.setItem(definition, definition.Cost, (CellPhoneSaleActivityDefinition sale, PropDefinition item) => new List <PropDefinition>(sale.Consumables).Find((PropDefinition prop) => prop.Id == definition.Id));
 }
 private void onExperienceStarted(string instanceId, long ownerId, bool isOwnerLocalPlayer, PropDefinition propDef)
 {
     partyBlasterId = instanceId;
     setupNetworkServiceListeners();
     if (BlastEffectPrefab != null)
     {
         CoroutineRunner.Start(playBlastEffect(), this, "playBlastEffect");
     }
     if (EffectRadiusPrefab != null)
     {
         CoroutineRunner.Start(playEffectRadius(), this, "playEffectRadius");
     }
 }
 public MarketplaceItemData(PropDefinition propDefn, int unlockLevel = -1)
 {
     PropDefn    = propDefn;
     UnlockLevel = unlockLevel;
 }