public void Prepare(PlanetVO planet, AssetsCompleteDelegate onLoadComplete, object cookie) { if (planet == this.currentPlanet) { onLoadComplete(cookie); return; } AssetManager assetManager = Service.Get <AssetManager>(); if (this.planetAssetHandle != AssetHandle.Invalid) { assetManager.Unload(this.planetAssetHandle); this.planetAssetHandle = AssetHandle.Invalid; } this.currentPlanet = planet; this.Reset(); List <string> list = new List <string>(); string text = HardwareProfile.IsLowEndDevice() ? (planet.AssetName + "-lod1") : planet.AssetName; list.Add(text); assetManager.RegisterPreloadableAsset(text); List <object> list2 = new List <object>(); list2.Add(this.currentPlanet); List <AssetHandle> list3 = new List <AssetHandle>(); list3.Add(AssetHandle.Invalid); assetManager.MultiLoad(list3, list, new AssetSuccessDelegate(this.AssetSuccess), null, list2, onLoadComplete, cookie); this.planetAssetHandle = list3[0]; }
public void AttachEffects(GameObject gameObject, object cookie) { if (!HardwareProfile.IsLowEndDevice()) { PlanetVO planetVO = cookie as PlanetVO; this.LoadPlanetFX(planetVO.Uid, this.GetEffectNames(planetVO.PlanetaryFX), gameObject); } }
public override void AddToGame(Game game) { this.entityController = Service.EntityController; this.battleController = Service.BattleController; this.troopAbilityController = Service.TroopAbilityController; this.audioManager = Service.AudioManager; this.specialAttackController = Service.SpecialAttackController; this.squadTroopAttackController = Service.SquadTroopAttackController; this.buildingNodeList = this.entityController.GetNodeList <BuildingNode>(); this.troopNodeList = this.entityController.GetNodeList <TroopNode>(); this.audioResetDeltaMax = ((!HardwareProfile.IsLowEndDevice()) ? 33u : 330u); this.audioResetDeltaAccumulator = this.audioResetDeltaMax; }
public void ResetWorld() { EntityFactory entityFactory = Service.Get <EntityFactory>(); EntityList allEntities = this.entityController.GetAllEntities(); for (Entity entity = allEntities.Head; entity != null; entity = entity.Next) { entityFactory.DestroyEntity(entity, true, true); } this.DroidHut = null; Service.Get <SpatialIndexController>().Reset(); Service.Get <BoardController>().ResetBoard(); Service.Get <FXManager>().Reset(); if (!HardwareProfile.IsLowEndDevice()) { Service.Get <TerrainBlendController>().ResetTerrain(); } Service.Get <EventManager>().SendEvent(EventId.WorldReset, null); }
private void AssetSuccess(object asset, object cookie) { GameObject gameObject = asset as GameObject; PlanetVO planetVO = cookie as PlanetVO; bool flag = HardwareProfile.IsLowEndDevice(); if (planetVO != null && !flag) { Service.Get <PlanetEffectController>().AttachEffects(gameObject, planetVO); } Transform transform = gameObject.transform; transform.position = Vector3.zero; transform.rotation = Quaternion.AngleAxis(-90f, Vector3.up); if (!flag && transform.FindChild("terrainInnerMesh")) { Service.Get <TerrainBlendController>().IndexTerrainMesh(gameObject); } this.groundAsset = gameObject; Vector3 vector; Vector3 vector2; Vector3 vector3; Vector3 vector4; Vector3[] array; if (!this.TryGetLocator(gameObject, "locator_lowerLeft", out vector) || !this.TryGetLocator(gameObject, "locator_lowerRight", out vector2) || !this.TryGetLocator(gameObject, "locator_upperLeft", out vector3) || !this.TryGetLocator(gameObject, "locator_upperRight", out vector4)) { Service.Get <StaRTSLogger>().Warn("Unable to find corner locators"); array = PlanetView.DEFAULT_CORNER_LOCATORS; } else { array = new Vector3[] { vector, vector2, vector3, vector4 }; } this.SetCornerLocators(array); }
public void Render(ProjectorConfig config) { if (!config.AssetReady) { return; } if (string.IsNullOrEmpty(config.buildingEquipmentShaderName) || config.AnimPreference == AnimationPreference.NoAnimation || (config.AnimPreference == AnimationPreference.AnimationPreferred && HardwareProfile.IsLowEndDevice())) { this.baseRenderer.Render(config); return; } this.materialCopies = new List <Material>(); Dictionary <Material, Material> dictionary = new Dictionary <Material, Material>(); Shader shader = Service.AssetManager.Shaders.GetShader(config.buildingEquipmentShaderName); AssetMeshDataMonoBehaviour component = config.MainAsset.GetComponent <AssetMeshDataMonoBehaviour>(); if (component != null) { int count = component.SelectableGameObjects.Count; for (int i = 0; i < count; i++) { Renderer component2 = component.SelectableGameObjects[i].GetComponent <Renderer>(); if (component2.sharedMaterial == null) { Service.Logger.ErrorFormat("sharedMaterial missing on {0}", new object[] { component.SelectableGameObjects[i].name }); } else if (dictionary.ContainsKey(component2.sharedMaterial)) { component2.sharedMaterial = dictionary[component2.sharedMaterial]; } else { Material material = UnityUtils.EnsureMaterialCopy(component2); this.materialCopies.Add(material); dictionary.Add(component2.sharedMaterial, material); material.shader = shader; } } } dictionary.Clear(); this.baseRenderer.Render(config); }
public virtual void Render(ProjectorConfig config) { this.config = config; bool flag = config.AnimPreference == AnimationPreference.NoAnimation; bool flag2 = config.AnimPreference == AnimationPreference.AnimationPreferred && HardwareProfile.IsLowEndDevice(); this.snapshot = (flag | flag2); if (this.snapshot) { this.renderCallback = config.RenderCallback; this.snapshotFrameCount = config.SnapshotFrameDelay; Service.Get <ViewTimeEngine>().RegisterFrameTimeObserver(this); return; } if (config.RenderCallback != null) { config.RenderCallback.Invoke(this.renderTexture, config); } }
private static bool CanBeAnimated(ProjectorConfig config) { return(config.AnimPreference == AnimationPreference.AnimationAlways || (config.AnimPreference == AnimationPreference.AnimationPreferred && !HardwareProfile.IsLowEndDevice())); }
public static GeometryProjector GenerateProjector(ProjectorConfig config) { GeometryProjector geometryProjector = new GeometryProjector(config); if (config.FrameSprite != null) { geometryProjector.Renderer = new SpriteProjectorRenderer(config.FrameSprite, geometryProjector.ProjectorIndex); } else { geometryProjector.Renderer = new SurfaceProjectorRenderer(geometryProjector.ProjectorIndex); } if (config.Metered) { geometryProjector.Renderer = new ProjectorMeterDecorator(geometryProjector.Renderer); } geometryProjector.Renderer = new ProjectorOutlineDecorator(geometryProjector.Renderer); if (!string.IsNullOrEmpty(config.TrackerName)) { geometryProjector.Renderer = new ProjectorTurretDecorator(geometryProjector.Renderer); } if (!string.IsNullOrEmpty(config.buildingEquipmentShaderName) && ProjectorUtils.CanBeAnimated(config)) { geometryProjector.Renderer = new ProjectorEquipmentBuildingDecorator(geometryProjector.Renderer); } else { geometryProjector.Renderer = new ProjectorShaderSwapDecorator(geometryProjector.Renderer); } geometryProjector.Renderer = new ProjectorAnimationDecorator(geometryProjector.Renderer); bool flag = config.AnimPreference == AnimationPreference.NoAnimation; bool flag2 = config.AnimPreference == AnimationPreference.AnimationPreferred && HardwareProfile.IsLowEndDevice(); if (!flag && !flag2 && config.IconRotationSpeed > 0f) { geometryProjector.Renderer = new ProjectorRotationDecorator(geometryProjector.Renderer); } ProjectorAssetProcessor arg_16C_0 = geometryProjector.AssetProcessor; if (ProjectorUtils.< > f__mg$cache0 == null) { ProjectorUtils.< > f__mg$cache0 = new Action <GeometryProjector>(ProjectorUtils.OnDefaultAssetSuccess); } Action <GeometryProjector> arg_16C_1 = ProjectorUtils.< > f__mg$cache0; if (ProjectorUtils.< > f__mg$cache1 == null) { ProjectorUtils.< > f__mg$cache1 = new Action <GeometryProjector>(ProjectorUtils.OnDefaultAssetFailure); } arg_16C_0.LoadAllAssets(arg_16C_1, ProjectorUtils.< > f__mg$cache1); return(geometryProjector); }
public override void Start() { Service.Get <EventManager>().SendEvent(EventId.InitializeGeneralSystemsStart, null); new WorldTransitioner(); new VictoryConditionController(); new DefensiveBattleController(); new RaidDefenseController(); new CombatTriggerManager(); new TrapViewController(); new TrapController(); new BattleController(); new BattleRecordController(); new BattlePlaybackController(); new PostBattleRepairController(); new ShooterController(); new TargetingController(); new TurretAttackController(); new TroopAttackController(); new BuffController(); new TroopAbilityController(); new ArmoryController(); new DeployableShardUnlockController(); new FXManager(); new AnimationEventManager(); new StarportDecalManager(); if (!HardwareProfile.IsLowEndDevice()) { new TerrainBlendController(); } new BuildingTooltipController(); new CurrencyEffects(); new CurrencyController(); new StorageEffects(); new AnimController(); new UnlockController(); new RewardManager(); new CampaignController(); new TournamentController(); new PvpManager(); new NeighborVisitManager(); new TransportController(); new ShuttleController(); new ShieldEffects(); new ShieldController(); new MobilizationEffectsManager(); new SocialPushNotificationController(); new FactionIconUpgradeController(); new TroopDonationTrackController(); new LimitedEditionItemController(); VideoPlayerKeepAlive.Init(); new VideoDataManager(); if (GameConstants.IsMakerVideoEnabled()) { new ThumbnailManager(); } Service.Get <NotificationController>().Init(); Service.Get <EventManager>().SendEvent(EventId.InitializeGeneralSystemsEnd, null); new TargetedBundleController(); HolonetController holonetController = new HolonetController(); holonetController.PrepareContent(new HolonetController.HolonetPreparedDelegate(this.OnHolonetPrepared)); new InventoryCrateRewardController(); new ObjectiveManager(); new ObjectiveController(); }