public SolarComponentPropertyRigidHull(SolarComponent component, ArchSolarComponentPropertyRigidHull arch) : base(component) { //this.worldObject = UnityEngine.Object.Instantiate(Resources.Load(arch.assetPath)) as GameObject; //Assist.SetLayer(this.worldObject, component.solar.worldController.layer); }
void handleGameModelLoaded(AbstractMessage message) { int galaxiesCount = gameModel.User.Galaxies.Count; if (galaxiesCount > 0) { for (int solarIndex = 0; solarIndex < galaxiesCount; solarIndex++) { GameObject solarPrefabInstance = Instantiate(solarPrefab, galaxy.transform); SolarComponent solar = solarPrefabInstance.GetComponent <SolarComponent>(); solar.Setup(gameModel.User.Galaxies[solarIndex]); } } }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); IsWorkingChanged += OnIsWorkingChanged; NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME; InitializeConveyorEndpoint(); SourceComp.Init( BlockDefinition.ResourceSourceGroup, new MyResourceSourceInfo { ResourceTypeId = BlockDefinition.ProducedGas, DefinedOutput = BlockDefinition.MaxGasOutput, ProductionToCapacityMultiplier = 1, IsInfiniteCapacity = true, }); SourceComp.Enabled = IsWorking; ResourceSink.Init( BlockDefinition.ResourceSinkGroup, new MyResourceSinkInfo { ResourceTypeId = MyResourceDistributorComponent.ElectricityId, MaxRequiredInput = BlockDefinition.OperationalPowerConsumption, RequiredInputFunc = ComputeRequiredPower, }); ResourceSink.IsPoweredChanged += PowerReceiver_IsPoweredChanged; ResourceSink.Update(); GameLogic = new MySolarGameLogicComponent(); SolarComponent = GameLogic as MySolarGameLogicComponent; SolarComponent.Initialize(BlockDefinition.PanelOrientation, BlockDefinition.IsTwoSided, BlockDefinition.PanelOffset, this); AddDebugRenderComponent(new MyDebugRenderComponentSolarPanel(this)); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_OnIsFunctionalChanged; UpdateVisual(); UpdateDisplay(); }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); SolarPanelDefinition = BlockDefinition as MySolarPanelDefinition; IsWorkingChanged += OnIsWorkingChanged; NeedsUpdate = MyEntityUpdateEnum.EACH_100TH_FRAME; var sourceDataList = new List <MyResourceSourceInfo> { new MyResourceSourceInfo { ResourceTypeId = MyResourceDistributorComponent.ElectricityId, DefinedOutput = SolarPanelDefinition.MaxPowerOutput, IsInfiniteCapacity = true, ProductionToCapacityMultiplier = 60 * 60 } }; SourceComp.Init(SolarPanelDefinition.ResourceSourceGroup, sourceDataList); GameLogic = new MySolarGameLogicComponent(); SolarComponent = GameLogic as MySolarGameLogicComponent; SolarComponent.Initialize(SolarPanelDefinition.PanelOrientation, SolarPanelDefinition.IsTwoSided, SolarPanelDefinition.PanelOffset, this); AddDebugRenderComponent(new Sandbox.Game.Components.MyDebugRenderComponentSolarPanel(this)); }
private void handleCreateSolar(AbstractMessage message) { float SC = (message as SolarMessage).SC; float maxSC = (message as SolarMessage).maxSC; /**/ if (SC > gameModel.User.SC) { Debug.Log("Not enough SC to create Solar system!"); return; } Messenger.Dispatch(AtomMessage.SPEND_ATOMS, new AtomMessage(0, 0, SC)); /**/ SolarModel generatedSolarModel = SMM.GenerateSolar(SC); gameModel.User.Galaxies.Add(generatedSolarModel); GameObject solarPrefabInstance = Instantiate(solarPrefab, galaxy.transform); SolarComponent solar = solarPrefabInstance.GetComponent <SolarComponent>(); solar.Setup(generatedSolarModel); Messenger.Dispatch(SolarMessage.SOLAR_CREATED); }
public SolarComponentProperty(SolarComponent component) { this.component = component; }