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);
        }
Esempio n. 2
0
    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]);
            }
        }
    }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
    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;
 }