private static GameObject CreateRocketBlockTemp() { GameObject RocketTemp = new GameObject("Rocket Temp"); RocketTemp.transform.localScale = new Vector3(1f, 0.75f, 0.75f); GameObject vis = new GameObject("Vis"); vis.transform.SetParent(RocketTemp.transform); vis.transform.localPosition -= RocketTemp.transform.right; vis.transform.localScale = RocketTemp.transform.localScale; vis.AddComponent <MeshFilter>().mesh = ModResource.GetMesh("RocketPod_r Mesh"); vis.AddComponent <MeshRenderer>().material.mainTexture = ModResource.GetTexture("RocketPod_r Texture"); GameObject collider = new GameObject("Collider"); collider.transform.SetParent(RocketTemp.transform); collider.transform.localScale = RocketTemp.transform.localScale; CapsuleCollider capsuleCollider = collider.AddComponent <CapsuleCollider>(); capsuleCollider.radius = 0.15f; capsuleCollider.height = 2.5f; capsuleCollider.direction = 0; capsuleCollider.isTrigger = true; Rigidbody rigidbody = RocketTemp.AddComponent <Rigidbody>(); rigidbody.mass = 0.25f; RocketTemp.AddComponent <RocketScript>(); RocketTemp.AddComponent <DestroyIfEditMode>(); RocketTemp.SetActive(false); return(RocketTemp); }
public virtual void AssignEmission() { ModTexture t = ModResource.GetTexture("portalEmissionTex"); if (t.Available) { MeshRenderer rend = VisualController.renderers[0]; rend.sharedMaterial.SetTexture("_EmissMap", t); rend.sharedMaterial.SetColor("_EmissCol", def); /* * VisualController.Prefab.DefaultSkin.material.SetTexture("_EmissMap", t); * VisualController.Prefab.DefaultSkin.material.SetColor("_EmissCol", Color.gray);*/ MaterialPropertyBlock props = new MaterialPropertyBlock(); rend.GetPropertyBlock(props); props.SetColor("_EmissCol", def); rend.SetPropertyBlock(props); VisualController.canBeHeated = true; VisualController.heating.lerpSpeed = 4f; VisualController.heating.glowCol = def; VisualController.heating.colToSet = "_EmissCol"; } }
void Awake() { if (StatMaster.isMP) { this.playerLabels = GameObject.Find("HUD/MULTIPLAYER/PLAYER_LABELS"); this.DepthDisplayChange(0); } SceneManager.activeSceneChanged += (x, y) => { if (y.buildIndex == 9) { this.playerLabels = GameObject.Find("HUD/MULTIPLAYER/PLAYER_LABELS"); this.DepthDisplayChange(0); } }; StatMaster.hudHiddenChanged += () => { if (StatMaster.isMP) { this.playerLabels.SetActive(!this.playerLabels.activeSelf); } }; ModResource.OnAllResourcesLoaded += () => { for (int i = 0; i < this.typeIconList.Count; i++) { Texture texture = ModResource.GetTexture(this.typeIconList[i]); this.typeIconDic.Add(i, texture); } }; }
//#region Network ///// <summary>Block, GunbodyVelocity, BulletGuid,</summary> //public static MessageType FireMessage = ModNetworking.CreateMessageType(DataType.Block, DataType.Vector3, DataType.String); //#endregion public override void SafeAwake() { LaunchKey = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C); StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f); RateSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.05f, 0.01f, 0.3f); KnockBackSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 1f, 0.1f, 3f); BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f); bulletMassSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f); bulletDragSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f); bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false); bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.01f, 0f, 0.1f); SpawnPoint = new Vector3(0, 0.125f, 3.75f); Direction = Vector3.forward; LaunchEnable = false; RotationRate = 0f; RotationAudioSource = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>(); RotationAudioSource.clip = ModResource.GetAudioClip("GatlingGun AudioClip"); RotationAudioSource.loop = true; RotationAudioSource.volume = 1; RotationAudioSource.spatialBlend = 1; RotationAudioSource.maxDistance = 15; CJ = GetComponent <ConfigurableJoint>(); List <MeshFilter> meshFilters = new List <MeshFilter>(); GetComponentsInChildren(false, meshFilters); GunVis = meshFilters.Find(match => match.name == "Vis").gameObject; }
void Update() { if (Input.GetKeyDown(KeyCode.Space)) { var b = Instantiate( ModResource.Load <GameObject>("Bullet")); b.transform.position = transform.position; } }
public static void OnModLoad() { def = new Color(0.15f, 0.2f, 0.25f); FixVacuum(); bundle = ModResource.GetAssetBundle("portal"); normal = ModResource.GetMesh("portalDeviceMesh"); shooting = ModResource.GetMesh("portalDeviceShotMesh"); bundle.OnLoad += Load; Events.OnSimulationToggle += ResetPortal; }
public static T LoadAsset <T>(string name) where T : UnityEngine.Object { var go = ModResource.GetAssetBundle("Effect").LoadAsset <T>(name); if (typeof(T) == typeof(GameObject)) { (go as GameObject).AddComponent <DestroyIfEditMode>(); } return((T)Convert.ChangeType(go, typeof(T))); }
private void AudioInit() { CloakAudio = this.gameObject.AddComponent <AudioSource>(); CloakAudio.clip = ModResource.GetAudioClip("Cloaking.ogg"); CloakAudio.loop = false; CloakAudio.volume = 1f; DecloakAudio = this.gameObject.AddComponent <AudioSource>(); DecloakAudio.clip = ModResource.GetAudioClip("Decloaking.ogg"); DecloakAudio.loop = false; DecloakAudio.volume = 1f; }
private IEnumerator LoadAssetBundle() { ModAssetBundle modAssetBundle = ModResource.GetAssetBundle("Effect"); yield return(new WaitUntil(() => modAssetBundle.Available)); Rocket = new Asset_Rocket(modAssetBundle); Explosion = new Asset_Explosion(modAssetBundle); MachineGun = new Asset_MachineGun(modAssetBundle); GatlingGun = new Asset_GatlingGun(modAssetBundle); Bullet = new Asset_Bullet(modAssetBundle); }
void Start() { particleSystem = GetComponent <ParticleSystem>() ?? gameObject.AddComponent <ParticleSystem>(); particleSystem.playOnAwake = false; particleSystem.Stop(); particleSystem.startLifetime = LifeTime; particleSystem.loop = true; particleSystem.startColor = StartColor; particleSystem.simulationSpace = ParticleSystemSimulationSpace.World; particleSystem.maxParticles = 10240; particleSystem.gravityModifier = -0.02f; particleSystem.scalingMode = ParticleSystemScalingMode.Shape; ParticleSystem.ShapeModule sm = particleSystem.shape; sm.shapeType = ParticleSystemShapeType.ConeShell; sm.radius = Radius; sm.angle = Angle; sm.length = 1; sm.randomDirection = true; sm.enabled = true; ParticleSystem.SizeOverLifetimeModule sl = particleSystem.sizeOverLifetime; sl.size = new ParticleSystem.MinMaxCurve(Size, AnimationCurve.Linear(0f, StartSize, LifeTime, EndSize)); sl.enabled = true; ParticleSystem.RotationOverLifetimeModule rolm = particleSystem.rotationOverLifetime; rolm.enabled = true; rolm.x = new ParticleSystem.MinMaxCurve(0, 360); ParticleSystem.ColorOverLifetimeModule colm = particleSystem.colorOverLifetime; colm.color = new Gradient() { alphaKeys = new GradientAlphaKey[] { new GradientAlphaKey(StartAlpha, StartAlphaTime), new GradientAlphaKey(EndAlpha, EndAlphaTime) }, colorKeys = new GradientColorKey[] { new GradientColorKey(StartColor, StartColorTime), new GradientColorKey(EndColor, EndColorTime) } }; colm.enabled = true; ParticleSystem seb = particleSystem.subEmitters.birth0; seb = GetComponent <ParticleSystem>(); ParticleSystemRenderer particleSystemRenderer = particleSystem.GetComponent <ParticleSystemRenderer>(); particleSystemRenderer.sortMode = ParticleSystemSortMode.Distance; particleSystemRenderer.sortingFudge = 80; particleSystemRenderer.receiveShadows = true; particleSystemRenderer.sharedMaterial = new Material(Shader.Find("Particles/Alpha Blended")); particleSystemRenderer.sharedMaterial.mainTexture = (ModResource.GetTexture("Rocket Smoke Texture")); }
public void Initialization() { if (FieldDetector != null) { return; // Avoid initializaiton running multiple times } ReactivationTimer = CloakExtendingTime.Value; AudioInit(); FieldSize = CloakFieldSize.Value; CoolDownTime = 0; InvBumpTex = new Material(Shader.Find("FX/Glass/Stained BumpDistort")); InvBumpTex.color = new Color(1, 1, 1, 0); InvBumpTex.mainTexture = ModResource.GetTexture("Cloak disturb.png"); InvBumpTex.SetTexture("_BumpMap", ModResource.GetTexture("Cloak disturb.png")); InvTex = new Material(Shader.Find("Transparent/Diffuse")); InvTex.color = new Color(1, 1, 1, 0); InvTex.mainTexture = ModResource.GetTexture("ALL BLACK.jpg"); FieldDetector = GameObject.CreatePrimitive(PrimitiveType.Sphere); FieldDetector.name = "StealthFieldDetector"; FieldDetector.GetComponent <SphereCollider>().isTrigger = true; FieldDetector.transform.position = Vector3.down * 999999; Destroy(FieldDetector.GetComponent <Renderer>()); // Polymorphism StealthCloakFieldScript a = null; // Decide whether create a MP version of detector or a normal version. Note that host will still use normal version. if (StatMaster.isMP && StatMaster.isClient) { a = FieldDetector.AddComponent <StealthCloakFieldScriptMP>(); } else { a = FieldDetector.AddComponent <StealthCloakFieldScript>(); } a.setCloakTimer(CloakExtendingTime.Value); a.useFlashVFX = this.DirectionVisualization.IsActive; // Use the static method to store the detector instance StealthCloakFieldScript.PushInNewSCFS(Block.From(this).SimBlock, a); // This is for deletion usage a.MyBeloning = this; // Adding Cloak script to other blocks foreach (MeshRenderer renderer in Machine.SimulationMachine.GetComponentsInChildren <MeshRenderer>()) { getCloakScript(renderer); } }
static IEnumerator ReadWheelMesh() { WheelColliderOrgin = new GameObject("Wheel Collider Orgin"); WheelColliderOrgin.transform.SetParent(EnhancementBlockController.Instance.transform); ModMesh modMesh = ModResource.CreateMeshResource("Wheel Mesh", "Resources" + @"/" + "Wheel.obj"); yield return(new WaitUntil(() => modMesh.Available)); MeshCollider meshCollider = WheelColliderOrgin.AddComponent <MeshCollider>(); meshCollider.sharedMesh = ModResource.GetMesh("Wheel Mesh"); meshCollider.convex = true; WheelColliderOrgin.SetActive(false); }
protected override void deploySelf() { ModAssetBundle mab = ModResource.GetAssetBundle("CitadelAssetBundle"); GameObject KeepStarEntity = GameObject.Instantiate((GameObject)mab.LoadAsset <UnityEngine.Object>("assets/keepstar.prefab")); KeepStarEntity.name = "KeepstarEntity"; KeepstarScript ks = KeepStarEntity.AddComponent <KeepstarScript>(); ks.deploySelf(new Vector3(0.0005f, 0.0005f, 0.0005f), this.transform.position, this.transform.rotation, DictMTContracts); this.transform.parent = null; Machine.RemoveBlock(Block.From(this)); }
public override void OnPrefabCreation() { GameObject ActualCollider = new GameObject("ActualCollider"); ActualCollider.transform.SetParent(transform.FindChild("Colliders")); MeshCollider colliderMesh = ActualCollider.AddComponent <MeshCollider>(); MeshFilter colliderMeshF = ActualCollider.AddComponent <MeshFilter>(); colliderMeshF.mesh = ModResource.GetMesh("KeepstarCollider"); colliderMesh.sharedMesh = colliderMeshF.mesh; colliderMesh.convex = false; ActualCollider.transform.localScale = new Vector3(0.0005f, 0.0005f, 0.0005f); this.Rigidbody.useGravity = false; }
public void Setup(Poultryizer p, Poultryizer.ChickenReferences c) { poultryizer = p; Chicken = c; ModAudioClip a = ModResource.GetAudioClip("polymorph"); if (a.Available) { audioSource = gameObject.GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>(); audioSource.volume = 0.9f; audioSource.spatialBlend = 0.99f; audioSource.reverbZoneMix = 1; audioSource.clip = clip = a; } }
public override void OnSimulateStart() { CreateEffectChild(); effectTimer = Random.Range(0f, 1f / effectUpdatesPerSecond); ModAudioClip c = ModResource.GetAudioClip("polymorph"); if (c.Available) { audioSource = gameObject.GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>(); audioSource.clip = c; } simulationStarted = true; }
private GameObject CreateBulletTemp() { GameObject temp = new GameObject("Bullet Temp"); temp.AddComponent <DestroyIfEditMode>(); GameObject vis = new GameObject("Vis"); vis.transform.SetParent(temp.transform); vis.transform.position = temp.transform.position; vis.transform.rotation = temp.transform.rotation; vis.transform.localScale *= 0.025f; vis.AddComponent <MeshFilter>().mesh = ModResource.GetMesh("Bullet Mesh"); MeshRenderer meshRenderer = vis.AddComponent <MeshRenderer>(); meshRenderer.material.mainTexture = ModResource.GetTexture("Bullet Texture"); Rigidbody rigidbody = temp.AddComponent <Rigidbody>(); rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; rigidbody.mass = 0.5f; rigidbody.drag = 0.25f; TrailRenderer trailRenderer = temp.AddComponent <TrailRenderer>(); trailRenderer.startWidth = 0.08f; trailRenderer.endWidth = 0f; trailRenderer.time = 0.05f; trailRenderer.material.shader = Shader.Find("Particles/Additive"); trailRenderer.material.SetColor("_TintColor", Color.yellow); BoxCollider boxCollider = temp.AddComponent <BoxCollider>(); boxCollider.size = new Vector3(0.1f, 0.1f, 0.25f); boxCollider.material.bounciness = 0f; BulletScript bulletScript = temp.AddComponent <BulletScript>(); bulletScript.Direction = Vector3.forward; bulletScript.ColliderEnableTime = 1f; TimedSelfDestruct tsd = temp.AddComponent <TimedSelfDestruct>(); temp.SetActive(false); return(temp); }
public virtual void AssignAudio() { clips = new ModAudioClip[3]; clips[0] = ModResource.GetAudioClip("fireOrange"); clips[1] = ModResource.GetAudioClip("fireBlue"); clips[2] = ModResource.GetAudioClip("fireMiss"); if (clips[0].Available && clips[1].Available) { audioSource = gameObject.GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>(); audioSource.volume = 0.9f; audioSource.pitch = 1f; audioSource.spatialBlend = 0.99f; audioSource.reverbZoneMix = 1; audioSource.clip = clips[0]; } }
public override void SafeAwake() { LaunchKey = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C); StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f); RateSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.35f, 0.1f, 0.3f); KnockBackSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 0.5f, 0.1f, 1f); BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f); bulletPowerSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletPower, "Power", 0.3f, 0.1f, 1f); bulletMassSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f); bulletDragSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f); bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.1f, 0.01f, 0.8f); bulletTrailLengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailLength, "Length", 0.1f, 0f, 0.4f); bulletTrailWidthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailWidth, "Width", 1f, 0.1f, 3f); bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false); holdToggle = AddToggle(LanguageManager.Instance.CurrentLanguage.hold, "Hold", true); //spawnDistanceSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.distance, "Distance", 2f, 0f, 4f); //spawnDistanceSlider.ValueChanged += (value) => { SpawnPoint = new Vector3(0f, 0f, value); }; damperSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.damper, "Damper", 1f, 0f, 5f); SpawnPoint = new Vector3(0.0f, 0.0f, 3.5f); Direction = Vector3.forward; LaunchEnable = false; fireAudioSource = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>(); fireAudioSource.clip = ModResource.GetAudioClip("QuickFireGun AudioClip"); fireAudioSource.loop = false; fireAudioSource.volume = 1; fireAudioSource.spatialBlend = 5f; fireAudioSource.maxDistance = 15f; CJ = GetComponent <ConfigurableJoint>(); CJ.yMotion = ConfigurableJointMotion.Limited; var cl = CJ.linearLimit; cl.limit = 0.5f; CJ.linearLimit = cl; var yd = CJ.yDrive; yd.positionDamper = 750f * damperSlider.Value; yd.positionSpring = 1000f; CJ.yDrive = yd; }
void InitRender() { if (glowTex == null) { glowTex = ModResource.GetTexture("glow"); } if (glowTex != null && glowTex.Loaded && !glowTex.HasError && texture2D2 == null) { texture2D2 = glowTex.Texture; } if (texture2D2 != null) { var renderer = base.transform.FindChild("Vis").gameObject.GetComponentInChildren <Renderer>(); renderer.material.SetTexture("_EmissMap", texture2D2); } }
//#region Network ///// <summary>Block, GunbodyVelocity, BulletGuid,</summary> //public static MessageType FireMessage = ModNetworking.CreateMessageType(DataType.Block, DataType.Vector3, DataType.String); //#endregion public override void SafeAwake() { LaunchKey = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C); StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f); //StrengthSlider.ValueChanged += (value) => { Strength = value; }; RateSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.05f, 0.1f, 0.3f); //RateSlider.ValueChanged += (value) => { Rate = value; }; KnockBackSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 1f, 0.1f, 3f); //KnockBackSlider.ValueChanged += (value) => { KnockBack = value; }; BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f); //BulletNumberSlider.ValueChanged += (value) => { BulletMaxNumber = (int)value; }; bulletMassSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f); bulletDragSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f); bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false); bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.01f, 0f, 0.1f); //KnockBack = 1f; SpawnPoint = new Vector3(-2.65f, 0f, 0.5f); Direction = -Vector3.right; //BulletObject = AssetManager.Instance.MachineGun.bulletTemp; //BulletObject = InstanstiateBullet(); LaunchEnable = false; //RotationRate = 0f; fireAudioSource = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>(); fireAudioSource.clip = ModResource.GetAudioClip("MachineGun AudioClip"); fireAudioSource.loop = false; fireAudioSource.volume = 1; fireAudioSource.spatialBlend = 5f; fireAudioSource.maxDistance = 15f; CJ = GetComponent <ConfigurableJoint>(); List <MeshFilter> meshFilters = new List <MeshFilter>(); GetComponentsInChildren(false, meshFilters); GunVis = meshFilters.Find(match => match.name == "Vis").gameObject; }
public override void OnSimulateStart() { BulletCurrentNumber = BulletMaxNumber = (int)BulletNumberSlider.Value; Strength = StrengthSlider.Value * 5f; KnockBack = KnockBackSlider.Value * Strength * 4f; Rate = RateSlider.Value; initVFX(); void initVFX() { EffectsObject = EffectsObject ?? (GameObject)Instantiate(AssetManager.Instance.MachineGun.fireEffect, transform); EffectsObject.transform.position = transform.TransformPoint(Vector3.forward * 3); EffectsObject.transform.localEulerAngles = new Vector3(0, 180, 0); EffectsObject.GetComponent <Reactivator>().TimeDelayToReactivate = Rate; EffectsObject.SetActive(false); material = GunVis.GetComponent <MeshRenderer>().material = Instantiate(AssetManager.Instance.GatlingGun.material); material.SetTexture("_MainTex", ModResource.GetTexture("GatlingGun Texture")); material.SetTexture("_EmissionMap", ModResource.GetTexture("GatlingGun-e Texture")); } }
void Start() { particleSystem = GetComponent <ParticleSystem>() ?? gameObject.AddComponent <ParticleSystem>(); particleSystem.playOnAwake = false; particleSystem.Stop(); particleSystem.startLifetime = LifeTime; particleSystem.scalingMode = ParticleSystemScalingMode.Hierarchy; ParticleSystem.ShapeModule sm = particleSystem.shape; sm.shapeType = ParticleSystemShapeType.Cone; sm.radius = Radius; sm.angle = Angle; sm.randomDirection = false; sm.enabled = true; ParticleSystem.SizeOverLifetimeModule sl = particleSystem.sizeOverLifetime; sl.size = new ParticleSystem.MinMaxCurve(Size, AnimationCurve.Linear(0f, StartSize, LifeTime, EndSize)); sl.enabled = true; ParticleSystem.ColorOverLifetimeModule colm = particleSystem.colorOverLifetime; colm.color = new Gradient() { alphaKeys = new GradientAlphaKey[] { new GradientAlphaKey(1, 0), new GradientAlphaKey(0, LifeTime) }, colorKeys = new GradientColorKey[] { new GradientColorKey(StartColor, ColorStartTime), new GradientColorKey(EndColor, ColorEndTime) } }; colm.enabled = true; ParticleSystemRenderer particleSystemRenderer = GetComponent <ParticleSystemRenderer>(); particleSystemRenderer.sharedMaterial = new Material(Shader.Find("Particles/Additive")); particleSystemRenderer.sharedMaterial.mainTexture = (ModResource.GetTexture("Rocket Fire Texture")); }
public override void OnSimulateStart() { LockerRect = new Rect(new Vector2(Screen.width / 2 - LockerHeight.Value / 2, Screen.height / 2 - LockerWidth.Value / 2), new Vector2(LockerHeight.Value, LockerWidth.Value)); ticc = Time.time; disp = !HideThisPanel.IsActive; BombDrop = new GameObject(); BombDrop.transform.SetParent(transform); BombDrop.name = "Bomb Indicator"; Light BombDropLight = BombDrop.AddComponent <Light>(); BombDropLight.type = LightType.Spot; BombDropLight.intensity = 8; BombDropLight.range = Camera.main.farClipPlane; BombDropLight.color = Color.red; BombDropLight.cookieSize = 100; BombDropLight.range = 5; BombDrop.transform.LookAt(new Vector3(BombDrop.transform.position.x, BombDrop.transform.position.y - 10, BombDrop.transform.position.z)); BombDropLight.enabled = false; BombDrop.AddComponent <DestroyIfEditMode>(); if (AdvTI.IsActive) { float width = 1f; AdvBombDrop = this.gameObject.AddComponent <LineRenderer>(); AdvBombDrop.material = new Material(Shader.Find("Particles/Additive")); AdvBombDrop.SetWidth(width, width); AdvBombDrop.SetColors(StartColour.Value, EndColour.Value); AdvBombDrop.SetPosition(0, transform.position); AdvBombDrop.SetVertexCount((int)AdvTIS.Value); AdvBombDrop.enabled = false; } 机体准星 = Center.IsActive ? ModResource.GetTexture("HUD/Center.png") : null; 俯仰刻度 = Pitch.IsActive ? ModResource.GetTexture("HUD/Gradienter.png") : null; 正00纹理 = MapCenter.IsActive ? ModResource.GetTexture("HUD/Zero Zero Front.png") : null; 负00纹理 = MapCenter.IsActive ? ModResource.GetTexture("HUD/Zero Zero Back.png") : null; 现时高度指示纹理 = HeightIndicator.IsActive ? ModResource.GetTexture("HUD/Height Line.png") : null; 冰层纹理 = IceFreezeIndicator.IsActive && HeightIndicator.IsActive ? ModResource.GetTexture("HUD/Ice Floor.png") : null; 地面那一条杠杠滴纹理 = GroundIndicator.IsActive && HeightIndicator.IsActive ? ModResource.GetTexture("HUD/Floor Line.png") : null; 一千杠杠 = OneThousandIndicator.IsActive && HeightIndicator.IsActive ? ModResource.GetTexture("HUD/OverICE Line.png") : null; 北罗盘纹理 = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator North.png") : null; 南罗盘纹理 = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator South.png") : null; 西罗盘纹理 = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator East.png") : null; 东罗盘纹理 = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator West.png") : null; 小罗盘纹理 = Direction.IsActive ? ModResource.GetTexture("HUD/Direction Indicator Small.png") : null; 小地图纹理 = MiniMap.IsActive ? ModResource.GetTexture("HUD/Minimap Addition.png") : null; 锁定窗口 = UseLockWindow.IsActive? ModResource.GetTexture("HUD/Locker.png") : null; if (MiniMap.IsActive) { MiniMapGO = new GameObject("MiniMapCam"); MiniMapGO.transform.SetParent(Machine.SimulationMachine); MiniMapCamera = MiniMapGO.AddComponent <Camera>(); MiniMapCamera.CopyFrom(Camera.main); MiniMapCamera.aspect = 1; MiniMapCamera.orthographic = true; MiniMapCamera.orthographicSize = 150; MiniMapCamera.nearClipPlane = 45; MiniMapCamera.targetTexture = RTCamera; MiniMapCamera.clearFlags = CameraClearFlags.SolidColor; //MiniMapCamera.rect = new Rect( // new Vector2( // Screen.width * 10 / 9, // Screen.height * 10 / 9), // new Vector2(Screen.width / 10, Screen.height / 10)); RTCamera = new RenderTexture(Screen.width / 5, Screen.height / 5, 24); } }
public override void OnSimulateStart() { BulletCurrentNumber = BulletMaxNumber = (int)BulletNumberSlider.Value; Strength = StrengthSlider.Value * 120f; KnockBack = KnockBackSlider.Value * Strength * 0.75f; Rate = RateSlider.Value; var yd = CJ.yDrive; yd.positionDamper = 500f * damperSlider.Value * StrengthSlider.Value; yd.positionSpring = 3000f * StrengthSlider.Value; CJ.yDrive = yd; initBullet(); initVFX(); void initBullet() { BulletObject = new GameObject("Bullet"); BulletObject.transform.localScale = transform.localScale * 0.05f; BulletObject.AddComponent <DestroyIfEditMode>(); var mf = BulletObject.AddComponent <MeshFilter>(); mf.mesh = ModResource.GetMesh("Bullet Mesh"); var mr = BulletObject.AddComponent <MeshRenderer>(); mr.material.mainTexture = ModResource.GetTexture("Bullet Texture"); var rigidbody = BulletObject.AddComponent <Rigidbody>(); rigidbody.mass = bulletMassSlider.Value; rigidbody.drag = bulletDragSlider.Value; rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; var collider = BulletObject.AddComponent <BoxCollider>(); var tsd = BulletObject.AddComponent <TimedSelfDestruct>(); var bs = BulletObject.AddComponent <BulletScript>(); bs.Setup(Strength, bulletCollisionEnableTimeSlider.Value, Direction); var tr = BulletObject.AddComponent <TrailRenderer>(); tr.startWidth = BulletObject.transform.localScale.magnitude * bulletTrailWidthSlider.Value; tr.endWidth = BulletObject.transform.localScale.magnitude * 0.5f * bulletTrailWidthSlider.Value; tr.material = new Material(Shader.Find("Particles/Additive")); tr.material.SetColor("_TintColor", bulletColorSlider.Value); tr.time = Mathf.Clamp(bulletTrailLengthSlider.Value, 0f, 1f); BulletObject.SetActive(false); } void initVFX() { EffectsObject = EffectsObject ?? (GameObject)Instantiate(AssetManager.Instance.MachineGun.fireEffect, transform); EffectsObject.transform.position = transform.TransformPoint(SpawnPoint); EffectsObject.transform.localEulerAngles = new Vector3(0, 180f, 0); EffectsObject.transform.localScale = Vector3.one * 0.65f; EffectsObject.GetComponent <Reactivator>().TimeDelayToReactivate = Rate; EffectsObject.SetActive(false); } }
public override void OnSimulateStart() { string ShaderString = UseNotTrans.IsActive ? "Legacy Shaders/Reflective/Bumped Specular" : "Particles/Additive"; rHInfos = new List <RHInfo>(); Especially = new GameObject("TheThings"); if (!UseLegacy.IsActive) { CINU = new CheckIfNeeeeeeedsUpdate(CheckIfNeedsUpdate); CTRGO = new GameObject("CubeTube"); if (CTR == null) { CTR = CTRGO.AddComponent <CustomTubeRenderer>(); //CTR.material = new Material(Shader.Find("Particles/Alpha Blended")); //CTR.crossSegments = 1; CTR.flatAtDistance = 1; CTR.maxRebuildTime = 0.01f; } CTRGO.transform.SetParent(transform); CTRGO.transform.localPosition = Vector3.forward * 1.1f; CTRGO.transform.rotation = transform.rotation; } else { CINU = new CheckIfNeeeeeeedsUpdate(LegacyCheckIfNeedsUpdate); if (lr == null) { lr = this.gameObject.AddComponent <LineRenderer>(); } lr.material = new Material(Shader.Find(ShaderString)); lr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; lr.SetWidth(0.08f, 0.08f); Color ArgColour = LaserColourSlider.Value; lr.SetColors(Color.Lerp(ArgColour, Color.black, 0.45f), Color.Lerp(ArgColour, Color.clear, 0.2f)); lr.SetVertexCount(0); } Especially.transform.SetParent(this.transform); Especially.transform.localPosition = Vector3.forward * 1.1f; Especially.transform.LookAt(this.transform.position); //lr.material.SetColors(Color.Lerp(ArgColour, Color.black, 0.45f), // Color.Lerp(ArgColour, Color.clear, 0.2f)); laserAtOff = !LaserOnOffToggle.IsActive; PointLight = Especially.AddComponent <Light>(); PointLight.color = LaserColourSlider.Value; PointLight.intensity = 3 * Math.Max(0.25f, PenetrativeLengthMultiplier.Value); PointLight.range = Mathf.Max(this.transform.localScale.x, this.transform.localScale.y) * LaserWidth.Value * 3f; PointLight.shadows = LightShadows.Soft; TheToggleProvideLight = LightOptionToggle.IsActive ? 1 : 0; if (ShrinkEffectToggle.IsActive && !PSR) { PS = Especially.AddComponent <ParticleSystem>(); ParticleSystem.Particle NewParticle = new ParticleSystem.Particle(); PS.startSize = 0.2f; PS.startColor = new Color(LaserColourSlider.Value.r, LaserColourSlider.Value.g, LaserColourSlider.Value.b, 0.5f); PS.startLifetime = ChargeHoldGasp.Value * 0.45f; PS.startSpeed = -0.5f; PS.scalingMode = ParticleSystemScalingMode.Shape; PS.SetParticles(new ParticleSystem.Particle[] { NewParticle }, 1); ParticleSystem.ColorOverLifetimeModule PSCOLM = PS.colorOverLifetime; PSCOLM.color = new Gradient() { alphaKeys = new GradientAlphaKey[] { new GradientAlphaKey(0, 0), new GradientAlphaKey(0.8f, 0.2f), new GradientAlphaKey(1, 1) }, colorKeys = new GradientColorKey[] { new GradientColorKey(PS.startColor, 0), new GradientColorKey(PS.startColor, 1) } }; PSCOLM.enabled = true; PS.simulationSpace = ParticleSystemSimulationSpace.World; //ParticleSystem.Burst BUTS = new ParticleSystem.Burst(10, 10, 1000); PSR = Especially.GetComponent <ParticleSystemRenderer>(); //PSR.material = new Material(Shader.Find("Particles/Alpha Blended")); PSR.material = new Material(Shader.Find(ShaderString)); PSR.material.mainTexture = (ModResource.GetTexture("LaserParticle.png")); } if (StatMaster.isMP && !StatMaster.isClient) { Message laserSimu = Messages.LaserSimuStart.CreateMessage(Block.From(this)); ModNetworking.SendInSimulation(laserSimu); } }
public override void OnSimulateStart() { this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.shader = Shader.Find("Legacy Shaders/Reflective/Bumped Specular"); this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.SetTexture("_BumpMap", ModResource.GetTexture("zDroneBump.png")); if (DroneAIType.Value == 1) { IAmSwitching = true; TargetSelector(); } else { foreach (DroneControlBlockBehavior DCBB in Machine.SimulationMachine.GetComponentsInChildren <DroneControlBlockBehavior>()) { if (DCBB.DroneTag.Value == this.DroneTag.Value) { DCBB.AIDroneList.Add(this); MyControl = DCBB; OrbitVeloMultiplier = 1f; break; } } } Shooter = Instantiate(PrefabMaster.BlockPrefabs[11].gameObject); Shooter.transform.parent = this.transform; Destroy(Shooter.GetComponent <ConfigurableJoint>()); 炮弹速度 = 5 * 58; Shooter.transform.localEulerAngles = Vector3.right * 270; Shooter.transform.localPosition = Vector3.up * 0.8f + Vector3.forward * 3f; Destroy(Shooter.GetComponentInChildren <CapsuleCollider>()); CB = Shooter.GetComponent <CanonBlock>(); CB.knockbackSpeed = 30; CB.Rigidbody = this.Rigidbody; Destroy(Shooter.GetComponent <Rigidbody>()); ((List <MSlider>)(CB.Sliders))[0].Value = 5; MeshCollider MC = this.transform.GetComponentInChildren <MeshCollider>(); MC.material.dynamicFriction = 0; MC.material.staticFriction = 0; MyPrecision = 0.25f; MySize = 1; 精度 = 0.25f; size = 1; SetUpHP(200); RotatingSpeed = 1f; //RotatingSpeed = 5f; PositionIndicator = GameObject.CreatePrimitive(PrimitiveType.Sphere); DestroyImmediate(PositionIndicator.GetComponent <Rigidbody>()); DestroyImmediate(PositionIndicator.GetComponent <Collider>()); }
private void Awake() { ModResource.CreateAssetBundleResource("Effect", @"Resources/bundle_mfk"); StartCoroutine(LoadAssetBundle()); SceneManager.sceneLoaded += (s, a) => { StartCoroutine(LoadAssetBundle()); }; }
public override void BuildingUpdate() { DroneTag.Value = (int)DroneTag.Value; //Debug.Log(GameObject.Find("frozen_knight_1").GetComponent<Renderer>().material.shader.name); //this.transform.Find("Vis/Vis").GetComponent<MeshRenderer>().material.shader = Shader.Find("Instanced/Block Shader (GPUI off)"); this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.shader = Shader.Find("Legacy Shaders/Reflective/Bumped Specular"); this.transform.Find("Vis/Vis").GetComponent <MeshRenderer>().material.SetTexture("_BumpMap", ModResource.GetTexture("FiaoCombinedMod/zDroneBump.png")); if (DroneAIType.Value == 0) { Activation.DisplayInMapper = false; //OrbitRadius.DisplayInMapper = true; Difficulty.DisplayInMapper = false; DroneTag.DisplayInMapper = true; } else { Activation.DisplayInMapper = true; //OrbitRadius.DisplayInMapper = false; Difficulty.DisplayInMapper = true; DroneTag.DisplayInMapper = false; } }