/// <summary> /// Adds a tk2dSprite component to an object and adds that sprite to the /// ammonomicon for later use. If obj is null, returns a new GameObject with the sprite /// </summary> public static GameObject AddSpriteToObject(string name, string resourcePath, GameObject obj = null, bool copyFromExisting = true) { GameObject spriteObject = SpriteBuilder.SpriteFromResource(resourcePath, obj, copyFromExisting); spriteObject.name = name; return(spriteObject); }
/// <summary> /// Creates an object with a sprite component and adds that sprite to the /// ammonomicon for later use. /// </summary> public static GameObject CreateSpriteObject(string name, string resourcePath) { GameObject spriteObject = SpriteBuilder.SpriteFromResource(resourcePath); spriteObject.name = name; return(spriteObject); }
/// <summary> /// Adds a tk2dSprite component to an object and adds that sprite to the /// ammonomicon for later use. If obj is null, returns a new GameObject with the sprite /// </summary> public static GameObject AddSpriteToObject(string name, string resourcePath, GameObject obj = null) { GameObject spriteObject = SpriteBuilder.SpriteFromResource(resourcePath, obj); spriteObject.name = name; return(spriteObject); }
// Token: 0x06000023 RID: 35 RVA: 0x00002EC4 File Offset: 0x000010C4 public static GameObject AddSpriteToObject(string name, string resourcePath, GameObject obj = null, bool v = false) { GameObject gameObject = SpriteBuilder.SpriteFromResource(resourcePath, obj, false); gameObject.name = name; return(gameObject); }
public static GameObject AddSpriteToObject(string name, string resourcePath, GameObject obj = null, bool copyFromExisting = true) { GameObject gameObject = SpriteBuilder.SpriteFromResource(resourcePath, obj, copyFromExisting); FakePrefab.MarkAsFakePrefab(gameObject); obj.SetActive(false); gameObject.name = name; return(gameObject); }
/// <summary> /// Adds a tk2dSprite component to an object and adds that sprite to the /// ammonomicon for later use. If obj is null, returns a new GameObject with the sprite /// </summary> public static GameObject AddSpriteToObject(string name, string resourcePath, GameObject obj = null) { GameObject spriteObject = SpriteBuilder.SpriteFromResource(resourcePath, obj); FakePrefab.MarkAsFakePrefab(spriteObject); obj.SetActive(false); spriteObject.name = name; return(spriteObject); }
// Token: 0x060000BF RID: 191 RVA: 0x000087B8 File Offset: 0x000069B8 public static GameObject BuildPrefab(string name, string guid, string defaultSpritePath, IntVector2 hitboxOffset, IntVector2 hitBoxSize) { bool flag = CompanionBuilder.companionDictionary.ContainsKey(guid); GameObject result; if (flag) { ETGModConsole.Log("CompanionBuilder: Tried to create two companion prefabs with the same GUID!", false); result = null; } else { GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(CompanionBuilder.behaviorSpeculatorPrefab); gameObject.name = name; tk2dSprite component = SpriteBuilder.SpriteFromResource(defaultSpritePath, gameObject, false).GetComponent <tk2dSprite>(); component.SetUpSpeculativeRigidbody(hitboxOffset, hitBoxSize).CollideWithOthers = false; gameObject.AddComponent <tk2dSpriteAnimator>(); gameObject.AddComponent <AIAnimator>(); HealthHaver healthHaver = gameObject.AddComponent <HealthHaver>(); healthHaver.RegisterBodySprite(component, false, 0); healthHaver.PreventAllDamage = true; healthHaver.SetHealthMaximum(15000f, null, false); healthHaver.FullHeal(); AIActor aiactor = gameObject.AddComponent <AIActor>(); aiactor.State = AIActor.ActorState.Normal; aiactor.EnemyGuid = guid; BehaviorSpeculator component2 = gameObject.GetComponent <BehaviorSpeculator>(); component2.MovementBehaviors = new List <MovementBehaviorBase>(); component2.AttackBehaviors = new List <AttackBehaviorBase>(); component2.TargetBehaviors = new List <TargetBehaviorBase>(); component2.OverrideBehaviors = new List <OverrideBehaviorBase>(); component2.OtherBehaviors = new List <BehaviorBase>(); EnemyDatabaseEntry item = new EnemyDatabaseEntry { myGuid = guid, placeableWidth = 2, placeableHeight = 2, isNormalEnemy = false }; EnemyDatabase.Instance.Entries.Add(item); CompanionBuilder.companionDictionary.Add(guid, gameObject); UnityEngine.Object.DontDestroyOnLoad(gameObject); FakePrefab.MarkAsFakePrefab(gameObject); gameObject.SetActive(false); result = gameObject; } return(result); }
public static GameObject BuildPrefab(string name, string guid, string defaultSpritePath, IntVector2 hitboxOffset, IntVector2 hitBoxSize, bool HasAiShooter, bool UsesAttackGroup = false) { if (BossBuilder.Dictionary.ContainsKey(guid)) { ETGModConsole.Log("BossBuilder: Yea something went wrong. Complain to Neighborino about it."); return(null); } var prefab = GameObject.Instantiate(behaviorSpeculatorPrefab); prefab.name = name; //setup misc components var sprite = SpriteBuilder.SpriteFromResource(defaultSpritePath, prefab).GetComponent <tk2dSprite>(); sprite.SetUpSpeculativeRigidbody(hitboxOffset, hitBoxSize).CollideWithOthers = true; prefab.AddComponent <tk2dSpriteAnimator>(); prefab.AddComponent <AIAnimator>(); PickupObject item = PickupObjectDatabase.GetById(291); //setup knockback var knockback = prefab.AddComponent <KnockbackDoer>(); knockback.weight = 1; SpriteBuilder.AddSpriteToCollection("FrostAndGunfireItems/Resources/roomimic_bosscard", SpriteBuilder.ammonomiconCollection); //setup health haver var healthHaver = prefab.AddComponent <HealthHaver>(); healthHaver.RegisterBodySprite(sprite); healthHaver.PreventAllDamage = false; healthHaver.SetHealthMaximum(15000); healthHaver.FullHeal(); //setup AI Actor var aiActor = prefab.AddComponent <AIActor>(); aiActor.State = AIActor.ActorState.Normal; aiActor.EnemyGuid = guid; aiActor.HasShadow = false; //setup behavior speculator var bs = prefab.GetComponent <BehaviorSpeculator>(); bs.MovementBehaviors = new List <MovementBehaviorBase>(); bs.TargetBehaviors = new List <TargetBehaviorBase>(); bs.OverrideBehaviors = new List <OverrideBehaviorBase>(); bs.OtherBehaviors = new List <BehaviorBase>(); bs.AttackBehaviorGroup.AttackBehaviors = new List <AttackBehaviorGroup.AttackGroupItem>(); if (HasAiShooter) { var actor = EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5"); behaviorSpeculatorPrefab = GameObject.Instantiate(actor.gameObject); foreach (Transform child in behaviorSpeculatorPrefab.transform) { if (child != behaviorSpeculatorPrefab.transform) { GameObject.DestroyImmediate(child); } } foreach (var comp in behaviorSpeculatorPrefab.GetComponents <Component>()) { if (comp.GetType() != typeof(BehaviorSpeculator)) { GameObject.DestroyImmediate(comp); } } GameObject.DontDestroyOnLoad(behaviorSpeculatorPrefab); FakePrefab.MarkAsFakePrefab(behaviorSpeculatorPrefab); behaviorSpeculatorPrefab.SetActive(false); } else { AIBulletBank aibulletBank = prefab.AddComponent <AIBulletBank>(); } //Add to enemy database EnemyDatabaseEntry enemyDatabaseEntry = new EnemyDatabaseEntry { myGuid = guid, placeableWidth = 2, placeableHeight = 2, isNormalEnemy = true, path = guid, isInBossTab = true, encounterGuid = guid, }; EnemyDatabase.Instance.Entries.Add(enemyDatabaseEntry); BossBuilder.Dictionary.Add(guid, prefab); //finalize GameObject.DontDestroyOnLoad(prefab); FakePrefab.MarkAsFakePrefab(prefab); prefab.SetActive(false); return(prefab); }
public static GameObject BuildPrefab(string name, string guid, string defaultSpritePath, IntVector2 hitboxOffset, IntVector2 hitBoxSize, bool HasAiShooter, bool UsesAttackGroup = false) { if (HasAiShooter) { var actor = EnemyDatabase.GetOrLoadByGuid("3cadf10c489b461f9fb8814abc1a09c1"); behaviorSpeculatorPrefab = GameObject.Instantiate(actor.gameObject); foreach (Transform child in behaviorSpeculatorPrefab.transform) { if (child != behaviorSpeculatorPrefab.transform) { GameObject.DestroyImmediate(child); } } foreach (var comp in behaviorSpeculatorPrefab.GetComponents <Component>()) { if (comp.GetType() != typeof(BehaviorSpeculator)) { GameObject.DestroyImmediate(comp); } } GameObject.DontDestroyOnLoad(behaviorSpeculatorPrefab); FakePrefab.MarkAsFakePrefab(behaviorSpeculatorPrefab); behaviorSpeculatorPrefab.SetActive(false); } if (EnemyBuilder.Dictionary.ContainsKey(guid)) { ETGModConsole.Log("EnemyBuilder: Yea something went wrong. Complain to Neighborino about it."); return(null); } var prefab = GameObject.Instantiate(behaviorSpeculatorPrefab); prefab.name = name; //setup misc components var sprite = SpriteBuilder.SpriteFromResource(defaultSpritePath, prefab).GetComponent <tk2dSprite>(); sprite.SetUpSpeculativeRigidbody(hitboxOffset, hitBoxSize).CollideWithOthers = true; prefab.AddComponent <tk2dSpriteAnimator>(); prefab.AddComponent <AIAnimator>(); //setup knockback var knockback = prefab.AddComponent <KnockbackDoer>(); knockback.weight = 1; //setup health haver var healthHaver = prefab.AddComponent <HealthHaver>(); healthHaver.RegisterBodySprite(sprite); healthHaver.PreventAllDamage = false; healthHaver.SetHealthMaximum(15000); healthHaver.FullHeal(); //setup AI Actor var aiActor = prefab.AddComponent <AIActor>(); aiActor.State = AIActor.ActorState.Normal; aiActor.EnemyGuid = guid; aiActor.CanTargetPlayers = true; aiActor.HasShadow = false; aiActor.specRigidbody.CollideWithOthers = true; aiActor.specRigidbody.CollideWithTileMap = true; aiActor.specRigidbody.PixelColliders.Clear(); aiActor.specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = PixelCollider.PixelColliderGeneration.Manual, CollisionLayer = CollisionLayer.EnemyCollider, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 0, ManualOffsetY = 0, ManualWidth = 15, ManualHeight = 17, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); aiActor.specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = PixelCollider.PixelColliderGeneration.Manual, CollisionLayer = CollisionLayer.EnemyHitBox, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 0, ManualOffsetY = 0, ManualWidth = 15, ManualHeight = 17, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0, }); aiActor.CorpseObject = EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5").CorpseObject; aiActor.PreventBlackPhantom = false; //setup behavior speculator var bs = prefab.GetComponent <BehaviorSpeculator>(); prefab.AddComponent <Tint>(); bs.MovementBehaviors = new List <MovementBehaviorBase>(); bs.TargetBehaviors = new List <TargetBehaviorBase>(); bs.OverrideBehaviors = new List <OverrideBehaviorBase>(); bs.OtherBehaviors = new List <BehaviorBase>(); if (UsesAttackGroup) { bs.AttackBehaviorGroup.AttackBehaviors = new List <AttackBehaviorGroup.AttackGroupItem>(); } else { bs.AttackBehaviors = new List <AttackBehaviorBase>(); } //allows enemies to be tinted prefab.AddComponent <AIBulletBank>(); //Add to enemy database EnemyDatabaseEntry enemyDatabaseEntry = new EnemyDatabaseEntry() { myGuid = guid, placeableWidth = 2, placeableHeight = 2, isNormalEnemy = true }; EnemyDatabase.Instance.Entries.Add(enemyDatabaseEntry); EnemyBuilder.Dictionary.Add(guid, prefab); //finalize GameObject.DontDestroyOnLoad(prefab); FakePrefab.MarkAsFakePrefab(prefab); prefab.SetActive(false); return(prefab); }
public static GameObject BuildPrefab(string name, string guid, string defaultSpritePath, IntVector2 hitboxOffset, IntVector2 hitBoxSize) { if (CompanionBuilder.companionDictionary.ContainsKey(guid)) { ETGModConsole.Log("CompanionBuilder: Tried to create two companion prefabs with the same GUID!"); return(null); } var prefab = GameObject.Instantiate(behaviorSpeculatorPrefab); prefab.name = name; //setup misc components var sprite = SpriteBuilder.SpriteFromResource(defaultSpritePath, prefab).GetComponent <tk2dSprite>(); sprite.SetUpSpeculativeRigidbody(hitboxOffset, hitBoxSize).CollideWithOthers = false; prefab.AddComponent <tk2dSpriteAnimator>(); prefab.AddComponent <AIAnimator>(); //setup health haver var healthHaver = prefab.AddComponent <HealthHaver>(); healthHaver.RegisterBodySprite(sprite); healthHaver.PreventAllDamage = true; healthHaver.SetHealthMaximum(15000); healthHaver.FullHeal(); //setup AI Actor var aiActor = prefab.AddComponent <AIActor>(); aiActor.State = AIActor.ActorState.Normal; aiActor.EnemyGuid = guid; //setup behavior speculator var bs = prefab.GetComponent <BehaviorSpeculator>(); bs.MovementBehaviors = new List <MovementBehaviorBase>(); bs.AttackBehaviors = new List <AttackBehaviorBase>(); bs.TargetBehaviors = new List <TargetBehaviorBase>(); bs.OverrideBehaviors = new List <OverrideBehaviorBase>(); bs.OtherBehaviors = new List <BehaviorBase>(); //Add to enemy database EnemyDatabaseEntry enemyDatabaseEntry = new EnemyDatabaseEntry() { myGuid = guid, placeableWidth = 2, placeableHeight = 2, isNormalEnemy = false }; EnemyDatabase.Instance.Entries.Add(enemyDatabaseEntry); CompanionBuilder.companionDictionary.Add(guid, prefab); //finalize GameObject.DontDestroyOnLoad(prefab); FakePrefab.MarkAsFakePrefab(prefab); prefab.SetActive(false); return(prefab); }