public static PlungerAuthoring SetupGameObject(this Plunger plunger, GameObject obj, RenderObjectGroup rog) { var ic = obj.AddComponent <PlungerAuthoring>().SetItem(plunger); var rod = obj.transform.Find(PlungerMeshGenerator.RodName); if (rod != null) { rod.gameObject.AddComponent <PlungerRodAuthoring>(); } var spring = obj.transform.Find(PlungerMeshGenerator.SpringName); if (spring != null) { spring.gameObject.AddComponent <PlungerSpringAuthoring>(); } var flat = obj.transform.Find(PlungerMeshGenerator.FlatName); if (flat != null) { flat.gameObject.AddComponent <PlungerFlatAuthoring>(); } obj.AddComponent <ConvertToEntity>(); return(ic as PlungerAuthoring); }
public void DettachPlunger(Plunger plunger) { if (this.listPlunger.Contains(plunger)) { this.listPlunger.Remove(plunger); } }
private void Awake() { plunger = GameObject.Find("Plunger").GetComponent <Plunger>(); Debug.Log(plunger); Debug.Log(gameObject.name); slider = GameObject.Find("PlungerForce").GetComponent <Slider>(); }
public void AttachPlunger(Plunger plunger) { if (!this.listPlunger.Contains(plunger)) { this.listPlunger.Add(plunger); } }
public void RegisterPlunger(Plunger plunger, Entity entity, GameObject go) { var plungerApi = new PlungerApi(plunger, entity, this); _tableApi.Plungers[plunger.Name] = plungerApi; _initializables.Add(plungerApi); _rotatables[entity] = plungerApi; }
public static ConvertedItem SetupGameObject(this Plunger plunger, GameObject obj) { var mainAuthoring = obj.AddComponent <PlungerAuthoring>().SetItem(plunger); var meshAuthoring = new List <IItemMeshAuthoring>(); PlungerColliderAuthoring colliderAuthoring = null; switch (plunger.SubComponent) { case ItemSubComponent.None: { colliderAuthoring = obj.AddComponent <PlungerColliderAuthoring>(); switch (plunger.Data.Type) { case PlungerType.PlungerTypeFlat: meshAuthoring.Add(ConvertedItem.CreateChild <PlungerFlatMeshAuthoring>(obj, PlungerMeshGenerator.Flat)); break; case PlungerType.PlungerTypeCustom: meshAuthoring.Add(ConvertedItem.CreateChild <PlungerSpringMeshAuthoring>(obj, PlungerMeshGenerator.Spring)); meshAuthoring.Add(ConvertedItem.CreateChild <PlungerRodMeshAuthoring>(obj, PlungerMeshGenerator.Rod)); break; case PlungerType.PlungerTypeModern: meshAuthoring.Add(ConvertedItem.CreateChild <PlungerRodMeshAuthoring>(obj, PlungerMeshGenerator.Rod)); break; } break; } case ItemSubComponent.Collider: { Logger.Warn("Cannot parent a plunger collider to a different object than a plunger!"); break; } case ItemSubComponent.Mesh: { Logger.Warn("Cannot parent a plunger mesh to a different object than a plunger!"); break; } default: throw new ArgumentOutOfRangeException(); } obj.AddComponent <ConvertToEntity>(); return(new ConvertedItem(mainAuthoring, meshAuthoring, colliderAuthoring)); }
//private void OnGUI() //{ // GUI.Label(new Rect(10, 10, 100, 80), "test float: " + testFloat); //} public void Save() { BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream dataFile = File.Create(Application.persistentDataPath + "/TrainOfBotDataFile.dat"); Data data = new Data(); data.testFloat = 0.0f; data.storageRoomBoxPos = StorageRoomBox.FindObjectOfType <Transform>().position; data.testCharacterCanRecieve = true; data.testCharacterCanGive = true; //ITEMS data.bottleOfBoltsTaken = BottleOfBolts.FindObjectOfType <BottleOfBolts>().taken; data.cabinetKeyTaken = CabinetKey.FindObjectOfType <CabinetKey>().taken; data.chefsSpoonTaken = ChefsSpoon.FindObjectOfType <ChefsSpoon>().taken; data.cookedMechanicalDinnerTaken = CookedMechanicalDinner.FindObjectOfType <CookedMechanicalDinner>().taken; data.earmuffsTaken = Earmuffs.FindObjectOfType <Earmuffs>().taken; data.frozenMechanicalDinnerTaken = FrozenMechanicalDinner.FindObjectOfType <FrozenMechanicalDinner>().taken; data.gasCanisterTaken = GasCanister.FindObjectOfType <GasCanister>().taken; data.passengersEyeTaken = PassengersEye.FindObjectOfType <PassengersEye>().taken; data.plungerTaken = Plunger.FindObjectOfType <Plunger>().taken; data.rattleTaken = Rattle.FindObjectOfType <Rattle>().taken; data.valveTaken = Valve.FindObjectOfType <Valve>().taken; data.plungerThrown = Plunger.FindObjectOfType <Plunger>().thrown; //NPCS data.earmuffsGuyCanGive = EarmuffsGuy.FindObjectOfType <EarmuffsGuy>().canGiveItem; data.earmuffsGuyCanRecieve = EarmuffsGuy.FindObjectOfType <EarmuffsGuy>().canRecieveItem; data.eyeRobotCanGive = EyeRobot.FindObjectOfType <EyeRobot>().canGiveItem; data.eyeRobotCanRecieve = EyeRobot.FindObjectOfType <EyeRobot>().canRecieveItem; data.chefCanGive = Chef.FindObjectOfType <Chef>().canGiveItem; data.chefCanRecieve = Chef.FindObjectOfType <Chef>().canRecieveItem; data.chefFrozen = Chef.FindObjectOfType <Chef>().frozen; data.womanRobotCanGive = WomanRobot.FindObjectOfType <WomanRobot>().canGiveItem; data.womanRobotCanRecieve = WomanRobot.FindObjectOfType <WomanRobot>().canRecieveItem; data.cabinetCanGive = Cabinet.FindObjectOfType <Cabinet>().canGiveItem; data.cabinetCanRecieve = Cabinet.FindObjectOfType <Cabinet>().canRecieveItem; data.toiletcanRecieve = Toilet.FindObjectOfType <Toilet>().canRecieveItem; data.hoboThrew = HoboRobot.FindObjectOfType <HoboRobot>().hoboThrew; data.nozzleCanRecieve = Nozzle.FindObjectOfType <Nozzle>().canRecieveItem; //ROBOT SPECIFIC data.robotLeftBathroom = BathroomRobot.FindObjectOfType <BathroomRobot>().leftBathroom; //DOG data.dogEating = Dog.FindObjectOfType <Dog>().eating; data.dogLocation = Dog.FindObjectOfType <Transform>().position; //DOG BOWL data.bowlHasFood = DogBowl.FindObjectOfType <DogBowl>().hasFood; data.dinnerActive = DogBowl.FindObjectOfType <DogBowl>().dinnerActive; //WORKTABLE data.canRecieveChefsSpoon = Worktable.FindObjectOfType <Worktable>().canRecieveChefsSpoon; data.canRecieveBottle = Worktable.FindObjectOfType <Worktable>().canRecieveBottle; data.tableCanGiveItem = Worktable.FindObjectOfType <Worktable>().canGiveItem; //STOVE data.canRecieveFMD = Stove.FindObjectOfType <Stove>().canRecieveFMD; data.canRecieveGasCanister = Stove.FindObjectOfType <Stove>().canRecieveGasCanister; data.stoveCanGiveItem = Stove.FindObjectOfType <Stove>().canGiveItem; // Data data = new Data // { // testFloat = 0.0f // }; binaryFormatter.Serialize(dataFile, data); dataFile.Close(); }
/// <summary> /// Функция моделирования работы плунжерного лифта /// </summary> /// <param name="eps">Точность с которой будет расчитываться забойное давление (безразмерная)</param> /// <param name="plunger">Плунжер</param> public PlungerModelingResult ModelingPlunger(double eps, Plunger plunger) { PlungerModelingResult mr = new PlungerModelingResult(); mr.StartGasRate = Modeling(eps, out mr.StartBtmhPressure, out mr.StartWaterRate, out mr.StartNglRate); double P_avg = (WellheadPressure + mr.StartBtmhPressure) / 2; mr.CritQ = CalcCriticalGasRate(P_avg); //создается новый Tubing чтобы не перезаписывать SegmentFlows Tubing tubing = new Tubing(Tubing); mr.CloseGasRate = (mr.StartGasRate - mr.CritQ) / 2; double step = (mr.StartGasRate - mr.CritQ) / 4; int i = 0; do { i++; mr.CloseBtmhPressure = Layer.CalcBottomholePressure(mr.CloseGasRate); mr.CloseWaterRate = Layer.CalcWaterRate(mr.CloseBtmhPressure); double closeNglVolumeRate = NglFluid.CalcVolumeRate(Layer.NGLFactor, mr.CloseGasRate); mr.CloseNglRate = CalcNglRate(mr.CloseGasRate); LiquidFlow liquidFlow = new LiquidFlow(closeNglVolumeRate, NglFluid, mr.CloseWaterRate, WaterFluid); GasFlow gasFlow = new GasFlow(GasFluid, mr.CloseGasRate, WellheadPressure, WellheadTemperature); //Давление выше столба жидкость высотой h double Ph = tubing.CalcBottomholePressure(gasFlow, liquidFlow, BottomholeTemperature); //разница (P2 - P1) = rho*g*h создается столбом жидкости на забое mr.ColumnHeight = WaterFluid.CalcColumnHeight(mr.CloseBtmhPressure - Ph); // Объем столба воды над плунжером mr.ColumnWaterVolume = WaterFluid.CalcVolumeOfColumnHeight(mr.ColumnHeight, Tubing.CrossSectionArea); //Находим затрубное давление необходимое для поднятия плунжера с водой double Pc_max = plunger.CalcMaxCasingPressure(WellheadPressure, Tubing.Length, mr.ColumnWaterVolume, Tubing.AnnularCrossSectionArea, Tubing.CrossSectionArea); //Забойное давление необходимое для поднятия плунжера с водой mr.OpenBtmhPressure = CalcStaticBottomholePressureByAnnularTubing(Pc_max); if (mr.OpenBtmhPressure < Layer.ReservoirPressure) { return(mr); } if (Ph > mr.CloseBtmhPressure) { mr.CloseGasRate = mr.CloseGasRate - step; } else { mr.CloseGasRate = mr.CloseGasRate + step; } step = step / 2; if (i > 100) { break; } } while (true); mr = new PlungerModelingResult(); return(mr); }
public KitchenModel() { personnel = new List <Sprite>(); objects = new List <Sprite>(); Desk kitchenDesk = new Desk(); Sink kitchenSink = new Sink(); HeatingPlate plaque1 = new HeatingPlate(); HeatingPlate plaque2 = new HeatingPlate(); HeatingPlate plaque3 = new HeatingPlate(); Dishwasher laveVaisselle = new Dishwasher(); LaundryMachine laveLinge = new LaundryMachine(); DishesStock stockVaisselle = new DishesStock(); DirtyDishesStock stockVaiselleSale = new DirtyDishesStock(); Fridge kitchenFridge = new Fridge(); KitchenMaterialStock kitchenMaterialStock = new KitchenMaterialStock(); IngredientStock kitchenIngredientStock = new IngredientStock(); objects.Add(kitchenDesk.Sprite); objects.Add(kitchenSink.Sprite); objects.Add(plaque1.Sprite); objects.Add(plaque2.Sprite); objects.Add(plaque3.Sprite); objects.Add(laveVaisselle.Sprite); objects.Add(laveLinge.Sprite); objects.Add(stockVaisselle.Sprite); objects.Add(stockVaiselleSale.Sprite); objects.Add(kitchenFridge.Sprite); objects.Add(kitchenMaterialStock.Sprite); objects.Add(kitchenIngredientStock.Sprite); Plunger plongeur = new Plunger(kitchenDesk, stockVaiselleSale, stockVaisselle, laveVaisselle, laveLinge, kitchenSink); Clerk commis1 = new Clerk(kitchenMaterialStock, kitchenIngredientStock, kitchenFridge, kitchenSink, "GabinCuisto"); Clerk commis2 = new Clerk(kitchenMaterialStock, kitchenIngredientStock, kitchenFridge, kitchenSink, "MaxCuisto"); Cooker cuisinier1 = new Cooker(commis1, commis2, kitchenMaterialStock, kitchenIngredientStock, kitchenFridge, "BenjaminCuisto"); Cooker cuisinier2 = new Cooker(commis1, commis2, kitchenMaterialStock, kitchenIngredientStock, kitchenFridge, "PirminCuisto"); Chef chef = new Chef(cuisinier1, cuisinier2, kitchenDesk); personnel.Add(chef.Sprite); personnel.Add(cuisinier1.Sprite); personnel.Add(cuisinier2.Sprite); personnel.Add(commis1.Sprite); personnel.Add(commis2.Sprite); personnel.Add(plongeur.Sprite); socket = new SocketApp(); SocketListener.kitchenDesk = kitchenDesk; // Ajouter des abonnés observer à l'observable Comptoir kitchenDesk.AttachChef(chef); kitchenDesk.AttachPlunger(plongeur); kitchenDesk.AttachSocket(socket); //// Créations des Ingrédients //Ingredient steak = new Ingredient("Steak", "Viande"); //Ingredient poulet = new Ingredient("Poulet", "Viande"); //Ingredient poisson = new Ingredient("Poisson", "Poisson"); //Ingredient pain = new Ingredient("Pain", "Pain"); //Ingredient salade = new Ingredient("Salade", "Vegetables"); //Ingredient tomate = new Ingredient("Tomate", "Vegetables"); //Ingredient oignon = new Ingredient("Oignon", "Vegetables"); //Ingredient cheddar = new Ingredient("Cheddar", "Frommage"); //Ingredient raclette = new Ingredient("Raclette", "Fromage"); //Ingredient sauce = new Ingredient("Sauce", "Sauce"); //// Instanciation Object Cuisine Material //KitchenKnife kitchenKnife = new KitchenKnife(); //Pans kitchenCasserolle = new Pans(); //Stove kitchenPoêle = new Stove(); //WoodenSpoon kitchenCuillière = new WoodenSpoon(); //SaladBowl kitchenBolSalade = new SaladBowl(); //// Creation des etapes des recettes //RecipeStep prepareSteak = new RecipeStep("Cuire le Steak", 10); //prepareSteak.IngredientQuantities.Add(new IngredientQuantity(1, steak)); //prepareSteak.ListUstencils.Add(kitchenPoêle); //RecipeStep preparePoulet = new RecipeStep("Cuire le Poulet", 10); //preparePoulet.IngredientQuantities.Add(new IngredientQuantity(1, poulet)); //preparePoulet.ListUstencils.Add(kitchenPoêle); //RecipeStep preparePoisson = new RecipeStep("Cuire le Poisson", 10); //preparePoisson.IngredientQuantities.Add(new IngredientQuantity(1, poisson)); //preparePoisson.ListUstencils.Add(kitchenPoêle); //RecipeStep prepareVegetables = new RecipeStep("Preparer les légumes", 5); //prepareVegetables.IngredientQuantities.Add(new IngredientQuantity(1, salade)); //prepareVegetables.IngredientQuantities.Add(new IngredientQuantity(2, tomate)); //prepareVegetables.IngredientQuantities.Add(new IngredientQuantity(1, oignon)); //prepareVegetables.ListUstencils.Add(kitchenBolSalade); //prepareVegetables.ListUstencils.Add(kitchenCuillière); //prepareVegetables.ListUstencils.Add(kitchenKnife); //RecipeStep prepareRaclette = new RecipeStep("Préparer le frommage à Raclette", 5); //prepareRaclette.IngredientQuantities.Add(new IngredientQuantity(2, raclette)); //prepareRaclette.ListUstencils.Add(kitchenKnife); //RecipeStep prepareCheddar = new RecipeStep("Préparer le Cheddar", 5); //prepareCheddar.IngredientQuantities.Add(new IngredientQuantity(2, cheddar)); //prepareCheddar.ListUstencils.Add(kitchenKnife); //RecipeStep assemblerBurger = new RecipeStep("Assembler le Burger", 5); //assemblerBurger.IngredientQuantities.Add(new IngredientQuantity(1, pain)); //assemblerBurger.IngredientQuantities.Add(new IngredientQuantity(1, sauce)); //// Creations des plats //Dish burgerClassic = new Dish(1, "Burger Classique"); //burgerClassic.Recipe.Add(prepareSteak); //burgerClassic.Recipe.Add(prepareVegetables); //burgerClassic.Recipe.Add(prepareCheddar); //burgerClassic.Recipe.Add(assemblerBurger); //Dish burgerChicken = new Dish(2, "Burger Poulet"); //burgerChicken.Recipe.Add(preparePoulet); //burgerChicken.Recipe.Add(prepareVegetables); //burgerChicken.Recipe.Add(prepareCheddar); //burgerChicken.Recipe.Add(assemblerBurger); //Dish burgerMountain = new Dish(3, "Burger Montagnard"); //burgerMountain.Recipe.Add(prepareSteak); //burgerMountain.Recipe.Add(prepareVegetables); //burgerMountain.Recipe.Add(prepareCheddar); //burgerMountain.Recipe.Add(assemblerBurger); //Dish burgerVegan = new Dish(4, "Burger Vegan"); //burgerVegan.Recipe.Add(preparePoisson); //burgerVegan.Recipe.Add(prepareVegetables); //burgerVegan.Recipe.Add(prepareCheddar); //burgerVegan.Recipe.Add(prepareRaclette); //burgerVegan.Recipe.Add(assemblerBurger); DomainApp domainApp = new DomainApp(); Console.WriteLine("Instanciation du Controller sans problèmes"); }
internal static IVpxPrefab InstantiatePrefab(this Plunger plunger) { var prefab = UnityEngine.Resources.Load <GameObject>("Prefabs/Plunger"); return(new VpxPrefab <Plunger, PlungerData, PlungerComponent>(prefab, plunger)); }